首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lsblk是如何获得扇区大小的?

lsblk是如何获得扇区大小的?
EN

Unix & Linux用户
提问于 2022-12-20 18:05:48
回答 1查看 221关注 0票数 2

我的磁盘是sda。这是大小文件/sys/dev/block/8:0/size。它的部门是部门。当我运行strace lsblk时,我可以看到它读取这个文件。

但是lsblk如何让扇区大小稍后显示总磁盘大小(以字节为单位)?因为我不能看到lsblk读取文件hw_sector_sizephysical_block_size

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-12-20 18:28:57

这并不是因为它不需要,/sys/block//size中使用的扇区大小总是为512,而不管设备的实际物理扇区大小如何。我找不到这方面的文档,所以我将参考这个答案,它在注释中也有一些指向内核代码的链接,其中声明

Linux总是认为扇区长度为512字节,与设备的实际块大小无关。

对循环设备的快速测试也表明这是正确的:

代码语言:javascript
复制
$ 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设备

代码语言:javascript
复制
$ 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文件。)

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/729120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档