使用启动修复时出现“检测到 GPT。请创建 BIOS 启动分区”

使用启动修复时出现“检测到 GPT。请创建 BIOS 启动分区”

自从我将 Windows 更新到 8.1 后,我的 Grub 菜单就消失了。我使用 Live USB 运行 Ubuntu,使用了 Boot-Repair,但出现了问题。如果我单击“推荐修复”,则会收到此错误:

检测到 GPT。请创建 BIOS-Boot 分区(>1MB、未格式化的文件系统、bios_grub 标志)。这可以通过 Gparted 等工具执行。然后重试。或者,您可以在激活 [Separate /boot/efi partion:] 选项后重试。

所以我尝试使用 bios_grub 标志设置我的 sda9(我认为它是 Ubuntu 系统分区,因为它是 ext4),然后再次运行 Boot-Repair。但没有成功。

我不知道该怎么办。在更新 Windows 之前,我的 Grub 运行良好(使用 UEFI)。

我删除了 bios_grub 标志。然后我使用它fsck,它没有发现任何错误。所以我再次尝试使用 Boot-Repair,但它总是给我“检测到 GPT”错误。我的启动处于 UEFI 模式,安全启动处于“关闭”状态。

当我在关闭 SecureBoot 的情况下启动 PC 时,我可以进入 GRUB 菜单。但它是空的(唯一的语音是​​“系统设置”)。

我挂载了我的 Ubuntu 系统磁盘:

sudo mount /dev/sda9 /mnt

以及其他事项:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

我使用以下命令登录系统chroot

sudo chroot /mnt

我重新安装了 grub:

grub-install /dev/sda
update-grub2

但它仍然不起作用。

答案1

首先, GPartedbios_grub中的标志parted是一种识别BIOS 启动分区。当计算机以 BIOS 模式启动时,GRUB 2 使用此分区来保存其部分启动代码。它的大小通常约为 1MiB,但在某些情况下可能会更小。最重要的是,如果在bios_grubLinux 根 ( /) 分区上设置标志后 Boot Repair 重新运行了 GRUB 安装程序,则您可能已破坏该分区。因此,在您执行任何其他操作之前,我建议您:

  1. bios_grub从 Linux 根 ( ) 分区中删除该标志/
  2. 使用(或 GParted 或其他 GUI 工具中的等效功能)测试您的 Linux 根 ( /) 分区fsck。如果分区有错误,请修复它们或从备份中恢复系统。只有当您确定可以挂载分区并正常使用它时,您才可以继续。

其次,您之所以遇到此问题,是因为您在 BIOS/CSM/传统模式下启动了紧急磁盘,而不是在 EFI 模式下启动。您需要了解如何控制计算机的启动模式。您通常可以通过启动管理器来执行此操作,该管理器在启动过程早期(在 GRUB 出现之前)按 Esc 或功能键即可访问;但对于如何访问此启动管理器或它提供哪些选项没有标准化。因此,您可能需要进行实验才能弄清楚。

第三,如果你能弄清楚如何在 EFI 模式下启动你的 Live CD,Boot Repair 应该可以解决这个问题。或者,你应该能够使用我的 CD-R 或 USB 闪存驱动器版本rEFInd 启动管理器启动 Linux。一旦 Linux 启动并运行,您就应该能够使用efibootmgr将 GRUB 恢复为默认引导加载程序,但具体细节取决于现在的配置方式。简而言之,您必须使用选项-oefibootmgrGRUB 的条目设置为第一个。这个问题和答案从不同的角度来解决这个问题。除了恢复 GRUB,您还可以考虑将 rEFInd 安装到硬盘上。


编辑:尝试使用我的rEFInd 启动管理器:使用 USB 闪存驱动器或 CD-R 映像创建合适的介质并从中启动。这应该为您提供适用于 Windows 的选项和至少一个适用于 Linux 的选项。如果您可以同时启动 Windows 和 Linux,请在 Linux 中安装 rEFInd 的 Debian 软件包。这应该会将计算机切换为默认使用 rEFInd,并且您应该能够正常启动所有内容。

答案2

您可以按照如下方式处理此问题:

  1. 启动 Gparted。

  2. 识别启动分区。我的启动分区是系统磁盘上的前 16.00MiB。

  3. 删除分区(您不会想删除错误的分区并丢失其中的所有数据!如果您不知道自己在做什么,请停止!)。

  4. 创建一个新的分区(不要将其格式化为任何文件系统),应用设置。

  5. 使用管理标志选项将新分区标记为 bios_grub。

现在,再次尝试启动修复。

相关内容