在 Ubuntu 之前安装了 Windows,都是 BIOS 模式,但 GRUB 安装失败

在 Ubuntu 之前安装了 Windows,都是 BIOS 模式,但 GRUB 安装失败

首先我要说的是,我已经尝试让它工作了两天,并且我读了很多资料。答案可能非常明显,但我需要有人指出来。

我尝试双启动 Windows 和 Ubuntu(是的,我按照指南操作,但我不记得是哪个了),但 Grub 安装失败了。所以我放弃了,继续修改磁盘配置,但毫无进展。

我尝试在 UEFI 模式下从 CD 进行启动修复,但没有成功。请注意,我可以在 EFI 和 UEFI 模式下正常启动 Windows。

以下是我采取的步骤:

  1. 在 BIOS 模式下启动 Ubuntu GNOME 安装程序(禁用快速启动并启用 CSM。)
  2. 在 GParted 中格式化整个磁盘。
  3. 配置如下:https://i.stack.imgur.com/d0roG.jpg

第一个 100 MB 分区我标记为“boot”和“esp”。10 MB 分区是 bios_grub。90 MB 空间是为了以防将来需要。

8GB 卷是 SWAP。第一个 250GB 卷是安装 Linux 的地方。它是 EXT4。第二个也是 EXT4,但那里什么都没有安装。其余的是各种 Windows 分区。

  1. 将我的磁盘划分为适合 Ubuntu 和 Windows 的各种分区。

  2. 以 BIOS 模式启动 Windows 磁盘并安装。

  3. 启动 Ubuntu 安装程序并安装。

  4. Grub 安装失败。

这是我最近一次尝试修复启动:http://paste.ubuntu.com/11314742/

如果我没记错的话,这次我尝试手动安装到 SDA1,并将整体引导加载程序安装到 SDA。

我该怎么做?我应该删除所有 Ubuntu 分区并重试吗?

谢谢!

答案1

首先,您的 Windows 安装至少处于 EFI 模式(又称 UEFI 模式;UEFI 只是 EFI 2.x),而不是 BIOS 模式,正如您的问题标题所声称的那样。也就是说,有证据表明存在 BIOS 模式的 Linux 引导加载程序,因此您可能最初在 BIOS 模式下安装了 Linux,或者至少在 BIOS 模式下运行过一次 Boot Repair;但也有证据表明存在 EFI 模式的 Linux 引导加载程序。

第二,你是否禁用了视窗“快速启动”(又称“混合启动”)功能?如果没有,请按照说明进行操作这里。请注意,此功能完全独立来自固件的“快速启动”(或类似名称)功能。Windows 功能可能会导致 Windows 和 Ubuntu 之间共享的分区损坏,包括关键的EFI 系统分区 (ESP),其中包含 EFI 模式引导加载程序。

第三,至少同样重要的是,您的分区表存在问题:

  • 您的/dev/sda1分区在分区表中被标识为 ESP,但它包含 ext4 文件系统。这很不寻常,几乎是无效的。ESP 通常必须包含 FAT 文件系统。看起来您在设置分区时犯了错误,并将 ESP 重新分配为您的 Linux/boot分区。
  • 您的/dev/sda7是 FAT 并且保存通常位于 ESP 上的文件,但被标记为普通 FAT/NTFS 卷。

适当的修复方法是将其重新标记/dev/sda1为 Linux 分区和/dev/sda7ESP。您可以使用 GParted 执行此操作,或者parted从 中删除“启动标志”/dev/sda1并将“启动标志”添加到/dev/sda7;或者gdisk通过将 的类型代码更改为/dev/sda18300 并将 更改为/dev/sda7EF00 来执行此操作。此修复可能不足以将您的系统恢复到可启动状态,但它可能是必要的先决条件,并且对于安全而言肯定是必要的。

至于解决你的问题,如果您既禁用了快速启动又修复了分区类型代码问题,请尝试重新运行引导修复。请确保以 EFI 模式启动它。当您运行它以生成您显示的输出时,它就是以这种方式启动的。通常,您必须选择在描述中包含“UEFI”的引导选项。

如果启动修复不起作用,请尝试使用我的 USB 闪存驱动器或 CD-R 版本的rEFInd 启动管理器。它应该使您能够启动 Linux 安装,但有一个警告:因为您有一个单独的/boot分区,所以您可能需要突出显示您的内核,按 F2 或 Insert 两次,然后添加ro root=/dev/sda4以使其正确启动。 (另一方面,这可能不是必需的;看起来您既有一个内核,/dev/sda4又有一个单独的/boot分区。)如果 rEFInd 可以启动您的系统,您可以尝试手动安装 GRUB(使用grub-install)或安装 rEFInd PPA 或 Debian 包。

另一种选择:您可以尝试重新安装,而不是尝试修复安装。您仍然需要在 Windows 中禁用快速启动,但一旦您这样做了,删除/dev/sda1/dev/sda5修复上的类型代码/dev/sda7,创建新分区(一个用于/和一个用于交换应该足够了,但您可以选择创建更多),然后安装。确保在 EFI 模式下启动安装程序;不要尝试 BIOS 模式安装。(进入 shell 并查找目录/sys/firmware/efi。如果存在,则表示您已在 EFI 模式下启动;如果不存在,则表示您已在 BIOS 模式下启动。)

相关内容