我的磁盘是sda。这是大小文件/sys/dev/block/8:0/size。它的部门是部门。当我运行strace lsblk时,我可以看到它读取这个文件。
但是lsblk如何让扇区大小稍后显示总磁盘大小(以字节为单位)?因为我不能看到lsblk读取文件hw_sector_size或physical_block_size。
发布于 2022-12-20 18:28:57
这并不是因为它不需要,/sys/block//size中使用的扇区大小总是为512,而不管设备的实际物理扇区大小如何。我找不到这方面的文档,所以我将参考这个答案,它在注释中也有一些指向内核代码的链接,其中声明
Linux总是认为扇区长度为512字节,与设备的实际块大小无关。
对循环设备的快速测试也表明这是正确的:
$ cat /sys/block/loop0/size
204800
$ cat /sys/block/loop0/queue/physical_block_size
512
$ cat /sys/block/loop1/size
204800
$ cat /sys/block/loop1/queue/physical_block_size
4096这两个都是100个MiB设备
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 100M 0 loop
loop1 7:1 0 100M 0 loop (请注意,如果要求lsblk在使用-o+PHY-SEC的结果中也包括物理扇区大小,则可以看到它在实际需要物理大小时读取queue/physical_block_size文件。)
https://unix.stackexchange.com/questions/729120
复制相似问题