错误:分区表需要为引导加载程序代码(EFI问题)单独创建一个分区。

问题

我正在尝试在我的13英寸MacBook Pro(型号7,1,2010年中期)上安装Ubuntu 12.04(64位,Mac替代版)。这台MacBook Pro运行的是OSX 10.8.3,我想要实现双启动(即可以启动Ubuntu或OSX)。当从Live CD启动并选择“尝试Ubuntu”时,我创建了所需的分区表,并准备好进行安装。在安装过程中,我选择了新创建的“ext4”分区,在安装程序中将其更改为“用作ext4日志文件系统”,然后点击继续。然而,接下来弹出了以下窗口:

The partition table format in use on your disks normally requires you to create a separate partition for boot loader code. This partition should be marked for use as a "Reserved BIOS boot area" and should be at least 1 MB in size. Note that this is not the same as a partition booted on /boot. If you do not go back to the partitioning menu and correct this error, boot loader installation may fail later, although it may still be possible to install the boot loader to a partition.

以下是我在GParted中的分区表快照。

GParted partition table setup

以下是安装窗口的快照。

Installation window


假设

@Seth和我都认为这是Ubuntu无法检测到我的计算机使用EFI而不是BIOS的问题。我认为,如果我们能让Ubuntu识别出我正在运行一个使用EFI的计算机,安装过程将会更顺利。然而,由于我正在使用MacBook Pro,那些在Windows上遇到类似问题的用户对我(或其他未来遇到问题的人)来说可能没有相同的解决方案可供使用。


尝试和调查的事项

以下是我尝试过并进行了调查的事项。随着问题的进展,我将不断更新。

我已经尝试研究这个问题,并且也看到了this thread。然而,在与聊天室中的人们讨论了这个问题之后,我们相当确定这是一个硬件问题。
此外,我还尝试了this wiki,但这个维基似乎更适合Windows,而且我相当确定这是一个与硬件有关的问题。更新:我决定尝试我链接的那个部分,结果并不理想。按照指示操作时,由于"GRUB位置"选项卡被禁用,我无法点击: grub location disabled 另一个未尝试的选择是我们考虑的绕过错误,然后运行上面提到的boot-repair程序。不过,有人担心这样做可能会带来风险,所以我很乐意听取其他意见。
我尝试了@rod-smith提供的解决方案。然而,正如他回答中的评论所显示的那样,我遇到了一些问题。在尝试第10步下的替代步骤时,启动只给我带来了一个无法消失的空白屏幕(我在那个屏幕上花费的时间最长为大约40分钟,直到我重新启动)。继续按照指示操作,在第18步出现之前(它从未出现过),我遇到了以下错误:
警告:操作系统将无法使用控制台 错误:找不到适合的视频模式。(参见图片) 在保持分区/所有设置与我在第四项解释中设定的情况下,我尝试了第二项中的链接,因为GRUB已经安装好了。我可以进入菜单并完成所有必要的操作。然而,在重新启动后,我还是遇到了同样无限空白屏幕的问题。
根据@TheMysteriousMan的帖子,我还尝试选择/dev/sda1来安装引导程序,但是我收到了相同的错误。
我还尝试了Ubuntu 13.04(64位,Mac备用版本),但是同样收到了错误。
我注意到的一件事是,在双击分区(在本帖的第3张照片中看到的安装过程中)并打开"编辑分区"窗口时,在"用途:"下拉菜单(其中包含"Ext4日志文件系统"等选项),我有一个名为"Reserved BIOS boot area"的选项。我想知道这个错误是否让我对这个选项做些什么。如果它要求我使用这个选项,我应该创建一个新的分区并在上面设置这个选项吗?这个分区应该有多大?还是我应该将其放在现有的分区上?

简介与问题

这里的主要问题是:我该如何解决这个错误信息?是否有一些配置我还没有完成?或者这个错误信息可以安全地绕过吗?

3个回答

在按照下面的指示之前,请先阅读整个答案。
为了解决这个问题,您需要创建一个额外的分区。
在Ubuntu中安装rEFItrEFInd1。 启动Mac OS X。 打开磁盘工具应用程序。 确保已经调整了“Macintosh HD”分区的大小,以便为新分区腾出空间(我选择了大约50 GiB)。 使用Ubuntu Live CD重新启动。 选择“尝试Ubuntu”。 启动名为GParted的应用程序。 创建一个名为“bootloader”的新分区,文件系统为ReiserFS。我将此分区设置为500 MiB。我不确定文件系统或大小是否重要。根据Wikipedia BIOS Boot partition page,此分区可以只有1 MiB。 创建一个大约1 GiB的新的linux-swap分区。我将其命名为“swap”。 使用剩余的未分配空间创建一个名为“primary”的ext4分区。
在按照上述说明操作后,GParted应该和下图类似。请注意,这张图片是我在安装后拍摄的。我的linux-swap和ext4分区的标签消失了,而键/感叹号图标是Ubuntu安装后自动添加的。此外,对于ResiserFS分区,不需要设置bios_grub标志,这也是在安装过程中自动添加的。
现在,分区已经设置好了,请返回桌面,点击“安装Ubuntu 12.04”(如果不在桌面上,则应出现在左侧菜单栏中),然后按照下面的步骤进行操作。
  1. 浏览选项(根据个人喜好进行个性化设置),直到进入“安装类型”屏幕,该屏幕会询问您如何安装Ubuntu。
  2. 在“安装类型”屏幕上,选择“其他选项”,然后继续(按下"立即安装")。
  3. 现在,您将进入一个窗口,列出所有的分区。找到"bootloader"分区(如果标签不显示,请通过设备、类型或大小列来识别),然后双击它。
  4. 将弹出一个名为"编辑分区"的窗口。选择“用作:”旁边的选项字段,并点击"保留BIOS引导区"(如下图所示)。按下"确定"。 选择"保留BIOS引导区"
  5. 找到刚创建的ext4分区,并打开"编辑分区"窗口。
  6. 将"用作:"的值设置为"Ext4日志文件系统",勾选格式化选项。确保将挂载字段也设置为/。按下"确定"。
  7. 继续进行过程,根据需要进行个性化设置结果。

从这里开始,一切应该正常工作。确保已安装 rEFIt 或 rEFInd,以便稍后可以启动 Ubuntu1

1. 原来如果在启动时遇到困难,不必使用像 rEFIt 和它的前身那样的程序,只需按住 alt/option 键即可引导进入分区/磁盘/其他。


上次我检查(大约是两三个版本之前),Ubuntu的“Mac备用”版本基本上只是普通的Ubuntu,但剥离了其EFI引导选项。这可能看起来很奇怪,因为Mac使用EFI,但问题在于Mac的EFI非常“奇怪”,标准的Ubuntu安装程序在处理Mac的EFI时出现问题(虽然我不记得具体问题的性质)。由于Mac提供了BIOS兼容层,以这种方式启动是有道理的;当GRUB在使用BIOS引导模式的GPT磁盘上安装时,需要使用BIOS引导分区(Ubuntu对话框中称为“保留的BIOS引导区域”)。因此,会出现要求输入该区域的对话框。
一种选择是默认同意创建BIOS引导分区的请求。如果一切顺利,Ubuntu将以BIOS模式引导。之后,您可以通过安装EFI引导加载器来更改Linux引导模式。请参考我的《在Mac上使用EFI引导Ubuntu》示例,特别是其中的《修复安装问题》部分。
另一种选择是尝试使用标准的Ubuntu安装程序,而不是Mac版本。您可能需要一些帮助来启动它;rEFInd可能会有所帮助,但我不能保证。一旦安装程序启动,您应该确保它以EFI模式运行,方法是查找名为/sys/firmware/efi的目录。如果存在该目录,则表示已以EFI模式引导;如果不存在该目录,则可能是以BIOS模式引导,您应该再试一次。

谢谢!我在按照“安装Ubuntu”部分时遇到了一些问题。我已经安装了gdisk,但是命令无法执行。当我运行sudo gdisk /dev/disk0s3时,出现“错误为16”。所以,我尝试在磁盘工具中手动删除它,并通过gdisk(使用n)创建新的分区,但是然后出现“错误为2”。我找不到任何文档,但由于您是开发者,我希望您能解决这个问题。 - jeremy
你正在使用gdisk命令,并且将一个分区(/dev/disk0s3)作为选项进行指定,但是你需要指定整个磁盘(/dev/disk0)。 - Rod Smith
我搞砸了。我把“+128M”放在了第一个扇区,而不是最后一个。它正在提示我输入最后一个扇区。我该怎么办?=/(如果你想进入“General Room”聊天室,那就太好了:D) - jeremy
按下Ctrl+C来中断程序并重试。 - Rod Smith
我对"修复安装"的第10步中的步骤1毫无概念(从"Copy an EFI driver for the filesystem you used on /boot (or your root filesystem, if you didn't split off /boot)..."开始)。说实话,我甚至不知道该搜索什么。你有更简单的说明吗?:) 到目前为止,感谢你的帮助。 - jeremy
当您提取rEFInd的.zip文件时,EFI驱动程序存储在refind-{version}/refind/drivers_x64子目录中,或者如果您从Debian软件包文件安装rEFInd,则存储在/usr/share的该子目录下。有关更多信息,请参阅rEFInd文档 - Rod Smith
好的。在第10步的第4步骤中,我不确定是需要添加还是替换,所以我尝试了两种方法。它们都显示了一个黑屏,停留了长达十分钟(在这个时候我只能重新启动)。所以我继续按照常规指示进行操作,但是在第18步骤没有正常工作,而是出现了以下错误:警告:操作系统将无法使用控制台/错误:找不到适合的视频模式。 我找到了这个链接,但是不确定是否适用,而且看起来非常令人困惑。 - jeremy
在第10步之后的“更新”框中的第4步清楚地说明了“添加”。它可能由于各种原因而无法正常工作,包括错误和用户操作失误;要确定原因需要更多的交流。至于您按照原始步骤一直进行到第18步时失败的问题,不幸的是这表明内核(也许还有X)在以EFI模式启动时无法使用计算机的视频硬件。恐怕我不知道如何轻松解决这个问题。 - Rod Smith
我知道它说的是“添加”,但不确定是应该将更改添加到ro root,还是添加整个内容。非常感谢你迄今为止的帮助。希望这个问题能够得到悬赏。 - jeremy

你尝试过选择/dev/sda1作为安装引导程序的位置吗?在自定义安装菜单的底部,有一个标记的地方:
Device for bootloader installation

选择下拉菜单中的/dev/sda1。

这就是我之前在聊天室中所说的意思。只需选择您主硬盘上的EFI分区作为引导程序位置即可。根据维基百科的说法,这可能会影响后续固件更新,但我的Mac已经够旧了,我并不太在意(不太可能有任何有用的更新)。 - Chan-Ho Suh
@Chan-HoSuh 和 OP:很遗憾,这个方法没有起作用。还是谢谢你们的帮助。 - jeremy