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

sup*_*sup 8 reboot kernel uefi systemd

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

我发现了这个kexec reboot script,当下载并运行时,sudo kexec-reboot -l -r用 kexec 重新启动内核(不通过 EFI)。

我怎样才能让从 GUI 中选择重新启动会导致 kexec 重新启动?我正在使用 Unity 7。它过去只需要安装包并使用 配置它就可以工作dpkg,但这表示它只是 System-V,现在我们正在使用 systemd。

sup*_*sup 0

因此,从 21.10(和 Kubuntu)开始,只要开始使用systemd-boot而不是GRUB2启动机器,它就可以工作 - 这也可能会加快启动速度几秒钟。详细信息在这里:How to Replace grub with bootloader "systemd-boot" in ubuntu 20.04?

一旦准备好,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
Run Code Online (Sandbox Code Playgroud)

就我而言,某些作业需要 90 秒才能关闭。修改这些值有助于/etc/systemd/systemd.conf

DefaultTimeoutStartSec=3s
DefaultTimeoutStopSec=3s
DefaultStartLimitIntervalSec=2s
Run Code Online (Sandbox Code Playgroud)

当从 GNOME 调用时使其成为默认的重新启动操作似乎是不可能的。根据https://github.com/systemd/systemd/issues/15029#issuecomment-981781792,他们直接调用logind,因此如果不修补软件,这是不可能的。祝 GNOME 开发者相信这一点好运。在 KDE 中,覆盖重新启动操作的功能位于 SDDM 中,但现在已损坏: https: //github.com/sddm/sddm/issues/434