升级到 ubuntu 20.04 后,kexec restart 不再跳过固件/硬重启

升级到 ubuntu 20.04 后,kexec restart 不再跳过固件/硬重启

(在这里发帖而不是 Ubuntu 子网站,因为我认为它与 Ubuntu 没有特别相关......)

我之前已经成功使用过kexec-reboot -lr非常有用的页面在这里

从 18.04 升级到 20.04 后,运行此命令仍然会重新启动系统,但它现在会进行“硬”重新启动,一路下降到 EFI/固件,而不仅仅是重新加载和重新启动内核。这使我的服务器的启动时间增加了几分钟(并且破坏了使用此调用的全部意义......)

根据 kexec-reboot 的详细输出运行的命令是:

Running /sbin/kexec -l /boot/vmlinuz-5.4.0-54-generic --append='root=UUID=69a4d39e-361f-41e7-9ad3-866cb9dae202 ro intel_iommu=on' --initrd=/boot/initrd.img-5.4.0-54-generic

直接运行该命令(即不是从 kexec-reboot 便捷脚本)会产生相同的行为。

我已经检查了 syslog 和 dmesg 中是否有看起来相关的消息,但我找不到任何内容,但我也可能不知道我可以查看的所有各个地方。除了详细标志之外,我还可以使用哪些其他东西来解决此问题?

11/26 更新:如果我按照上面的描述手动构建 kexec 行,然后运行kexec -e(如上所述这里)它确实只是直接启动内核。查看 kexec-reboot 代码显示最终调用是存在的shutdown -r now,所以我现在试图找出为什么shutdown -r now行为与之前不同......

答案1

从内核 5.4 开始,Linux 安全模块启用了锁定功能。这将禁用 kexec 重新启动功能,并且不允许绕过硬重置。默认情况下,5.4 中锁定功能处于禁用状态。但请确认您的情况未启用。您可以检查 u-boot 变量或内核源代码。

相关内容