我的盘是sda。有大小文件/sys/dev/block/8:0/size
。它的单位是扇区。当我运行时,strace lsblk
我可以看到它正在读取这个文件。
但是 lsblk 如何获得扇区大小以便稍后以字节为单位显示总磁盘大小?因为我看不到 lsblk 正在读取文件hw_sector_size
,也看不到physical_block_size
.
我的盘是sda。有大小文件/sys/dev/block/8:0/size
。它的单位是扇区。当我运行时,strace lsblk
我可以看到它正在读取这个文件。
但是 lsblk 如何获得扇区大小以便稍后以字节为单位显示总磁盘大小?因为我看不到 lsblk 正在读取文件hw_sector_size
,也看不到physical_block_size
.
不是因为不需要,
/sys/block/<device>/size
无论设备实际物理扇区大小如何,使用的扇区大小总是512。我找不到这方面的文档,所以我会参考这个答案,它在评论中也有一些指向内核代码的链接,其中指出对循环设备的快速测试也表明这是真的:
这些都是 100 MiB 设备
(请注意,如果您使用 要求
lsblk
在结果中也包括物理扇区大小,您可以看到它在实际需要物理大小时-o+PHY-SEC
读取文件。)queue/physical_block_size