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