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如何安全安装Windows 7双系统?

    准备工作系统要求硬盘剩余空间:≥20GB(建议50GB以上)内存:≥2GB(推荐4GB)Windows 7 ISO镜像(官方正版)8GB以上U盘必备工具GParted(分区工具):sudo apt install gparted(Ubuntu/Debian)GRUB Customizer(引导修复工具)WoeU……

    2025年7月25日
    7800
  • Linux如何创建头文件?

    在Linux环境下开发程序时,头文件(Header File,以.h为扩展名)是模块化编程的核心组件,它用于声明函数、宏、数据结构、全局变量等,为源文件(.c文件)提供接口规范,创建头文件需遵循特定语法和规范,以确保代码的可移植性、可维护性和避免重复包含问题,以下是Linux环境下创建头文件的详细步骤和注意事项……

    2025年9月19日
    7300
  • Linux切换终端,命令与快捷键如何快速操作?

    Linux 终端是用户与系统交互的核心界面,无论是系统管理、软件开发还是日常运维,熟练切换终端都能大幅提升操作效率,本文将详细介绍 Linux 系统中切换终端的多种方法,涵盖虚拟终端、图形界面终端、远程终端及多路复用工具等场景,帮助用户根据实际需求灵活选择切换方式,虚拟终端(TTY)切换:纯文本模式下的基础操作……

    2025年9月24日
    33100
  • 数据丢失前必做哪些准备?,(18字,疑问句式制造悬念,核心痛点数据丢失前置吸引点击,必做强化必要性)

    双系统(Windows + Linux)允许用户在同一台电脑上灵活切换操作系统,兼顾生产力与开发需求,本文以 Ubuntu 22.04 LTS 为例,提供经过验证的安装方案,涵盖安全操作、分区优化及故障处理,所有步骤均符合开源社区最佳实践,确保数据安全与系统稳定性,备份数据使用外部硬盘或云存储备份 Window……

    2025年7月16日
    10400
  • Linux下如何修改或升级NASM版本?

    在Linux系统中,NASM(Netwide Assembler)是广泛使用的汇编器,尤其在系统级编程、逆向工程和底层开发中扮演重要角色,随着项目需求的变化,可能需要升级或降级NASM版本以支持新的指令集、语法特性或修复兼容性问题,本文将详细介绍在Linux环境下修改NASM版本的完整流程,包括版本查询、旧版本……

    2025年9月28日
    6100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信