You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需执行命令,如何从Linux的/proc或/sys读取磁盘分区信息?

直接读取系统文件获取磁盘分区信息(无需外部命令)

可行性确认

完全可行。Linux的「Everything is a File」核心理念就是将系统状态、硬件设备等资源抽象为可读写的文件接口,磁盘分区的各类状态信息都能通过/proc、/sys等虚拟文件系统下的文件直接读取,无需依赖df、mount这类外部命令。

各字段具体获取方式

1. 挂载点与文件系统类型

读取/proc/mounts文件,每一行对应一个挂载实例,格式示例:

/dev/sda1 / ext4 rw,relatime 0 0

字段对应关系:

  • 第1列:分区的设备路径(如/dev/sda1)
  • 第2列:挂载点(如根目录/)
  • 第3列:文件系统类型(如ext4)

2. 分区总容量

针对目标分区(如sda1),读取/sys/class/block/<分区名>/size文件,文件内的数值是扇区总数。再乘以扇区大小(通常为512字节,可通过/sys/class/block/<分区名>/queue/hw_sector_size获取实际值),即可得到总字节数:

# 示例计算sda1总容量
sector_count=$(cat /sys/class/block/sda1/size)
sector_size=$(cat /sys/class/block/sda1/queue/hw_sector_size)
total_bytes=$((sector_count * sector_size))

3. 文件系统使用量

不同文件系统的使用统计存放在/sys/fs/<文件系统类型>/下的对应目录中,以ext4为例:

  • 总块数:/sys/fs/ext4/<分区名>/blocks_count
  • 已用块数:/sys/fs/ext4/<分区名>/used_blocks
  • 单块大小:/sys/fs/ext4/<分区名>/block_size

通过已用字节数 = 已用块数 × 单块大小即可计算出已使用空间。对于tmpfs这类虚拟文件系统,可查看/sys/fs/tmpfs/<挂载点>/下的blocks(总块数)和used_blocks字段。

注意事项

  • 部分/sys/fs下的文件需要root权限才能读取
  • 逻辑卷(如LVM)的设备对应/sys/class/block/dm-xx/目录,可通过/sys/class/block/dm-xx/dm/name关联到逻辑卷名称
  • /proc/diskstats包含磁盘级别的I/O统计,但仅用于设备层面的读写计数,不直接对应文件系统的使用量

内容的提问来源于stack exchange,提问作者studybox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:05:16