Linux如何查看VG(卷组)的UUID?

在Linux系统中,LVM(逻辑卷管理)是一种灵活的磁盘管理方式,其中VG(卷组)是LVM的核心组件之一,由一个或多个物理卷(PV)组成,用于创建逻辑卷(LV),每个VG都有一个唯一的UUID(通用唯一标识符),用于在系统中唯一标识该卷组,尤其在脚本编写、故障排查或自动化管理中,准确获取VG UUID至关重要,本文将详细介绍在Linux系统中查看VG UUID的多种方法,包括命令使用、输出解析及实际应用场景。

linux如何查看vg uuid

使用vgdisplay命令查看VG详细信息

vgdisplay是LVM提供的用于显示卷组详细信息的命令,默认会输出VG的名称、大小、PE大小、UUID等完整信息,是查看VG UUID最直接的方式之一。

基本语法

vgdisplay [VG名称]  

若不指定VG名称,则显示系统中所有VG的详细信息;若指定VG名称,则仅显示对应VG的详细信息。

操作示例

  1. 查看所有VG的UUID

    vgdisplay  

    执行后,终端会输出系统中所有VG的详细信息,包含“VG UUID”字段,

    --- Volume group ---  
    VG Name               vg_data  
    System ID             
    Format                lvm2  
    Metadata Areas        1  
    Metadata Sequence No  3  
    VG Access             read/write  
    VG Status             resizable  
    MAX LV                0  
    Cur LV                2  
    Open LV               2  
    Max PV                0  
    Cur PV                1  
    Act PV                1  
    VG Size               <100.00 GiB  
    PE Size               4.00 MiB  
    Total PE              25599  
    Alloc PE / Size       5120 / 20.00 GiB  
    Free  PE / Size       20479 / 80.00 GiB  
    VG UUID               abcdef12-3456-7890-abcd-1234567890ab  

    VG UUID”字段后的字符串即为当前VG的UUID。

  2. 查看指定VG的UUID
    若只想查看名为“vg_data”的VG的UUID,可结合grep命令过滤输出:

    vgdisplay vg_data | grep "VG UUID"  

    输出结果:

      VG UUID               abcdef12-3456-7890-abcd-1234567890ab  

选项说明

  • -v或--verbose:显示更详细的输出(如LV信息、PV信息等);
  • -s或--short:以简洁格式输出,仅显示关键信息(如VG名称、UUID等)。

使用vgs命令(简洁输出)

vgs是LVM的“卷组显示”命令,默认以表格形式输出VG的关键信息,相比vgdisplay更简洁,且支持通过-o选项自定义输出字段,适合脚本处理或快速提取UUID。

基本语法

vgs [选项] [VG名称]  

操作示例

  1. 查看所有VG的UUID

    vgs -o vg_name,vg_uuid  

    -o选项用于指定输出字段,vg_name表示VG名称,vg_uuid表示VG UUID,输出结果如下:

    linux如何查看vg uuid

      VG       VG UUID  
      vg_data  abcdef12-3456-7890-abcd-1234567890ab  
      vg_root  fedcba98-7654-3210-fedc-9876543210fe  
  2. 仅显示指定VG的UUID(无表头)
    若需在脚本中直接获取UUID(无表头干扰),可结合--noheadings选项:

    vgs -o vg_uuid vg_data --noheadings  

    输出结果:

    abcdef12-3456-7890-abcd-1234567890ab  

选项说明

  • -o:自定义输出字段,常用字段包括vg_name(VG名称)、vg_uuid(UUID)、pv_count(PV数量)、lv_count(LV数量)等;
  • --noheadings:不输出表格表头;
  • --unbuffered:实时输出(适合长时间监控)。

使用vgscan命令(扫描并缓存VG信息)

vgscan主要用于扫描系统中的所有VG并更新LVM缓存,默认会输出“Found volume group “vg_name” using metadata type lvm2”的提示信息,但可通过-q(静默)选项结合其他命令提取UUID。

基本语法

vgscan [选项]  

操作示例

  1. 扫描所有VG并提取UUID

    vgscan -q | awk -F'"' '/Found volume group/{print $2}' | xargs -I {} vgs -o vg_uuid {} --noheadings  

    命令解析:

    • vgscan -q:静默扫描VG,仅输出“Found volume group”提示;
    • awk -F'"' '/Found volume group/{print $2}':提取VG名称(引号内内容);
    • xargs -I {} vgs -o vg_uuid {} --noheadings:将VG名称作为参数,执行vgs提取UUID。

    输出结果:

    abcdef12-3456-7890-abcd-1234567890ab  
    fedcba98-7654-3210-fedc-9876543210fe  

适用场景

当系统VG信息异常(如刚添加新PV)时,可先通过vgscan更新缓存,再使用其他命令查看UUID。

通过物理卷(PV)信息关联查询VG UUID

每个PV属于特定的VG,可通过查看PV的元数据获取其所属VG的UUID,常用命令为pvs(物理卷显示)或pvdisplay。

操作示例

  1. 使用pvs命令查看PV及所属VG的UUID

    pvs -o pv_name,vg_name,vg_uuid  

    输出结果:

    linux如何查看vg uuid

      PV         VG       VG UUID  
      /dev/sdb1  vg_data  abcdef12-3456-7890-abcd-1234567890ab  
      /dev/sdc1  vg_root  fedcba98-7654-3210-fedc-9876543210fe  

    通过该表格可直观看到每个PV所属的VG及其UUID。

  2. 查看指定PV的VG UUID

    pvs -o vg_uuid /dev/sdb1 --noheadings  

    输出结果:

    abcdef12-3456-7890-abcd-1234567890ab  

不同方法对比及适用场景

为方便选择,以下表格总结了上述方法的优缺点及适用场景:

方法 命令示例 优点 缺点 适用场景
vgdisplay vgdisplay vg_data | grep "VG UUID" 信息详细,适合人工查看 输出冗余,需过滤 故障排查、手动确认VG信息
vgs vgs -o vg_uuid vg_data --noheadings 简洁,支持自定义字段 需熟悉-o选项语法 脚本处理、快速提取UUID
vgscan vgscan -q | awk ... | xargs vgs 可更新VG缓存,适合异常环境 命令复杂,需组合使用 VG信息异常时扫描
pvs pvs -o pv_name,vg_name,vg_uuid 可关联PV与VG信息 需先确认PV路径 通过PV查找所属VG UUID

相关问答FAQs

问题1:如何通过UUID快速查找对应的VG名称?

解答:
若已知VG UUID,可通过vgs或vgdisplay命令反向查找VG名称,示例:

# 方法1:使用vgs命令
vgs -o vg_name,vg_uuid | grep "abcdef12-3456-7890-abcd-1234567890ab" | awk '{print $1}'  
# 方法2:使用vgdisplay命令
vgdisplay | grep -A1 "VG UUID: abcdef12-3456-7890-abcd-1234567890ab" | grep "VG Name" | awk '{print $3}'  

输出结果即为对应VG的名称(如vg_data)。

问题2:为什么使用vgscan扫描后,vgdisplay仍无法显示VG UUID?

解答:
通常是因为LVM缓存未更新或VG元数据损坏,可按以下步骤排查:

  1. 更新LVM缓存:
    vgscan --cache  
  2. 检查VG状态:
    vgs -o vg_name,vg_attr  

    若vg_attr字段显示partial(部分PV丢失)或invalid(元数据无效),需修复PV或重新创建VG。

  3. 强制扫描PV:
    pvscan --cache  

    若问题仍存在,可尝试使用vgcfgrestore恢复VG元数据(需提前备份元数据)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/22220.html

赞 (0)
酷番叔酷番叔
上一篇 2025年9月9日 11:48
下一篇 2025年9月9日 12:05

相关推荐

  • Linux系统下如何使用qmake?

    在Linux系统下,qmake是Qt框架提供的自动化构建工具,主要用于生成跨平台的构建脚本(如Makefile),简化Qt项目的编译、链接过程,本文将详细介绍qmake的安装、项目文件编写、构建流程及常用功能,帮助开发者高效管理Qt项目,qmake的安装与环境配置在Linux系统中,qmake通常随Qt开发包一……

    2025年8月24日
    26500
  • Linux如何应用?新手入门到实际场景操作详细指南

    Linux作为一款开源的类Unix操作系统,凭借其稳定性、安全性、灵活性和免费等特性,已广泛应用于从基础设施到终端设备的各个领域,成为数字时代不可或缺的技术基石,以下从多个维度详细阐述Linux的具体应用场景及实践价值,在服务器领域,Linux占据绝对主导地位,全球超过90%的Web服务器、数据库服务器和应用服……

    2025年8月31日
    28000
  • 如何拷贝linux中文件

    Linux 中,可使用 cp 命令拷贝文件,如 `

    2025年8月15日
    23900
  • Linux下删除软件有哪些方法?彻底删除及残留清理怎么操作?

    Linux系统以其高度的可定制性和灵活性受到广泛欢迎,而软件管理是日常使用中的重要环节,与Windows系统的“控制面板卸载”不同,Linux通过包管理器或手动操作来删除软件,具体方法取决于软件的安装方式和系统使用的发行版,本文将详细介绍Linux下删除软件的多种方法,涵盖主流包管理器命令、源码编译安装软件的清……

    2025年8月29日
    42000
  • linux如何查看摄像头

    Linux 中,可通过命令如 ls /dev/video* 查看摄像头设备,或

    2025年8月14日
    33600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信