在Linux系统中,UUID(Universally Unique Identifier,通用唯一标识符)是用于唯一标识存储设备、文件系统、分区等的重要标识符,它由32个十六进制字符组成,格式为“8-4-4-4-12”(123e4567-e89b-12d3-a456-426614174000”),查看UUID是系统管理中的常见操作,尤其是在配置挂载点、磁盘管理或系统维护时,以下是几种常用的查看UUID方法,涵盖不同场景和工具,帮助用户高效获取所需信息。
使用blkid
命令查看设备UUID
blkid
是Linux系统中用于查看块设备属性(包括UUID、文件系统类型、卷标等)的命令,是查看UUID最常用且直接的方式。
基本用法
-
查看所有已挂载设备的UUID:
直接在终端输入blkid
,系统会列出所有已识别的块设备及其UUID、文件系统类型等信息。sudo blkid
输出示例:
/dev/sda1: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="ext4" PARTUUID="..." /dev/sdb2: UUID="abcdef12-3456-7890-abcd-ef1234567890" TYPE="swap"
-
查看指定设备的UUID:
若需查看特定设备(如/dev/sda1
)的UUID,可使用以下命令:sudo blkid /dev/sda1
输出中会明确显示
UUID=
后面的值。 -
仅显示UUID字段:
若只需要UUID本身,可通过grep
或awk
过滤输出:sudo blkid /dev/sda1 | awk '{print $2}' | cut -d'"' -f2
或使用
-s
(显示指定属性)和-o value
(仅输出值)选项:sudo blkid -s UUID -o value /dev/sda1
使用lsblk
命令查看块设备信息
lsblk
(list block devices)以树状结构列出块设备信息,包含设备名称、大小、挂载点、UUID等,适合查看设备层级关系和UUID的对应关系。
基本用法
-
显示所有块设备的UUID:
使用-o
选项指定输出字段,包括NAME
(设备名)、UUID
、FSTYPE
(文件系统类型)、MOUNTPOINT
(挂载点):lsblk -o NAME,UUID,FSTYPE,MOUNTPOINT
输出示例:
NAME UUID FSTYPE MOUNTPOINT sda ├─sda1 123e4567-e89b-12d3-a456-426614174000 ext4 /boot └─sda2 5678abcd-ef12-3456-7890-abcdef123456 ext4 / sdb └─sdb2 abcdef12-3456-7890-abcd-ef1234567890 swap [SWAP]
-
仅显示包含UUID的设备:
若需过滤掉无UUID的设备(如未分区的磁盘),可结合grep
:lsblk -o NAME,UUID | grep -v "^$"
通过/dev/disk/by-uuid
目录查看UUID
Linux系统会在/dev/disk/by-uuid
目录下创建指向分区的符号链接,链接名即为设备的UUID,通过查看该目录,可直接获取所有设备的UUID及其对应的设备路径。
操作步骤
-
列出
/dev/disk/by-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 abcdef12-3456-7890-abcd-ef1234567890 -> ../../sdb2
第一列是UUID,最后一列是链接的设备路径(如
../../sda1
)。 -
通过UUID反向查找设备:
若已知UUID,可通过readlink
命令获取对应的设备路径:sudo readlink -f /dev/disk/by-uuid/123e4567-e89b-12d3-a456-426614174000
输出结果为
/dev/sda1
。
查看/etc/fstab
文件中的UUID
/etc/fstab
是Linux系统中的文件系统表,记录了设备的挂载信息,其中许多条目使用UUID作为设备标识符(而非设备路径,以提高可移植性),通过查看该文件,可获取已配置自动挂载设备的UUID。
操作步骤
- 使用
cat
或less
查看文件内容:cat /etc/fstab
或分页查看(适合长文件):
less /etc/fstab
输出示例(关键行):
UUID=123e4567-e89b-12d3-a456-426614174000 /boot ext4 defaults 0 2 UUID=5678abcd-ef12-3456-7890-abcdef123456 / ext4 defaults 0 0
其中
UUID=
后面的值即为对应分区的UUID。
使用findmnt
命令查看挂载点及UUID
findmnt
用于查找文件系统的挂载信息,可结合-o
选项显示UUID,适合查看已挂载设备的UUID及其挂载点。
基本用法
- 显示所有挂载设备的UUID和挂载点:
findmnt -o UUID,TARGET,SOURCE
输出示例:
UUID TARGET SOURCE 123e4567-e89b-12d3-a456-426614174000 /boot /dev/sda1 5678abcd-ef12-3456-7890-abcdef123456 / /dev/sda2
不同方法对比总结
为方便用户根据场景选择,以下方法对比表格供参考:
方法 | 命令示例 | 主要用途 | 适用场景 |
---|---|---|---|
blkid |
sudo blkid /dev/sda1 |
查看设备属性(含UUID) | 快速获取单个或所有设备的UUID |
lsblk |
lsblk -o NAME,UUID |
查看块设备层级及UUID | 需了解设备挂载关系时 |
/dev/disk/by-uuid |
ls -l /dev/disk/by-uuid |
通过链接名直接查看UUID | 反向查找设备路径时 |
/etc/fstab |
cat /etc/fstab |
查看已配置自动挂载设备的UUID | 管理系统启动挂载配置时 |
findmnt |
findmnt -o UUID,TARGET |
查看挂载点及对应UUID | 分析当前挂载状态时 |
相关问答FAQs
Q1: 如何通过UUID挂载设备?
A: 使用mount
命令结合UUID挂载设备,步骤如下:
- 创建挂载点目录(如
/mnt/mydisk
):sudo mkdir -p /mnt/mydisk
- 通过UUID挂载设备(假设文件系统类型为
ext4
):sudo mount UUID=123e4567-e89b-12d3-a456-426614174000 /mnt/mydisk -t ext4
- 若需开机自动挂载,将条目添加到
/etc/fstab
(格式参考上文方法四)。
Q2: 如果UUID损坏或无法识别,如何恢复或重新生成?
A: UUID通常由文件系统格式化时生成,若损坏或丢失,可通过以下步骤处理:
- 检查设备状态:使用
fsck
检查文件系统错误(如sudo fsck /dev/sda1
),修复后可能恢复UUID。 - 重新生成UUID:
- 对于
ext4
文件系统:使用tune2fs
命令重新生成UUID:sudo tune2fs -U random /dev/sda1 # 生成随机新UUID
- 对于
xfs
文件系统:使用xfs_admin
命令:sudo xfs_admin -U generate /dev/sda1 # 生成新UUID
- 对于
- 更新
/etc/fstab
:若UUID变更,需同步修改/etc/fstab
中的UUID条目,避免启动失败。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/33869.html