将 bios_grub 标志设置为分区

将 bios_grub 标志设置为分区

我是 Ubuntu 安装新手。我按照以下方法安装了 Windows 8 和 Ubuntu 的双启动关联,但今天不知何故,grub 命令提示符总是在加载。我发现 grub 中的 hd0 存在问题。我知道 grub 存在这个问题,所以我通过实时 USB 运行了 Boot-Repair,结果出现了以下错误:

GPT detected. 
Please create a BIOS-Boot partition(>1MB, unformatted filesystem, bio_grub flag). 
This can be performed via tools such as GParted. Then try again.

使用 GParted,我创建了一个具有未格式化文件系统的新分区,但没有管理标志的选项,因此我无法添加“bios_grub”。下图是 GParted 视图,/sdb9是一个 Linux 分区。

分区

答案1

您的问题出在兼容性支持模块 (CSM) 上,该模块已在您的计算机上启用。许多 Linux 安装说明都建议启用 CSM,但这不是个好建议。(您引用的页面评论说传统模式不会带来任何好处,但并没有真正强调这一点。)如果您在固件设置实用程序中禁用 CSM(又称“传统启动支持”或类似内容),您应该能够让 Ubuntu 安装程序以 EFI 模式启动,然后启动修复才能正常工作。(在某些情况下,没有“CSM”或“传统启动”选项,但有一个“启动模式”选项,其设置包括“仅 UEFI”、“UEFI 或传统”或“仅传统”。将其设置为“仅 UEFI”应该会禁用 CSM。)

如果你找不到合适的选项,我建议你尝试使用我的rEFInd 启动管理器强制 EFI 模式启动。这是一个仅支持 EFI 的启动管理器;如果它启动了,您可以确定您已在 EFI 模式下启动,在基于 UEFI 的 PC 上,如果它显示 Ubuntu 启动选项,则使用它将在 EFI 模式下启动。我链接到的页面包括 rEFInd 的 USB 闪存驱动器和 CD-R 版本的下载链接;使用其中一个准备可启动介质并启动它。如果这有效并使您能够启动到 Ubuntu,您可以运行 Boot Repair 或使用其 PPA 或 Debian 包安装 rEFInd,这将绕过 GRUB 并使用 rEFInd 作为默认启动管理器。但需要注意的是,可下载的 USB 闪存驱动器和 CD-R 版本的 rEFInd 不支持安全启动。如果启用此功能,您必须禁用安全启动或者克服额外的困难让 rEFInd 与安全启动一起工作。前者比后者更容易。

答案2

假设 grub 安装成功,但您正在获取 windows 加载程序。请执行以下操作:

1)使 grub 成为默认引导加载程序:

启动 Live CD 并尝试 ubuntu。安装 efibootmgr 和 gparted sudo apt-get install efibootmgr gparted

使用 gparted 关闭 EFI 分区上的 ESP 启动标志。

找到文件 /EFI/ubuntu/grubx64.efi 或 /EFI/ubuntu/shimx64.efi

复制它并将其重命名为 bootx64.efi。然后将文件移动到 /EFI/boot/bootx64.efi。替换那里的文件。

使用 gparted 重置分区上的 ESP 启动标志。

2)windows 喜欢告诉 efi 将 0000 放在启动顺序的第一位。要阻止 windows 将自己放在启动顺序的第一位:

使用 efibootmgr 删除 efi 启动内存中的条目。

sudo efibootmgr -b 0000 -B

重复所有条目(USB、CD 和网络启动除外),然后重新启动。确保 ubuntu 是你启动的第一个系统,因此它被放置在插槽 0000 中

然后启动其他系统。返回 ubuntu 和 efibootmgr 以验证 ubuntu 是否在插槽 0000 中。

答案3

您已为请求的分区分配了 100 MB 的空间boot-repair,但仍未分配。我的分区如下:

gparted 启动 efi.png

第一步是选择未分配的空间,然后创建分区类型为fat32

第二步是Partition从顶部菜单中选择,然后Manage flags从下拉菜单中选择:

gparted 管理分区标志.png

相关内容