我最近继承了一台 Linux(Gentoo,3.14 内核)服务器。该服务器实际位于另一个国家,需要 3 小时飞行。
服务器设置为使用 EFI 进行引导。其硬盘被划分为 sda1(EFI 分区)、sda2(“恢复”分区)和 sda3(“正常”分区)。有两个引导选项:一个“恢复”内核(引导选项 0000),它将 sda2 挂载为其根文件系统;另一个“正常”内核(引导选项 0001),它将 sda3 用作根文件系统。
EFI 的配置使得服务器在硬重启后始终启动到“恢复”映像,我们从来不会弄乱它。从那里可以发出
efibootmgr --bootnext 0001
reboot
以便使用 sda3 重新启动进入“正常”内核。我喜欢这个想法,因为这可以让我们非常安全地处理“正常”系统。
现在,我们必须安装一个新内核(我们需要一些额外的硬件支持)。我已经用我所知的正确选项编译了内核,并将其安装在 EFI 分区中。我遵循
https://wiki.gentoo.org/wiki/EFI_stub_kernel
我已使用以下方法将新内核添加到 EFI
efibootmgr --create --part 1 --label "GentooNEW" --loader '\efi\boot\vmlinuxNEW.efi'
正如预期的那样,这为 EFI 添加了一个新的“0002”启动选项。然后我尝试使用
efibootmgr --bootnext 0002
reboot
但重启后我发现它已启动到选项 0000“恢复”,据我所知(我对 EFI 经验很少)这意味着我新编译的内核无法启动而 EFI 尝试了默认选项。
问题是:是否可以远程调试我的新内核出了什么问题? EFI 会在某处保存一些日志吗?如果没有这些,我不知道该怎么做,因为那里可能有很多问题……