我们用于数据库备份程序的一台服务器出现问题,我束手无策。在某个时候,它完全冻结了,因此被强制重启。之后,机器再也无法启动到操作系统。
该机器在 HPE Proliant ML30 Gen9 上运行 Ubuntu 18.04.3 LTS,经过仔细检查,我发现 ubuntu 启动选项不见了。
HPE Proliant 配置了智能阵列、禁用安全启动和 UEFI。
经过一番研究,我尝试修改 UEFI Shell,但无济于事,因为操作系统没有列为文件系统,但显示了存储设备。
然后我尝试运行 HPE Embedded Smart Storage Administrator,在 HPE SSA 加载时,我短暂地看到了 GRUB 2 界面。在 HPE SSA 加载完成后,我按下c
并能够进入 GRUB 的 cli。
在这里我能够浏览硬盘并最终发现所有数据都正常,没有数据丢失,但不知何故引导加载程序在 UEFI 环境中丢失了。
该/boot/efi
目录是空的,但/boot/grub
目录中有一些文件和文件夹。
然后我尝试启动 Ubuntu,结果如下:
此时,我已经没有主意了,也无法继续寻找答案,因为问题变得太具体了。
我甚至回到 UEFI Shell 尝试进入该BLK3
设备(因为它看起来像是那个分区)但我无法导航到该/boot
文件夹,所以我无法使用该bfcg
命令。
我不知道还能做些什么来恢复 Ubuntu 的引导加载程序。任何建议或帮助都将不胜感激。
PS:服务器以前是图形界面的,团队用TeamViewer监控服务器,检查备份过程。
PS2:insmod all_video
没有用。" file not found"
即使设置了根变量后,grub 仍然提示错误。
PS3:我尝试插入一些 USB 闪存驱动器。我尝试了分区为 GPT 的 Ubuntu 18.04.3、分区为 GPT 的 Ubuntu 20.04.3 和分区为 MBR 的 Ubuntu 20.04.3。HPE Proliant(Legacy 和 UEFI)都没有检测到它们,它们也没有出现在 UEFI Shell 中,我也不知道如何从 GRUB 界面挂载它们。
PS4:作为最后的手段,我可以使用 HPE Embedded Intelligent Provisioning 工具安装 RHEL。
PS5:这是我第一次使用 HPE Proliant 系统。
编辑: (hd2)
、(hd3)
以及(hd4)
它们相关的分区都是在我使用 HPE 工具时创建的。重新启动后,这些分区及其关联的文件系统将从 UEFI Shell 和启动选项中消失。
答案1
找到了解决该问题的方法。
正如所料,/boot
分区不见了,因为所有分区都重新排列了,其中一些分区丢失了。更新 HPE Proliant 固件后,我能够从外部 USB 驱动器启动。此时,我使用 Ubuntu live USB 来处理分区并重新排列它们,确保将分区设置/boot
为驱动器的第一个分区和扇区。
完成此操作后,我可以启动 GRUB shell 并避免出现No bootable devices were detected. Please attach a UEFI bootable device...
。Ubuntu 仍然未出现在列表中,因此我不得不进行完全干净的安装。我在安装前删除了所有分区,安装完成后我终于能够启动 Ubuntu。
我尝试使用启动修复,但无济于事。