sysfs 块大小计数

sysfs 块大小计数

该文件是否位于:

/sys/block/<xxx>/size

不断引用 512 字节块计数,或者是否存在块计数发生变化的特殊情况?

我很好奇,因为:

thinkpad :: /sys/block/sdf % cat queue/physical_block_size                                                                                                                         
4096
thinkpad :: /sys/block/sdf % cat queue/logical_block_size                                                                                                                          
4096
thinkpad :: /sys/block/sdf % cat size                                                                                                                                              
15408640

15408640 * 512 bytes / 1000000000 = ~8GB-> 我的设备的大小,它是正确的,但该设备是 4K 块设备。

答案1

size入口返回nr_sects场地块设备结构。传统上,在 Unix 磁盘大小上下文中,“扇区”或“块”表示 512 字节,无论底层硬件制造商如何称呼“扇区”或“块”。我找不到权威文档,但查看Linux源代码(例如12)看起来该nr_sects字段确实是以512字节为单位来表示的。

您可以通过另一种方式处理它:由于没有报告单位的文件,因此它必须是一个常量单位,否则应用程序将不知道该值的含义。 (queue子目录不一定存在,它取决于块设备。)

相关内容