Linux磁盘UUID是稳定识别设备的唯一标识,优于易变的/dev/sda1类设备名;常用lsblk -f和sudo blkid查询,/dev/disk/by-uuid/提供符号链接映射,fstab中应写为UUID=xxx无空格引号,并用mount -a测试。

Linux 磁盘 UUID 是系统识别存储设备的唯一标识,比 /dev/sda1 这类设备名更可靠——因为设备名可能随硬件顺序或内核加载变化而变动,UUID 却始终不变。配置自动挂载(如 /etc/fstab)时用 UUID,能避免系统启动失败或挂错盘。
常用命令:快速查出磁盘分区的 UUID
日常最实用的是以下两个命令,无需 root 权限也能看到大部分信息(部分未挂载或加密分区可能需 sudo):
-
lsblk -f:显示树状结构,含设备名、文件系统类型、LABEL、UUID 和当前挂载点,一目了然。适合快速确认哪个 UUID 对应哪块盘、是否已挂载。 -
sudo blkid:最权威的底层查询工具,列出所有块设备(包括未格式化、未挂载、LVM 逻辑卷等)的 UUID、TYPE、LABEL、PARTUUID 等。推荐加sudo保证完整性。
想查单个分区,比如只看 /dev/sdb2 的 UUID,可直接运行:sudo blkid /dev/sdb2 -s UUID -o value(输出纯 UUID 字符串,方便脚本调用)。
/dev/disk/by-uuid/ 目录:用文件系统方式“看见” UUID
这个目录本质是符号链接集合,每个 UUID 都是一个软链接,指向真实设备路径:
ls -lh /dev/disk/by-uuid/
输出类似:
lrwxrwxrwx 1 root root 10 Dec 10 09:22 83609c48-0011-42bd-ac6d-97812abc2512 -> ../../sda5
这种映射关系在排查设备识别异常、验证 fstab 配置是否指向正确物理设备时非常直观。注意:该目录内容由 udev 动态生成,重启或插拔硬盘后会自动更新。
fstab 中用 UUID 挂载:写法与避坑要点
编辑 /etc/fstab 时,把设备名换成 UUID 能大幅提升稳定性。标准格式为:
UUID=83609c48-0011-42bd-ac6d-97812abc2512 /mnt/data ext4 defaults 0 2
关键提醒:
- UUID 后面**不要加空格或引号**(fstab 解析器不认引号,空格会截断);
- 确保文件系统类型(如
ext4、xfs)与实际一致,否则 mount 失败; - 修改前先用
sudo mount -a测试语法和可达性,无报错再重启; - 若设备暂未接入(如外接 USB 盘),建议加上
noauto,user等选项,避免开机卡住。
进阶技巧:批量确认与脚本化检查
运维中常需批量验证多台机器的挂载配置是否统一。可用如下组合快速比对:
- 查当前生效的 UUID 挂载:
findmnt -D | grep UUID(显示所有通过 UUID 挂载的条目); - 对比 fstab 与实际设备是否匹配:
sudo blkid | cut -d: -f1,2 | while read dev info; do echo "$dev $(echo $info | grep -o 'UUID=\"[^\"]*\"')"; done; - 检查某个 UUID 是否被 fstab 引用:
grep -i "83609c48-.*" /etc/fstab。
这些操作不复杂但容易忽略细节,尤其是权限、空格和文件系统类型三处,踩过一次就记得牢。









