ubuntu 14.04.3 引导加载程序无法安装在指定位置

ubuntu 14.04.3 引导加载程序无法安装在指定位置

[Retina 15 英寸 Macbook Pro 2014、rEFInd、OS X 和 Ubuntu 14.04.3]

安装 Ubuntu 时,我从模板菜单中选择了“其他”选项。我的分区设置如下:

/dev/sda
  free space            0MB
  /dev/sda1    efi      209MB
  /dev/sda2    hfs+     299999MB
  /dev/sda3    hfs+     650MB
  free space            0MB
  /dev/sda4    ext4  /  183031MB
  free space            0MB
  /dev/sda5    swap     16384MB
  free space            2MB

当我单击 时Install Now,出现一个消息框,提示我需要为引导加载程序代码设置一个单独的分区,并且该分区应标记为Reserved BIOS boot area。因此,我将最后的可用空间(2MB)设置Reserved BIOS boot area为 /dev/sda6。

对于Device for boot loader installation选项,我指定 /dev/sda6 并继续Install Now,安装继续进行。当安装即将完成时,我收到一条错误消息,指出:

Executing 'grub-install /dev/sda6' failed.
This is a fatal error.
<OK>

然后,按照这篇文章的标题,我收到一个消息框,指出无法在指定位置安装引导加载程序,我有三个选择:

1)选择其他设备
2)继续安装,无需引导加载程序
3)取消安装

我尝试选择另一个分区(/dev/sda4)但出现相同的错误,我不想指定 /dev/sda1-/dev/sda3,因为它们是 hfs+ 分区,而且我不想破坏我的 OS X 安装。

我已经阅读了有关该主题的其他问题,但它们似乎并不适用于我的情况,给出的答案解释了 BIOS 和 EFI 以及 MBR 和 GPT 之间的区别,并且都没有得到发布者的认可。

我不明白为什么安装程序强迫我指定一个Reserved BIOS boot area分区,然后抱怨它无法使用它。

我对我应该如何改变我设置分区的方式非常欢迎任何建议。

答案1

关于“保留的 BIOS 启动区域”(世界上其他地方称之为BIOS 启动分区) 表示您的安装程序已在 BIOS/CSM/legacy 模式下启动。使用 EFI 模式安装可能会更好,尽管还有另一种方法可以解决此问题(见下文)。不过,首先,我强烈建议您谨慎行事。将 BIOS 模式引导加载程序安装到不应保存它的分区可能会导致该分区上的所有数据无法访问。如果您很幸运,您可能能够使用高级数据恢复工具恢复文件,但您会因为一时的急躁而浪费大量时间(您自己和他人的时间)。

在 EFI 模式安装中,引导加载程序作为普通文件存储在EFI 系统分区 (ESP),在您的例子中是/dev/sda1。Ubuntu 安装程序实际上不会询问在这样的系统上安装 GRUB 的位置;它足够聪明,可以识别 ESP 并在那里安装 GRUB。但是,如果您手动分区,则必须对 ESP 进行适当的标记(在旧版本中标记为“EFI 启动分区”,在新版本中标记为 ESP)。这应该会自动发生,但您不应该更改该标识。请注意,这仅在您以 EFI 模式启动 Ubuntu 安装程序时才会发生,而您显然没有这样做。(如果以 BIOS 模式启动,安装程序会设置 BIOS 模式启动加载程序,如果以 EFI 模式启动,安装程序会设置 EFI 模式启动加载程序。)

最后,关于这个问题的另一种解决方法:您说您正在使用我的 rEFInd 启动管理器。rEFInd 不需要 GRUB——BIOS 模式或 EFI 模式。如果您已经在 OS X 中安装了 rEFInd,并且您的 Ubuntu 安装已完成除了对于 GRUB 安装,您可以启动 OS X 并安装 ext4fs 的 EFI 文件系统驱动程序。请参阅rEFInd 驱动程序文档rEFInd 页面介绍如何启动 Linux了解更多详细信息。rEFIndmountesp附带的脚本应安装您的 ESP,使您能够将 ext4fs 驱动程序(也随 rEFInd 一起提供)复制到正确的位置。或者,您可以重新运行该refind-install脚本。这有点过分,但脚本应该会检测到 Ubuntu 现已安装并自动设置 ext4fs 驱动程序。第三个选项是使用 CD-R 或 USB 闪存驱动器上的 rEFInd 启动到 Ubuntu,然后通过 Debian 包或 PPA 重新安装 rEFInd。无论如何,一旦安装了 ext4fs 驱动程序,rEFInd 应该会检测到您的 Linux 内核并使您能够启动。

相关内容