让 systemd 使用 kexec 作为默认重启方法

让 systemd 使用 kexec 作为默认重启方法

在具有 systemd 的 debian stretch 上,可以使用 systemd 命令重新启动systemctl kexec

此外,systemd 处理所有重启:

# ls -l $(which reboot)
lrwxrwxrwx 1 root root 14 Jul  5  2017 /sbin/reboot -> /bin/systemctl

因为重新启动并完全初始化硬件需要很长时间,更重要的是需要输入加密密码,所以我宁愿总是使用 kexec 进行重新启动。

是否可以以使用 kexec 作为默认机制的方式配置 systemd reboot?(除了替换/sbin/reboot

答案1

用 kexec 替换 reboot

  1. 删除或重命名 systemd 重启目标

    rm /lib/systemd/system/reboot.target

  2. 创建指向 kexec 目标的链接作为重启目标

    ln -sf /etc/systemd/system/kexec.target /lib/systemd/system/reboot.target

  3. 重新加载

    systemctl 守护进程重新加载

  4. 请注意,systemd 和 kexec 仅支持一种重启方式,即使用

    systemctl kexec

通过“rebo​​ot”命令重新启动不起作用,因为通过 SysV init 包装器运行的 kexec-load 脚本不会加载 kexec 内核,除非以正确的方式调用。使用 kdump 可能不再有效。参考:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785714

取消一切

  1. 重新安装 systemd

    apt install --reinstall systemd

相关内容