我的硬盘上有最新版本的 Ubuntu,我用 gpart 删除了 Windows 8。我注意到一个名为 boot efi 的分区,它是 fat32,所以我假设它是另一个与 Windows 关联的分区,然后删除了它。
然后,我收到 BIOS 错误,提示没有操作系统,所以我安装了旧版本的 Ubuntu。现在它可以立即加载我刚刚安装的旧版本,但我无法让它加载我的新 Ubuntu 版本,即我与 Windows 8 一起安装的版本。我如何制作一个 efi 文件来加载包含我所有工作的那个文件?
这个新安装的旧版 Ubuntu 有一个 efi 文件,因此它会立即加载到其中。438.91GB 是我在发生这一切之前使用的主要 Ubuntu 版本。见图:
答案1
如果您安装了另一个 UEFI 启动及其 efi 启动文件,并且拥有相同版本的 grub,则您只需使用新的 UUID 编辑 efi 分区中的 grub.cfg 即可。
在进行任何更改之前,请备份 ESP - Efi 系统分区。您只需复制文件即可,它应该可以正常工作。否则,您必须运行修复来恢复 efi 启动文件。
您的 /boot/efi/EFI/ubuntu 中应该有一个小型 grub.cfg。这是我的,它包含主安装和驱动器的 UUID,以及该安装的分区。更改为您的主安装的 UUID 和分区号。
search.fs_uuid 45de38c8-6748-4634-b207-628d9aa8b42b root hd0,gpt3
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
查看 UUID
sudo blkid -c /dev/null -o list
答案2
Oldfred 和 ubfan1 的建议都值得注意。这是另一个选择:安装我的rEFInd 启动管理器。与 GRUB 不同,它每次启动时都会扫描引导加载程序和 Linux 内核,因此您不必担心配置文件中包含每个操作系统和每个内核。您可以在安装之前使用 CD-R 或 USB 闪存驱动器版本测试 rEFInd(两者的图像均可在下载页面上找到)。
请注意,rEFInd 将拾取您安装的两个 Ubuntu 内核,因此菜单可能有点混乱。您可以通过设置适当的分区标签来澄清这一点,或者,一旦您知道旧安装可以正确启动,删除新安装的分区。当然,现在您意识到您不应该删除您的EFI 系统分区 (ESP)/dev/sda1
,在您的情况下,它在 GParted 中被标识为已设置其“启动标志” 。