软件冷重启

软件冷重启

我发现它grub-reboot仅适用于冷重启(关闭然后手动启动),但不适用于简单的rebootshutdown -r.使用这些常用的重新启动命令,Ubuntu 16.04 偶尔会显示一些Clearing orphaned inode消息,然后立即返回Started new Kernel Device Manager(关闭和启动消息通常甚至是交错的)。我从来没有看到 GRUB2 屏幕,更重要的是,我从来没有启动到我的备用 grub 条目。

OTOH,如果我关闭然后手动打开机器,我会发现它grub-reboot确实标记了正确的临时选项(不是我刚刚留下的选项)。

由于对我来说,整个目的grub-reboot是远程切换操作系统,这不是一个好的选择。

如何重新启动并看到 GRUB?

答案1

有问题的系统是为 kexec 配置的,因此它永远不会下降到引导加载程序或固件。

kexec 背后的总体思想是避免在许多服务器硬件上出现疯狂的 POST 时间,以减少需要升级内核时的停机时间。它还有其他一些巧妙的用途(它在某些发行版上用于处理故障转储,甚至可以用于在直接在硬件上运行 Linux 和在 Xen 虚拟机管理程序中运行 Linux 之间切换)。

有两种选择可以处理这个问题。

  1. 了解如何正确禁用 kexec(通过禁用加载新内核的 init 脚本,或者卸载应该位于kexec-toolsUbuntu 上调用的包中的 kexec 命令)。不幸的是,这是特定于系统的,我现在不知道 Ubuntu 如何处理 kexec,所以我不能在这里给出太多建议。

  2. 在发出重新引导命令之前,通过以 root 身份运行命令来手动卸载 kexec 内核kexec -u。只有在启动期间或安装新内核包时加载才有效(尽管我认为这是 Ubuntu 处理它的方式,但我不确定)。或者,如果使用 systemd,则调用systemctl reboot而不只是reboot 可能绕过 kexec 内核的使用,但我对此不确定。

相关内容