3.6.4 UUID与LABEL的使用

3.6.4 UUID与LABEL的使用#

UUID(通用唯一标识)与LABEL(卷标)用于在挂载与/etc/fstab中稳定标识设备,避免因设备名变化(如/dev/sdb/dev/sdc)导致挂载失败。UUID全局唯一、可靠性高;LABEL可读性强但需保证唯一性。

原理草图(设备名与稳定标识的关系)

文章图片

获取UUID与LABEL(命令与说明)

# 查看设备UUID与LABEL
blkid /dev/sdb1
# 预期输出示例:
# /dev/sdb1: UUID="1a2b3c4d-..." TYPE="ext4" LABEL="data01"

# 查看所有块设备与文件系统信息
lsblk -f
# 预期输出示例:
# NAME   FSTYPE LABEL  UUID                                 MOUNTPOINT
# sdb1   ext4   data01 1a2b3c4d-...                          /data

# 通过稳定路径查看
ls -l /dev/disk/by-uuid/
ls -l /dev/disk/by-label/

设置与修改LABEL(按文件系统类型)

# ext4 设置LABEL(两种方式任选其一)
e2label /dev/sdb1 data01
# 或
tune2fs -L data01 /dev/sdb1

# xfs 设置LABEL
xfs_admin -L data01 /dev/sdb1

# swap 设置LABEL
swaplabel -L swap01 /dev/sdb2

# 验证
blkid /dev/sdb1

/etc/fstab使用UUID与LABEL(完整示例)

# 编辑 fstab
vim /etc/fstab

# 追加以下行(注意空格与顺序)
UUID=1a2b3c4d-1234-5678-90ab-abcdef123456 /data ext4 defaults,noatime 0 2
# 或使用 LABEL
# LABEL=data01 /data ext4 defaults,noatime 0 2

# 立刻测试挂载,不重启
mount -a

# 预期结果:/data 被正确挂载
df -h | grep /data

关键命令解释
- blkid:读取设备元数据,输出UUID/LABEL/文件系统类型。
- lsblk -f:面向块设备的汇总视图,便于全局校验。
- mount -a:按/etc/fstab重新挂载,测试配置是否正确。
- tune2fs -L / xfs_admin -L:写入或修改文件系统卷标。

排错清单(常见问题与处理)

# 1) 挂载失败:UUID写错或不存在
grep -n "/data" /etc/fstab
blkid | grep -i "1a2b3c4d"

# 2) 克隆磁盘导致UUID重复(ext4)
tune2fs -U random /dev/sdb1
# 3) 克隆磁盘导致UUID重复(xfs)
xfs_admin -U generate /dev/sdb1

# 4) LABEL重复导致挂载混乱
blkid | grep -i LABEL
# 改名后重新挂载
e2label /dev/sdb1 data01_new
mount -a

实践练习
1. 创建一块新分区并格式化为ext4(示例设备为/dev/sdb1),设置LABEL为data01
2. 使用blkidlsblk -f分别验证UUID与LABEL。
3. 在/etc/fstab中分别用UUID与LABEL配置挂载到/data,切换并用mount -a测试。
4. 手工制造LABEL重复并观察mount -a错误,再恢复为唯一LABEL。
5. 克隆分区后生成新UUID,确保/etc/fstab更新生效。