Linux下如何获取逻辑卷信息?除lvdisplay外还有其他方法吗?
几种获取Linux逻辑卷信息的替代方法
嘿,刚好我平时和LVM打交道挺多的,除了lvdisplay,还有不少实用的方式能拿到你需要的逻辑卷名称、描述、已用空间、总空间这些信息,给你整理几个常用的:
1. 使用 lvs 命令(LVM专属工具,推荐)
lvs 是专门用来列出逻辑卷的简洁工具,支持自定义输出列,能直接提取你要的所有信息:
- 要获取名称、注释(描述)、总空间、已用空间,可以用:
解释:lvs --noheadings -o lv_name,lv_comment,lv_size,lv_used--noheadings去掉表头,方便脚本处理-o指定输出列:lv_name(逻辑卷名)、lv_comment(描述注释,需提前设置过才会有内容)、lv_size(总空间)、lv_used(已用空间)
- 如果不需要表头但想让输出更易读,可以加分隔符:
lvs --noheadings --separator "|" -o lv_name,lv_comment,lv_size,lv_used
2. 使用 df 命令(针对已挂载的逻辑卷)
如果你的逻辑卷已经挂载到文件系统上,df 是最直观查看空间使用情况的工具:
- 直接指定挂载点或设备路径:
输出里会包含:df -h /mnt/my_lv # 或者用设备路径 df -h /dev/mapper/myvg-mylv- 设备名(逻辑卷的映射路径,对应名称)
- 总大小、已用大小、可用大小
- 挂载点可以作为额外的描述信息
- 要是只需要特定字段,可以自定义输出:
df -h --output=source,size,used,pcent,target /mnt/my_lv
3. 使用 lsblk 命令(块设备全局视角)
lsblk 能列出系统所有块设备,包括逻辑卷,输出结构清晰:
- 提取需要的字段:
对应信息:lsblk -o NAME,SIZE,USED,FSTYPE,MOUNTPOINT,LABELNAME:逻辑卷名称(通常是dm-*或卷组+逻辑卷的映射名)SIZE:总空间,USED:已用空间FSTYPE(文件系统类型)、LABEL(卷标签)可以作为描述信息
- 加上
-f参数能看到更详细的文件系统元信息:lsblk -f
4. 读取 /sys 文件系统(适合自动化脚本)
Linux的/sys虚拟文件系统里存储了块设备的底层信息,逻辑卷对应的设备在/sys/block/dm-*目录下:
- 获取总空间(自动换算为易读单位):
echo $(( $(cat /sys/block/dm-0/size) * 512 )) | numfmt --to=iec - 获取已用空间:从
stat文件提取已写入扇区数再换算:USED_SECTORS=$(cat /sys/block/dm-0/stat | awk '{print $3}') echo $(( $USED_SECTORS * 512 )) | numfmt --to=iec - 获取逻辑卷名称:
cat /sys/block/dm-0/dm/name
每个方法各有优势:lvs最适合直接获取LVM原生信息,df适合已挂载卷的空间监控,lsblk适合快速查看全局块设备状态,/sys路径则适合编写自动化脚本时调用。
内容的提问来源于stack exchange,提问作者agent jack




