重点:Linux系统的/etc/fstab 里要用的是【文件系统 UUID】,不是 PARTUUID(分区 UUID),别搞混!
方法 1:blkid(生产首选,推荐)
需要 root,直接读取文件系统元数据,最准,写 fstab 就拿这个 UUIDRed Hat
# 列出所有分区
blkid
# 指定单个分区查看
blkid /dev/sdb1
示例输出:
/dev/sdb1: UUID="0425f958-812c-4018-805d-9123456abcde" TYPE="xfs" LABEL="data"
只输出纯净 UUID(脚本提取用):
blkid -s UUID -o value /dev/sdb1
方法 2:lsblk -f(树形可视化,非常好用)
普通用户也可以执行,能同时看到:设备树、挂载点、FSTYPE、UUID、LABEL,方便对照确认
lsblk -f
精简只看 NAME、FSTYPE、UUID:
lsblk -o NAME,FSTYPE,UUID,MOUNTPOINT
只提取单个分区 UUID:
lsblk -no UUID /dev/sdb1
方法 3:查看 /dev/disk/by-uuid 软链接目录
udev 自动生成的符号链接,直接看映射关系
ls -lh /dev/disk/by-uuid/
输出示例:
lrwxrwxrwx 1 root root 10 Nov 8 10:00 0425f958-812c-4018-805d-9123456abcde -> ../../sdb1
✅ 快速区分:UUID vs PARTUUID
UUID=:文件系统 UUID → fstab 挂载用这个(xfs/ext4/swap/nfs)PARTUUID=:GPT 分区表的分区标识,分区本身的 ID,一般挂载不用
📌 常见坑
未格式化的裸分区,没有文件系统 UUID;
FAT32 的 UUID 是短格式,如
ABCD-1234,也可以直接写进 fstab;LVM 逻辑卷,blkid 看到的是 LV 的 UUID,不是底层物理分区的 UUID,fstab 直接用 LV 的 UUID 即可;
不要复制 PARTUUID 写到 fstab 的 UUID= 位置,会挂载失败。
📌 标准工作流(你配置 fstab 时一套流程)
lsblk # 先理清磁盘结构,确认 /dev/sdb1 是目标分区
blkid /dev/sdb1 # 拿到UUID,复制
cp /etc/fstab /etc/fstab.bak
# 写入fstab,然后校验
mount -a
本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。
原文链接
欢迎访问