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,可通过vgsvgdisplay命令反向查找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误删文件如何避免永久丢失?

    删除文件(不可逆操作)rm 文件名 # 删除单个文件rm file1 file2 # 批量删除文件rm -i *.log # 交互式确认删除(推荐新手)危险警告:rm -rf /目录名 可强制递归删除目录(含子目录),绝对禁止对根目录执行此操作!安全删除目录rmdir 空目录名 # 仅删除空目录rm -r 目录……

    2025年8月7日
    13100
  • Linux下MySQL命令行如何正确退出?具体操作步骤有哪些?

    在Linux系统中,使用MySQL命令行工具时,退出当前会话是常见操作,掌握多种退出方式能提升操作效率,本文将详细介绍Linux环境下退出MySQL命令行的不同方法、适用场景及注意事项,帮助用户灵活应对各种操作需求,进入MySQL命令行的前提要退出MySQL,需先了解如何进入MySQL命令行,通常使用以下命令登……

    2025年9月9日
    12900
  • Linux系统崩溃后如何还原?详细步骤与常用工具使用方法详解

    Linux系统还原通常指将系统恢复到之前某个正常状态,可能因系统损坏、误操作或性能下降而需要执行,根据场景不同,还原方式可分为系统级还原(如恢复出厂设置、快照回滚)、文件级还原(如恢复误删文件)以及修复式还原(如修复启动故障),以下是具体操作方法和注意事项,常见还原场景及操作方法通过系统快照还原(推荐,适用于日……

    2025年9月24日
    9100
  • linux如何切换root用户

    Linux 中,切换 root 用户通常使用命令 su – 或 sudo -i。

    2025年8月16日
    13900
  • 这样洗碗细菌减少90%?

    执行C程序的完整流程编写C代码使用文本编辑器(如nano、vim或gedit)创建.c文件:nano hello.c输入示例代码: printf("Hello, Linux!\n"); return 0;}安装编译工具Linux默认不安装编译器,需通过包管理器安装GCC(GNU Compil……

    2025年7月19日
    11900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信