パーティションのセクターサイズを見つける


24

ファイルのセクタサイズがであると仮定して、私はこの質問に答えました。*.img512

デバイスまたはデバイスのイメージを照会して、正しいセクターサイズを見つけるにはどうすればよいですか?

回答:


26

fdisk -l (パラメーターのLが小さい)は、他の情報の中でもセクターサイズも表示します。

$ sudo fdisk -l

Disk /dev/sda: 150.3 GB, 150323855360 bytes
255 heads, 63 sectors/track, 18275 cylinders, total 293601280 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
   /dev/sda1   *          63      208844      104391   83  Linux
   /dev/sda2          208845   209712509   104751832+  83  Linux

これは、セクターサイズが512バイトであることを示しています。

編集:fdisk例えばfdisk(パッケージからutil-linux 2.20.1)の新しいバージョンは、論理的および物理的セクターサイズも表示します。たとえば、「WDC WD10EFRX 1TBドライブ」からの関連出力:

Disk /dev/sdn: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

したがって、512バイトではなく4096バイトでした。
Hibou57

26

キューsysfsファイルのドキュメントによると:

# cat /sys/block/sda/queue/hw_sector_size
512

1
これは、任意の画像ファイルでは機能しません。カーネルはそれらについてどのように知る必要がありますか?
クリスチャンピーチュ14

1
@ChristianPietschの任意の画像ファイルは通常ループデバイスを介してマウントされるため、これそれらに対して機能します。のloopN代わりに必ず使用してくださいsdX。それでも、イメージファイルには実際にはセクターがなく、この情報は現在マウントされているデバイスのセクターサイズを示すだけなので、ある意味では意味がありません。
ルスラン

1

file(1)コマンドを使用して、自分で計算を行うことができます。これは、FATシステムのイメージしかない場合でも機能します。

例えば:

$ sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
 code offset 0x58+2
 OEM-ID "mkfs.fat"
 sectors/cluster 64
 reserved sectors 64
 Media descriptor 0xf8
 sectors/track 63
 heads 255
 hidden sectors 147632128
 sectors 536870912 (volumes > 32 MB)
 FAT (32 bit)
 sectors/FAT 65536
 serial number 0x9f981691
 unlabeled

このパーティションには、クラスターごとに64セクターがあります。各セクターのバイト数は512です。これはデフォルトであるため、クラスターサイズは32KBです。

セクターサイズは512より大きくなる可能性があることに注意してください(FAT仕様では4096に制限されていますが、さらに大きくすることもできます)。その場合、出力に追加の「バイト/セクター」フィールドが表示されます。

$ sudo mkfs.fat -S 4096 -s 16 /dev/sda5
mkfs.fat 4.1 (2017-01-24)

$ sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
 code offset 0x58+2
 OEM-ID "mkfs.fat"
 Bytes/sector 4096
 sectors/cluster 16
 Media descriptor 0xf8
 sectors/track 63
 heads 255
 hidden sectors 147632128
 sectors 67108864 (volumes > 32 MB)
 FAT (32 bit)
 sectors/FAT 4096
 serial number 0xb059d826
 label: unlabeled

再度、4096バイト×16セクター=クラスターあたり64 KiBの一致を実行します。


0

上記の回答に感謝します。物理セクターサイズを示すfdisk、および/ sysパスについて...しかし、1つのメモ... Absolute FreeBSDの本でLucasが書いています。

/sys/block/sda/queue/hw_sector_size

私が理解できる限り、パフォーマンスを向上させるために常に512を表示します。ハードウェアロジックで実際に使用される実際の物理セクターサイズを考慮するとよいでしょう。fdiskで表示され、

cat /sys/block/sdc/queue/physical_block_size 
4096
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.