blkid查不到“丢失挂载路径”的分区UUID,因其只读设备元数据、不关心挂载点;所谓“丢失”实为分区存在但fstab未配置或挂载失败,需先用sudo blkid -c /dev/null验证UUID是否存在,再通过ls -l /dev/disk/by-uuid/、findmnt -U等确认设备可用性及挂载点,最后安全写入fstab并用sudo mount -a验证。

直接用 blkid 查不到“丢失挂载路径”的分区 UUID,因为 blkid 本身不关心挂载点——它只读设备元数据。所谓“丢失挂载路径”,通常指分区存在、UUID 可查,但 /etc/fstab 里没配置、或配置了却没生效(比如挂载失败后被跳过)。关键不是“找 UUID”,而是确认该 UUID 对应的设备是否真实可用、是否匹配预期用途,再安全写入 fstab。
确认目标分区是否存在且可识别
先排除设备未被内核识别或分区表未刷新的情况:
- 运行
sudo blkid -c /dev/null强制绕过缓存,获取最新结果;若仍无输出,说明设备节点(如/dev/sdb1)可能不存在 - 检查物理连接或虚拟机磁盘状态:
ls /dev/sd* /dev/nvme*或lshw -class disk - 刚分完区?执行
sudo partprobe或sudo blockdev --rereadpt /dev/sdX刷新分区表 - 虚拟机中偶尔需同步 udev:
sudo udevadm trigger --subsystem-match=block && sudo udevadm settle
验证 UUID 是否真实指向有效文件系统
仅 blkid 显示 UUID 不代表能用——可能被格式化覆盖、加密封装或模块未加载:
- 用
ls -l /dev/disk/by-uuid/看该 UUID 是否有对应软链接,且目标设备路径存在(如../../sdb1) - 若链接缺失,运行
sudo udevadm settle后重试;仍无效,可能是文件系统损坏或未格式化 - 检查内核是否支持其类型:
cat /proc/filesystems | grep -E "(ext|xfs|btrfs|vfat)";若缺模块,手动加载(如sudo modprobe xfs) - 对 LUKS 加密卷,
blkid只显示crypto_LUKS类型,UUID 属于解密后的映射设备(如/dev/mapper/vg-root),需先打开再查
定位挂载点并生成 fstab 条目
不要凭记忆写挂载点,用系统当前状态反推最可靠:
- 查已挂载但未进 fstab 的分区:
findmnt -D(显示所有挂载,含来源设备) - 按 UUID 查挂载位置:
findmnt -U "你的-uuid";若无输出,说明当前未挂载,但设备可用 - 确认挂载点目录存在且权限合适:
sudo mkdir -p /mnt/data,避免 fstab 挂载时报错 - 构造 fstab 行(以 ext4 为例):
UUID=abcd1234-5678-efgh-9012-ijklmnopqrst /mnt/data ext4 defaults 0 2
注意:第六字段(pass)为2表示非根文件系统,启动时不强制检查
安全写入 fstab 并验证
改 fstab 是高风险操作,务必验证再重启:
- 编辑前备份:
sudo cp /etc/fstab /etc/fstab.bak - 添加新行后,**不重启**,先运行:
sudo mount -a—— 检查语法和挂载可行性 - 若报错,根据提示修正(常见如文件系统类型写错、目录不存在、UUID 拼写错误)
- 成功后,用
findmnt /mnt/data或df -h /mnt/data确认已挂载 - 最后再考虑重启;若启动失败,可通过 recovery mode 或 Live USB 修复 fstab


















