在 Linux 启动过程中,如果遇到 文件系统问题(如文件系统损坏、挂载失败、/etc/fstab 配置错误、磁盘硬件问题等),系统通常无法正常进入登录界面或桌面环境,而是会 停留在启动过程中的某个阶段,并显示相关的错误信息页面。
在这个阶段,你可能会看到 黑底白字的终端界面,并显示类似如下的错误信息:
Giving up on /dev/sda1: No such file or directory
...
mount: mounting /dev/sda1 on /root failed: No such device or address
...
Begin: Running /scripts/init-bottom ... done.
[*** ] A start job is running for dev-disk-by\x2d... (Xs / no limit)
使用相关按钮或菜单条目向系统发送 Ctrl+Alt+Del,以重启 servera计算机。对于此启动问题,该按键序列可能不会立即中止正在运行的作业,而您可能必须等待其超时才能重启系统。
如果您是等待该任务超时而不发送 ctrl+Alt+pel,系统最终会自行生成紧急 shell。
在显示启动加载器菜单后,按任意键(Enter 键除外)中断倒计时。
1.使用光标键突出显示默认的启动加载器条目。
2.按e键编辑当前条目。
3.使用光标键导航到以词语 linux 开头的那一行。
4.按 End 将光标移至行末。
5.将 systemd.unit=emergency.target 字符串附加到行末。
通过手动指定 systemd.unit=emergency.target
,可以让系统在启动时直接进入“紧急模式”——只加载最基本的系统组件,方便管理员排查故障(比如看日志、修复配置等)。
输入完成后,不需要按回车或保存——GRUB 只是临时修改这次启动的参数,重启后不会永久生效。
6.按crtl+x使用修改后的配置进行启动。
登陆紧急模式,查看当前挂载的文件系统,我们发现这里的问题是,systemd守护进程以只读模式挂载根文件系统。
这里我们以读写模式重新挂载根文件系统。然后尝试挂载所有在/etc/fstab中列出但尚未挂载的文件系统,发现某个挂载点不存在。
编辑/etc/fstab文件,注释掉不正确的行。
重新加载systemd守护进程,已注册新的/etc/fstab文件配置。尝试挂载所有条目验证。重新启动系统并等待启动完成。
systemctl daemon-reload #重新加载systemd守护进程
mount -a #重新挂载验证
systemctl reboot #没问题的话重启