UUID(Universally Unique Identifier)是Linux系统中用于唯一标识存储设备的全局唯一标识符,无论设备名称如何变化(如/dev/sda1变成/dev/sdb1),UUID始终保持不变,因此在fstab配置、磁盘管理等场景中广泛使用,本文将详细介绍在Linux系统中查看UUID的多种方法,涵盖常用命令、目录结构及配置文件解析,帮助用户根据实际需求选择合适的方式。
使用lsblk命令查看UUID
lsblk(list block devices)是Linux系统中用于列出块设备信息的工具,默认显示设备名称、大小、挂载点等基本信息,通过添加-o
选项可以指定显示UUID字段,操作简单直观。
操作步骤
-
打开终端,输入以下命令:
lsblk -o NAME,UUID,FSTYPE,MOUNTPOINT
NAME
表示设备名称(如sda1),UUID
表示文件系统UUID,FSTYPE
表示文件系统类型(如ext4、xfs),MOUNTPOINT
表示挂载点。 -
示例输出:
NAME UUID FSTYPE MOUNTPOINT sda ├─sda1 123e4567-e89b-12d3-a456-426614174000 ext4 / ├─sda2 89ab-cdef-1234-5678-90abcdef1234 swap [SWAP] └─sda3 5678-90ab-cdef-1234-5678-90abcdef12 vfat /boot/efi
从输出中可以清晰看到每个分区的UUID及其对应的文件系统类型和挂载点。
注意事项
- 若需要查看所有设备(包括隐藏设备),可添加
-f
选项:lsblk -f -o NAME,UUID,FSTYPE,MOUNTPOINT
。 - 普通用户可能无法查看所有设备的UUID,需使用
sudo
获取管理员权限。
使用blkid命令查看UUID
blkid(block identifier)是专门用于显示块设备属性(包括UUID、文件系统类型、卷标等)的命令,输出格式简洁,支持过滤特定字段,是最常用的UUID查看工具之一。
操作步骤
-
基本用法:直接输入
blkid
,系统会列出所有已挂载文件系统的属性,包括UUID。blkid
示例输出:
/dev/sda1: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="ext4" PARTUUID="00000000-01" /dev/sda2: UUID="89ab-cdef-1234-5678-90abcdef1234" TYPE="swap" /dev/sda3: UUID="5678-90ab-cdef-1234-5678-90abcdef12" TYPE="vfat" PARTUUID="00000000-03"
-
过滤UUID:若只想查看特定设备的UUID,可使用
-s
(显示指定字段)和-o
(输出格式)选项,例如查看/dev/sda1的UUID:blkid -s UUID -o value /dev/sda1
输出结果为纯UUID值:
123e4567-e89b-12d3-a456-426614174000
。
注意事项
- 对于未格式化的设备,blkid不会返回UUID信息。
- LVM逻辑卷的UUID以
LVM-
开头(如UUID="LVM-abc123Def456Ghi789Jkl012"
),可通过blkid /dev/vg_name/lv_name
查看。
通过/dev/disk/by-uuid/目录查看
Linux系统会在/dev/disk/by-uuid/
目录下自动为每个分区创建以UUID为名称的符号链接,链接指向实际的设备文件(如/dev/sda1),这种方法无需额外命令,通过目录结构即可直观查看UUID与设备的对应关系。
操作步骤
- 进入目录并查看内容:
ls -l /dev/disk/by-uuid/
示例输出:
lrwxrwxrwx 1 root root 10 10月 1 10:00 123e4567-e89b-12d3-a456-426614174000 -> ../../sda1 lrwxrwxrwx 1 root root 10 10月 1 10:01 5678-90ab-cdef-1234-5678-90abcdef12 -> ../../sda3 lrwxrwxrwx 1 root root 10 10月 1 10:02 89ab-cdef-1234-5678-90abcdef1234 -> ../../sda2
每一行显示一个UUID及其对应的设备路径(如
../../sda1
表示/dev/sda1
)。
优点
- 直观易懂,无需记忆命令参数,适合快速定位特定UUID对应的设备。
- 无需管理员权限,普通用户即可查看(需有目录读取权限)。
查看/etc/fstab文件获取UUID
/etc/fstab
是Linux系统中的文件系统表,记录了系统启动时需要自动挂载的设备及其挂载点、文件系统类型、挂载选项等信息,设备字段通常使用UUID标识,因此可通过查看该文件获取已配置自动挂载分区的UUID。
操作步骤
- 使用文本编辑器或命令查看
/etc/fstab
文件:cat /etc/fstab
示例输出:
# /etc/fstab: static file system information. UUID=123e4567-e89b-12d3-a456-426614174000 / ext4 defaults 0 1 UUID=5678-90ab-cdef-1234-5678-90abcdef12 /boot/efi vfat umask=0077,shortname=winnt 0 2 UUID=89ab-cdef-1234-5678-90abcdef1234 none swap sw 0 0
每行的第一个字段即为分区的UUID(如
UUID=123e4567-e89b-12d3-a456-426614174000
)。
注意事项
- 该方法仅适用于已配置在
/etc/fstab
中的分区,未配置的分区不会显示。 - 修改
/etc/fstab
文件需谨慎,错误的配置可能导致系统无法启动。
使用df命令结合工具链查看UUID
df
命令主要用于显示磁盘空间使用情况,但可通过管道结合grep
、awk
等工具提取UUID,适合需要关联挂载点和磁盘使用情况分析的场景。
操作步骤
- 查看
df
命令的输出,结合blkid
提取UUID:df -Th | grep "^/dev/" | awk '{print $1, $7}' | while read device mountpoint; do blkid -s UUID -o value $device | xargs -I {} echo "$device -> UUID={}, $mountpoint"; done
示例输出:
/dev/sda1 -> UUID=123e4567-e89b-12d3-a456-426614174000, / /dev/sda3 -> UUID=5678-90ab-cdef-1234-5678-90abcdef12, /boot/efi
适用场景
- 需要同时查看分区挂载点、磁盘空间使用情况和UUID时,此方法可一次性获取多维度信息。
特殊场景:LVM逻辑卷与RAID阵列的UUID查看
LVM逻辑卷UUID
LVM(Logical Volume Manager)逻辑卷的UUID可通过lvdisplay
命令查看:
lvdisplay /dev/vg_name/lv_name
输出中的”LV UUID”字段即为逻辑卷的UUID。
软件RAID阵列UUID
软件RAID阵列(如/dev/md0)的UUID可通过mdadm
命令查看:
sudo mdadm -D /dev/md0 | grep "UUID"
输出示例:UUID : a1b2c3d4-e5f6-7890-abcd-ef1234567890
不同方法对比总结
方法 | 命令/操作 | 适用场景 | 优点 | 缺点 |
---|---|---|---|---|
lsblk | lsblk -o NAME,UUID,FSTYPE |
查看块设备及文件系统UUID | 直观显示设备与UUID对应 | 需要解析输出列 |
blkid | blkid 或 blkid -s UUID |
快速获取文件系统属性及UUID | 简洁,支持过滤输出 | 不显示未格式化设备UUID |
/dev/disk/by-uuid/ | ls -l /dev/disk/by-uuid/ |
通过路径查找UUID对应设备 | 无需命令,路径直观 | 仅显示已挂载或识别的设备 |
/etc/fstab | cat /etc/fstab |
查看已配置自动挂载的UUID | 直接获取配置中的UUID | 仅限已配置的分区 |
df+工具链 | df | xargs blkid |
结合磁盘使用情况分析UUID | 可关联挂载点和空间使用 | 操作复杂,效率较低 |
相关问答FAQs
问题1:为什么同一个分区用lsblk和blkid查看的UUID格式不同?
解答:通常情况下,lsblk和blkid显示的UUID格式是一致的,但如果分区使用了多重挂载(如swap分区)或LVM逻辑卷,可能会出现差异,swap分区在lsblk中显示的UUID可能是文件系统UUID,而blkid可能同时显示设备UUID和文件系统UUID;LVM逻辑卷的UUID以”LVM-“开头,而其物理卷(PV)的UUID则是独立的,若分区被重新格式化,UUID会生成新的值,需确保查看的是当前分区的最新UUID。
问题2:如何通过UUID挂载一个新的分区?
解答:通过UUID挂载分区的步骤如下:
- 确认分区的UUID:使用
blkid /dev/sdb1
获取UUID,假设为”abcd1234-5678-90ef-ghij-klmnopqrstuv”; - 创建挂载点:
sudo mkdir /mnt/mydisk
; - 临时挂载:
sudo mount UUID=abcd1234-5678-90ef-ghij-klmnopqrstuv /mnt/mydisk -t ext4
(ext4为文件系统类型,根据实际情况修改); - 永久挂载:编辑
/etc/fstab
文件,添加行UUID=abcd1234-5678-90ef-ghij-klmnopqrstuv /mnt/mydisk ext4 defaults 0 2
,保存后运行sudo mount -a
测试配置是否正确,注意:确保文件系统类型、挂载选项(defaults)与分区实际属性一致,避免启动时挂载失败。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/28098.html