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)
酷番叔酷番叔
上一篇 6小时前
下一篇 6小时前

相关推荐

  • Linux如何秒速跳转至文件首行?

    文本编辑器中的快捷操作Vim / Vi 编辑器操作步骤:打开文件:vim filename进入普通模式(按 Esc 键)输入 gg 或 :1 + Enter(gg 跳至首行,:1 直接定位第一行)适用场景:编辑代码或大型文件时快速导航,Nano 编辑器操作步骤:打开文件:nano filename按 Ctrl……

    2025年7月29日
    2000
  • 如何调整/dev/sda分区表?

    在Linux系统中扩容磁盘是常见的运维操作,涉及数据安全与系统稳定性,以下是专业、安全且已验证的操作流程,适用于物理机、虚拟机(如VMware/KVM)及云服务器(如阿里云/腾讯云),操作前请务必备份数据,扩容核心流程graph LRA[准备阶段] –> B[扩容底层存储]B –> C[调整分区……

    2025年7月28日
    2200
  • linux run 如何卸载

    Linux 中,使用 sudo apt-get remove [包名](Debian/Ubuntu)

    2025年8月9日
    1500
  • linux 如何修复tf卡

    Linux 中,可先用 fsck 命令检查修复文件系统,如 `sudo

    2025年8月17日
    1500
  • 为什么开发者偏爱Debian/Ubuntu?

    使用 tree 命令(推荐工具)安装方法(部分系统默认未安装):# CentOS/RHELsudo yum install tree# Arch/Manjarosudo pacman -S tree基础用法:tree [目录路径] # 不指定路径时显示当前目录示例输出:.├── dir1│ ├── file1……

    2025年8月7日
    1800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信