使用引导修复时“检测到 GPT。请创建一个 BIOS 引导分区”

Kur*_*aki 12 grub2 uefi boot-repair

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

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

所以我尝试使用 bios_grub 标志设置我的 sda9(我认为它是 Ubuntu 系统分区,因为它是 ext4),然后再次运行引导修复。它没有用。

我不知道该怎么办。在我更新 Windows 之前,我的 Grub 工作正常(使用 UEFI)。

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

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

我挂载了我的 Ubuntu 系统盘:

sudo mount /dev/sda9 /mnt
Run Code Online (Sandbox Code Playgroud)

和其他事情:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
Run Code Online (Sandbox Code Playgroud)

我登录系统chroot

sudo chroot /mnt
Run Code Online (Sandbox Code Playgroud)

我重新安装了 grub:

grub-install /dev/sda
update-grub2
Run Code Online (Sandbox Code Playgroud)

但它仍然不起作用。

Rod*_*ith 11

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

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

其次,您遇到这个问题是因为您在 BIOS/CSM/legacy 模式下而不是在 EFI 模式下启动了紧急光盘。您需要学习如何控制计算机的启动模式。您通常可以通过在引导过程的早期(在 GRUB 出现之前)通过按 Esc 或功能键访问的引导管理器来执行此操作;但是没有关于如何访问此启动管理器或其提供的选项的标准化。因此,您可能需要通过实验来解决这个问题。

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


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


小智 6

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

  1. 启动 Gparted。

  2. 识别启动分区。我的是系统盘上的第一个16.00MiB。

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

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

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

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