跳至内容

从启动失败中恢复

计算机正常启动失败可能会非常令人不安!这里是一些恢复机制:

回滚到旧版本的操作系统 (OS)

如果启动故障发生在系统更新后,回滚到旧版本一般会修复它。

若您要这么做:

  1. 将机器开机,或重启机器。
  2. 按住 Space 直到 OS 版本选择器出现 (黑色背景中白色文字)
  3. Press the down arrow key to select an older OS version.
  4. 按 Enter 来启动它。

If rolling back to an older OS version fixes the issue, please report it here, and attach the output of running journalctl --boot -1 --no-pager in a terminal window.

Otherwise, you can change how the system boots by altering the kernel command line parameters to achieve various additional debugging approaches:

更改内核命令行,以不同方式启动系统

若您要编辑内核命令行:

  1. 将机器开机,或重启机器。
  2. 按住 Space 直到 OS 版本选择器出现 (黑色背景中白色文字)
  3. 在 OS 版本选择器中,按 e 键。
  4. 将出现一段有着很长的文本的文本字段;这便是内核命令行。

禁用 systemd 扩展

向内核命令行添加 systemd.mask=systemd-sysext.service ,然后按 Enter 。

若您有任何活动的 systemd 扩展且启动失败发生在您更新扩展内容后,禁用扩展可能是有用的:扩展出错可能就是启动失败的原因。在您确定扩展哪出了问题之前,暂时禁用扩展应该能解决问题。

若此方法奏效,请在登入您的系统后找出扩展中的错误,并修复错误。若您没有这个能力,就禁用这个扩展吧。

绕过登录屏幕或 Plasma 故障

向内核命令行添加 systemd.unit=multi-user.target ,然后按下 Enter。

若登录屏幕或 Plasma 启动失败或循环崩溃,这将会有用;您可以启动到一个命令行环境,无需通过这两者。在此命令行环境中,您得以调试。

若调试与故障排除显示问题并非您自己的操作所致,请打开一个 KDE Linux 团队的问题报告 来调查。

进入紧急 Root shell

  1. 向内核命令行添加 systemd.debug_shell=on SYSTEMD_SULOGIN_FORCE=1 ,然后按下 Enter 。
  2. 等待屏幕转为黑色并保持几秒钟。
  3. 按 Ctrl+Alt+F9 (注:在笔记本电脑上, 您可能还需要按住 Fn ) 。

You are now in the emergency root shell.

若调试与故障排除显示问题并非您自己的操作所致,请打开一个 KDE Linux 团队的问题报告 来调查。

回滚 /etc

当启动到某个特定的构建可能修改 /etc ,使其与旧的构建不兼容。

This can manifest as bizarre issues after rolling back the OS, such as black screens, login passwords not being accepted, or run0 not doing anything after you authenticate.

要恢复,请用旧版替换损坏的 /etc ,请做如下操作:

  1. 通过上述任何一种方法获取一个 shell 并运行以下命令:
  2. run0 --empower
  3. mv /etc /etc.broken
  4. btrfs subvolume snapshot $(ls -d -1 /.etc.* | tail -2 | head -1) /etc
  5. systemctl reboot

当 https://invent.kde.org/kde-linux/kde-linux/-/issues/505 解决后,以上手动步骤应该会变为非必要的。

More information


文章作者:,使用 CC-BY-4.0 许可证发布。