GNU/Linux >> Linux の 問題 >  >> Linux

セクターが 512 ではなく 4096 バイトになるように、dd で空の img を作成します。

あなたが説明した方法でそれを行うことは不可能です。セクタ サイズは、ファイルが本来持っていないブロック デバイス プロパティです。ファイルは特定のバイト数のシーケンスであり、それらがどのように格納されるかは実装の詳細です...

したがって、特定のセクター サイズが必要な場合は、ブロック デバイスが必要です。 Linux はこの目的のためだけにループ デバイスを提供しているので、losetup を使用します。 特定のセクター サイズでファイルに基づく仮想ブロック デバイスを作成します。

テストファイル:

# dd if=/dev/zero of=empty4k.img bs=4096 count=8192

通常のループ デバイス:

# losetup --find --show empty4k.img 
/dev/loop0
# fdisk -l /dev/loop0
Disk /dev/loop0: 32 MiB, 33554432 bytes, 65536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

4096 バイト セクター ループ デバイス:

# losetup --find --show --sector-size=4096 empty4k.img 
/dev/loop1
# fdisk -l /dev/loop1
Disk /dev/loop1: 32 MiB, 33554432 bytes, 8192 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

どちらの場合も、ファイルは完全に同一であり、セクター サイズ プロパティはブロック ループ デバイス レイヤーによって提供されます。


bs dd に与えられた ファイルの作成中にバッファの大きさを示すだけです。最終的に、ファイルは 0 バイトだけで構成され、アラインメントに関する情報はありません。

fdisk に特定のパラメータを使用する必要があります 、これは -b です 、 man に従って - fdisk(8) のページ :

  -b, --sector-size sectorsize
          Specify  the  sector  size  of  the  disk.   Valid values are 512,    1024, 2048, and 4096.  (Recent kernels know the sector size.  Use this option only on old kernels or to override the kernel's
          ideas.)  Since util-linux-2.17, fdisk differentiates between logical and physical sector size.  This option changes both sector sizes to sectorsize.

Linux
  1. Linuxでfdiskを使用してパーティションを管理する

  2. AwkまたはSedを使用して、8未満の文の単語または数字を置き換えますか?

  3. Linuxで特定のサイズのファイルを作成するには?

  1. 22B の最小サイズ (空の) zip ファイルを作成するにはどうすればよいですか?

  2. スワップするためにより多くのスペースを割り当て、そのサイズを RAM よりも大きくする方法は?

  3. 参照ディレクトリと同じディレクトリ構造を持つ空のファイルを作成します

  1. du のフォルダのサイズ

  2. 応答が 512 バイトを超えて切り捨てられている場合、DNS クエリを実行できません

  3. /etc/hosts でホスト名がアドレス 127.0.0.1 ではなく 127.0.1.1 で表示されるのはなぜですか?