启动卡在“Started Disk Manager”或“Failed to start Local File Systems”通常是/etc/fstab配置错误所致,常见原因包括设备路径失效、UUID错误、文件系统类型写错、挂载点缺失或选项不支持。

系统启动卡在“Started Disk Manager”或提示 Failed to start Local File Systems
这通常不是磁盘坏了,而是 /etc/fstab 里某一行配置出错,导致 systemd 尝试挂载失败后阻塞启动流程。常见原因包括:设备路径(如 /dev/sdb1)已不存在、UUID 错误、文件系统类型写错(比如把 ext4 写成 ext3)、挂载点目录缺失,或选项中用了不支持的参数(如 x-systemd.device-timeout=0 在旧内核上不识别)。
实操建议:
- 启动时按
e进入 GRUB 编辑模式,在 linux 行末尾加systemd.unit=multi-user.target跳过图形目标,或直接加rd.break进 initramfs 紧急模式 - 若能进单用户模式,先运行
mount -a手动测试/etc/fstab—— 它会逐行尝试挂载并报出第一处错误 - 用
blkid核对 UUID 是否匹配;用lsblk -f看当前实际设备与文件系统类型 - 临时注释掉疑似出问题的行(前面加
#),再systemctl daemon-reload && reboot
mount: unknown filesystem type 'LVM2_member' 或无法识别卷组
这不是挂载命令本身的问题,而是系统启动时没激活 LVM 卷组(VG),导致逻辑卷(LV)设备节点(如 /dev/mapper/vg0-lv_root)根本不存在。典型表现是 ls /dev/mapper/ 为空,或 vgs 命令无输出。
实操建议:
- 确认 initramfs 是否包含 LVM 支持:检查
/etc/dracut.conf.d/lvm.conf(RHEL/CentOS)或/etc/initramfs-tools/conf.d/resume(Debian/Ubuntu)是否启用 lvm2 模块 - 重建 initramfs:
dracut -f(RHEL系)或update-initramfs -u(Debian系) - 检查
/etc/default/grub中GRUB_CMDLINE_LINUX是否漏了rd.lvm.lv=vg0/lv_root这类显式激活参数 - 若使用加密 LUKS+LVM,确保
rd.luks.uuid和rd.lvm.lv同时存在且 UUID 正确
挂载点目录被占用或 mount: /mnt/data busy
这个错误多出现在重启服务或重载 fstab 后,而非首次启动。本质是目标目录正被某个进程作为工作目录、chroot 根、或被其他挂载(如 bind mount、overlayfs)占用。systemd 的 Mount 单元默认不强制卸载,所以会直接失败。
实操建议:
- 用
lsof +D /mnt/data或fuser -v /mnt/data查看谁在用该路径 - 检查是否有嵌套挂载:
findmnt /mnt/data会显示完整挂载树,注意子挂载点是否未清理 - 在
/etc/fstab对应行末尾加x-systemd.requires-mounts-for=/mnt/data不解决问题,但可改用noauto,x-systemd.automount延迟挂载 - 若确定要强制覆盖,手动执行时加
-o remount,bind或先umount -l /mnt/data(lazy unmount),但启动阶段避免依赖此行为
使用 UUID 挂载仍失败,systemd-fstab-generator 日志显示 ignoring entry
systemd 从 v240 开始默认禁用部分 fstab 特性。如果某行含不被识别的选项(如旧版 comment=systemd.automount)、挂载点为相对路径、或文件系统类型为 swap 但没配 swapon,systemd-fstab-generator 会静默跳过该行 —— 表现就是“明明写了却没挂上”,且 systemctl list-units --type=mount 里找不到对应单元。
实操建议:
- 运行
systemd-fstab-generator /etc/fstab /tmp/mnt(需 root)查看它生成了哪些 .mount 单元,比对缺失项 - 确保挂载点是绝对路径(不能是
./data或data) - swap 分区必须写成
none swap sw 0 0,且不能和普通挂载共用同一设备行 - 避免在 fstab 中混用 systemd 专有选项(如
x-systemd.idle-timeout)和传统选项,优先用原生 systemd unit 文件替代复杂逻辑
cat /etc/fstab # 正确示例(UUID + ext4 + 标准选项) UUID=12345678-9abc-def0-1234-56789abcdef0 /data ext4 defaults,noatime 0 2 # 错误示例(会被 systemd-fstab-generator 忽略) /dev/sdb1 /data ext4 defaults,x-systemd.automount 0 0
启动失败往往卡在最不起眼的一行 fstab 配置上,而错误日志又分散在 journalctl、dmesg、initramfs shell 多个地方。比起盲目重启,先拿到 journalctl -b -p err 和 systemctl status systemd-fsck@dev-disk-by\x2duuid-... 的具体输出,才能准确定位是设备层、LVM 层、还是挂载策略层的问题。










