パーティションのブロックサイズが基本ディスクのブロックサイズより小さいのはなぜですか?

パーティションのブロックサイズが基本ディスクのブロックサイズより小さいのはなぜですか?

私が理解したように、ブロック(「ブロックサイズ」という語句で)は、IOバッファまたはデバイスの最小IOサイズと同じです。パーティションは物理デバイス上に構築されますが、どのように小さなブロックを持つことができますか?たとえば、私のコンピュータでは1024forxvda1しかし4096forを取得しますxvda。以下のコードをご覧ください。

λ> sudo blockdev --getbsz /dev/xvda
4096
λ> sudo blockdev --getbsz /dev/xvda1
1024
λ> sudo fdisk -l /dev/xvda
Disk /dev/xvda: 50 GiB, 53687091200 bytes, 104857600 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
Disklabel type: dos
Disk identifier: 0x8be88ed1

Device     Boot    Start       End  Sectors  Size Id Type
/dev/xvda1 *        2048    409599   407552  199M 83 Linux
/dev/xvda2        409600  41943039 41533440 19.8G 83 Linux
/dev/xvda3      41943040  58720255 16777216    8G 82 Linux swap / Solaris
/dev/xvda4      58720256 104857599 46137344   22G 83 Linux

編集する:

ブロックデバイス(パーティションなど)の「ブロックサイズ」とファイルシステムの「ブロックサイズ」は異なると思います。たとえば、

λ> sudo dumpe2fs -h /dev/xvda3 | grep -i 'block size'
dumpe2fs 1.42.13 (17-May-2015)
dumpe2fs: Bad magic number in super-block while trying to open /dev/xvda3
λ> sudo blockdev --getbsz /dev/xvda3
4096

ベストアンサー1

fdisk「偽」物理セクタのサイズを報告します。 「歴史的互換性」。

システムまたはディスクハードウェアは、パーティションの整列に必要な場合は512バイトのセクタをエミュレートできますが、これは遅くなります(そしてSSDはより速く磨耗する可能性があります)。そのため、パーティションのように大きな境界にパーティションを並べ替えることが広く推奨されています(2048 * 512 = 1MBにソート)。

おすすめ記事