如何让 Ubuntu 默认使用 kexec(带有 EFI)重新启动?

如何让 Ubuntu 默认使用 kexec(带有 EFI)重新启动?

默认情况下使用 kexec 让 Ubuntu 重新启动的正确方法是什么(尤其是从 GUI 启动重新启动时)?

我发现kexec 重启脚本,下载并运行时会使用sudo kexec-reboot -l -rkexec 重新启动内核(不通过 EFI)。

我怎样才能使从 GUI 选择重新启动导致 kexec 重新启动?我正在使用 Unity 7。它以前只需安装包并使用 进行配置即可工作dpkg,但这表明它仅适用于 System-V,现在我们正在使用 systemd。

答案1

这个(未回答的) askubuntu 仍然在搜索结果中名列前茅。
以下是来自优质来源的几篇解决此问题的方法:

https://www.tomica.net/blog/2019/03/reboot-with-kexec-on-ubuntu-18-04/
https://www.linux.com/news/reboot-racecar-kexec/

而且,似乎正在努力将其融入 Ubuntu 本身,目前正处于规范阶段。它既可以作为补充指南,也可以指出几个尚未解决的问题:

https://wiki.ubuntu.com/RapidReboot

答案2

因此,从 21.10(和 Kubuntu)开始,只要开始使用systemd-boot而不是GRUB2来启动机器,它就可以工作 - 这也可能将启动速度加快几秒钟。详情如下:如何在 ubuntu 20.04 中用引导加载程序“systemd-boot”替换 grub?

一旦准备好,sudo systemctl kexec就可以工作了。

如果您使用 Nvidia 卡和多个显示器(甚至可能没有),则可能需要创建一个新的 systemd 单元。

sudo gedit /usr/lib/systemd/system/unmodeset.service

[Unit]
Description=Unload nvidia modesetting modules from kernel
Documentation=man:modprobe(8)fi
DefaultDependencies=no
After=umount.target
Before=kexec.target

[Service]
Type=oneshot
ExecStart=modprobe -r nvidia_drm

在我的例子中,有些作业需要 90 秒才能关闭。调整这些值有助于/etc/systemd/systemd.conf

DefaultTimeoutStartSec=3s
DefaultTimeoutStopSec=3s
DefaultStartLimitIntervalSec=2s

将其设为从 GNOME 调用时的默认重启操作似乎是不可能的。https://github.com/systemd/systemd/issues/15029#issuecomment-981781792它们logind直接调用,因此如果不修补软件,这是不可能的。希望你能说服 GNOME 开发人员。在 KDE 中,覆盖重启操作的功能位于 SDDM 中,但现在已损坏:https://github.com/sddm/sddm/issues/434

相关内容