为什么分区的块大小小于底层磁盘的块大小?

为什么分区的块大小小于底层磁盘的块大小?

我的理解是块(在短语“块大小”中)就像一个 IO 缓冲区,或者设备的最小 IO 大小。既然分区是建立在物理设备之上的,那么它们怎么可能拥有更小的块呢?例如,在我的机器上,我得到了1024for xvda1but 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=1 MB 上对齐)。

相关内容