lsblk -f最省事:一条命令即显示设备名、文件系统类型、uuid和挂载点,树状结构直观呈现luks加密层无uuid而映射卷有、[swap]非常规挂载点;普通用户可运行,但未格式化分区uuid为空。

直接用 lsblk -f 看 UUID 和挂载点最省事
只要分区已格式化、设备被内核识别,lsblk -f 一条命令就能同时列出设备名、文件系统类型、UUID 和当前挂载路径,不需要挂载也不依赖 fstab。输出是树状结构,一眼能看出 sda3 解密后映射出的 vg-root 挂在 /,而 crypto_LUKS 层本身没 UUID。
- 普通用户可直接运行,多数情况无需
sudo - LUKS 加密卷(如
sda3)不显示 UUID,它下面的映射设备(如sda3_crypt→vg-root)才有 -
[SWAP]表示交换分区,不是常规挂载点,别当成MOUNTPOINT复制进 fstab - 如果某行
UUID列为空,大概率是未格式化或文件系统损坏,file -s /dev/sdb1会返回data而非ext4类型
查全部设备 UUID 用 blkid 最准
blkid 直接读 superblock 元数据,不走 udev 缓存,结果最权威。它能列出所有已格式化分区(包括 swap),哪怕没挂载、没标签、没 LVM 映射也能照出 UUID。
- 运行
sudo blkid查所有;加-s UUID只显示 UUID 字段:sudo blkid -s UUID - 脚本里精准取值用
-o value:sudo blkid /dev/nvme0n1p2 -s UUID -o value输出纯字符串,无引号无前缀 - 如果
blkid不输出某设备,基本等于它没文件系统——tune2fs -l /dev/sdb1这类命令对 xfs/btrfs 分区根本无效,别硬试 - 注意:LVM 逻辑卷(如
/dev/mapper/vg0-lv_home)只要上面有文件系统,blkid就能正常显示 UUID
验证 UUID 是否真实有效,看 /dev/disk/by-uuid/
这个目录是符号链接集合,每个文件名就是 UUID,指向实际设备节点。它不告诉你 UUID 是不是“正确”,但能确认内核当前是否认得这个 UUID 并映射到了哪个设备。
- 运行
ls -lh /dev/disk/by-uuid/,看到类似1a2b3c4d-... -> ../../sda2就说明映射存在 - 用
readlink -f /dev/disk/by-uuid/1a2b3c4d-...确认目标路径是否存在且可访问 - 刚用
tune2fs -U改完 UUID,这里可能滞后——udev 没重载前链接还是旧的,别拿它当最新依据 - 它不能替代
blkid:链接存在 ≠ 文件系统完好,更不等于 UUID 没被误复制到错误 fstab 条目里
从 /etc/fstab 里提取已配置的 UUID 要小心复制
fstab 里的 UUID 是系统启动时实际使用的值,适合审计或复现问题,但别直接当成“当前磁盘真实 UUID”来信任。
- 用
grep UUID /etc/fstab找出所有 UUID 挂载条目,注意等号后、空格前那段才是有效 UUID - 复制时务必选中完整 36 字符(含连字符),漏一个字符或错大小写都会导致开机失败
- 如果 fstab 里写了 UUID,但
blkid查不到对应设备,说明分区可能被删了、格式化了,或者 UUID 被手动改过没同步更新 fstab - 别用
findmnt -D UUID=...反查挂载点来“验证 fstab 正确性”——它只查当前状态,fstab 错了它照样不报错
blkid 当前读出来的值,而不是任何缓存、链接或配置文件里的旧记录。











