无法让Ubuntu从Mac中的EFI启动

我想要一个旧的ca. 2006 macbook( 这里的技术规范)启动Ubuntu 14.04.2 LTS。 我现在正处于第二天,已经多次擦过硬盘驱动器,现在从磁盘上重新安装了8次。 我仍然是Linux世界的新手。

我一直在按照这里的说明进行操作,经过多次努力,我一直在运行grub-installhtfs-bless 。 这应该是启动我的mac上的启动过程在启动时识别Ubuntu(这样我就不必手动从GRUB启动了,这就是我现在要做的)。

我运行以下命令(以root身份)

 grub-install --target x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi --bootloader-id="$(lsb_release -ds)" 

它返回以下内容:

 Installing for x86_64-efi platform. Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables. Try: 'modprobe efivars' as root. Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables. Try: 'modprobe efivars' as root. Installation finished. No error reported. 

因此它报告致命错误(两次),但随后完成安装没有错误。 不知道。

它建议我从root尝试modprobe efivars ,我当然这样做。 它什么都不返回(它不应该返回),但是再次运行会产生完全相同的错误。

我继续跑

 hfs-bless "/boot/efi/EFI/$(lsb_release -ds)/System/Library/CoreServices/boot.efi" 

完成没有评论。 它完成的事实表明grub-install在我的发行版文件夹下创建了正确的文件系统。 所以这是一个好兆头。

我的说明中的下一步告诉我重新启动,以确保我直接启动到Ubuntu。 这不会发生。 它还说我应该看到Ubuntu出现在mac bootloader屏幕下,而我没有。

从GRUB手动重新启动后,我重新进入并尝试继续执行说明,然后我就碰壁了。 我打字

 efibootmgr 

我遇到了同样的错误

 Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables. Try 'modprobe efivars' as root. 

所以我以root身份尝试modprobe efivars ,当我再次运行时,我再次遇到同样的错误。

一些搜索表明问题是我在BIOS中启动而不是在EFI中启动。 显而易见的解决方案是在EFI中启动,但我不知道该怎么做。 我的机器上没有BIOS分区; 只有一个EFIBoot分区。 我的机器上不再有Mac OSX系统; 只有Ubuntu 14.04.2 LTS。

有时候我可以让Ubuntu启动,有时我必须手动启动它。 我无法在Mac引导程序中显示Ubuntu磁盘映像,我无法访问EFI变量。

如果有一些文件我可以从命令行手动编辑,这将使我在EFI中启动,这可以帮助我解决这个问题。

任何有关这方面的帮助将不胜感激。

我不是百分之百正面,但是一台老旧的Mac可能有32位EFI,即使它有一个64位CPU。 (第一批基于Intel的Mac拥有32位CPU和32位EFI。当Apple更新到64位CPU时,EFI在EFI更新到64位之前已经落后了一代左右。)对于本机EFI模式启动,在EFI模式下安装最容易使用与EFI位深匹配的操作系统 – 换句话说,32位EFI上的32位操作系统或64位上的64位操作系统位EFI。 不幸的是,Ubuntu在其32位版本中不提供32位EFI启动function,因此使用Ubuntu执行此操作需要跳过一些重要的环节以将32位EFI启动加载程序添加到可启动映像。 它可以完成(我已经完成了),但我没有参考精确的程序。 (我开始写一次这样的文档,但是覆盖所有可能性certificate是一个真正的挑战,所以我把它放在一边,永远不会回到它。)

GRUB的EFI版本确实能够交叉引导不匹配架构的内核 – 即具有32位EFI的系统上的64位内核,反之亦然(假设您的CPU是当然是64位模型)。 使用此方法需要在BIOS / CSM / legacy模式下安装,然后在安装完成后安装32位GRUB; 或者攻击64位安装程序以包含32位GRUB。 我不知道有任何网站介绍如何为Mac做这个,但这个网站涵盖了具有64位CPU和32位EFI的华硕平板电脑的过程。 (当我输入时,该网站已关闭;我希望这是暂时的。)

所有这一切,特别是如果这是一台64位计算机,使用EFI模式进行单启动Ubuntu是很难的方法。 将计算机视为具有传统BIOS的计算机将更容易。 创建MBR分区并以BIOS模式引导安装程序。 您可以根据需要安装32位或64位Ubuntu,而不会对安装过程产生重大影响。 当Mac的固件看到MBR分区表时,它将激活其CSM,当它找不到任何可引导的EFI引导加载程序时,它将在MBR中启动GRUB的BIOS版本。 这一切都应该顺利进行,就好像计算机采用基于BIOS的模型一样。 主要缺陷是控制安装程序的启动模式(BIOS与EFI)并使用MBR(如果使用GPT,Mac的固件将不启用BIOS模式启动)。

主要缺点是更新固件会更加困难,因为固件更新过程需要EFI模式启动。 但是,在如此旧的计算机上,您更新固件的可能性有多大? 此外,如果您以后决定使用OS X进行双重启动,则必须从MBR转换为GPT并以某种方式重新安装Linux引导加载程序。