You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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,LABEL
    
    对应信息:
    • NAME:逻辑卷名称(通常是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

火山引擎 最新活动