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源码如何查看?四种方法揭秘

    通过包管理器获取源代码(推荐)适用于通过官方仓库安装的软件(如Debian/Ubuntu的APT、CentOS/RHEL的Yum/DNF),步骤:更新软件源缓存sudo apt update # Debian/Ubuntusudo dnf makecache # CentOS 8+/RHEL 8+下载源代码包s……

    2025年7月15日
    5400
  • Linux下如何查看静态库中的函数?

    在Linux开发环境中,静态库(.a文件)是多个目标文件(.o文件)的归档集合,常用于封装可复用的代码,查看静态库中的函数信息对于调试、依赖分析或代码审查至关重要,本文将详细介绍Linux下查看静态库函数的多种方法,包括常用工具的使用、符号解析技巧及注意事项,静态库的基本结构静态库由ar工具创建,本质上是归档文……

    2025年8月30日
    3000
  • Ubuntu 24.04值得升级吗?

    在Linux系统中运行PHP是构建动态网站和Web应用的基础操作,Linux因其稳定性、安全性和开源生态,成为部署PHP的首选平台,以下将详细说明从环境配置到运行测试的全流程,涵盖主流Web服务器(Apache与Nginx)的配置方法,并提供关键优化建议,运行PHP的核心步骤安装PHP通过Linux包管理器安装……

    2025年7月15日
    5800
  • Linux桌面安装后为何无法启动?

    安装Linux桌面后启动不了是用户常见问题,可能涉及硬件、配置、引导等多方面因素,排查时需遵循“从简到繁”原则,逐步定位故障点,首先检查基础硬件连接,确保内存、硬盘、数据线接触良好,尤其是台式机用户需重新插拔内存条,排除静电或接触不良问题,接着观察启动时的屏幕提示,若出现“Operating System No……

    2025年9月17日
    2500
  • Linux如何查看当前系统时区?具体命令方法有哪些?

    在Linux系统中,时区配置直接影响系统时间的显示和日志记录的准确性,掌握查看和修改时区的方法是系统管理的基础技能,本文将详细介绍Linux系统中查看时区的多种方法,包括命令行工具、文件检查等,并解释不同方法的适用场景和输出含义,最后补充时区配置的常见问题排查和相关FAQ,基础时区查看方法Linux系统提供了多……

    2025年9月8日
    2300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信