为 OS X 添加 grub 菜单

为 OS X 添加 grub 菜单

我在 MacBook Pro 上安装了 Ubuntu 16.04 Desktop,现在无法启动 OS X。我的磁盘分区表是:

Device         Start       End   Sectors   Size Type
/dev/sda1         40    409639    409600   200M EFI System
/dev/sda2     409640 392401823 391992184 186.9G Apple HFS/HFS+
/dev/sda3  392402944 490233855  97830912  46.7G Linux filesystem

我在 /etc/grub.d/40_custom 中添加了 menuentry,如下所示:

menuentry "OS X" {
        insmod hfsplus
        set root=(hd0,gpt2)
        multiboot /boot
}

并运行 update-grub,然后重新启动。

现在我可以看到“OS X”的条目,但是当我选择它时,它显示:

error: disk 'hd0,gpt2' not found.
Press any key to continue...

我该如何修复它?

答案1

将以下代码添加到 /etc/grub.d/40_custom 文件对我来说效果很好:

menuentry "OS X" {
    insmod hfsplus
    search --set=root --file /System/Library/CoreServices/boot.efi
    chainloader /System/Library/CoreServices/boot.efi
}

然后运行

sudo grub-mkconfig -o /boot/grub/grub.cfg

在 iMac 17,1 (Macbook retina 2015 年底)、Ubuntu 16.04 LTS、Mac OS El Captain 上进行了测试

答案2

确保以下命令列出了 /boot/efi 分区:cat /etc/fstab 如果 /boot/efi 不存在,您将无法启动 Mac OS X,如果存在,您必须在 grub 中添加菜单项,如下所示:

  1. 以 root 身份使用您喜欢的文本编辑器打开文件 /etc/grub.d/40_custom。使用终端的示例:gksudo gedit /etc/grub.d/40_customsudo vi /etc/grub.d/40_custom
  2. 然后在文件末尾添加以下几行:

    menuentry "MacOSX" {
      # Search the root device for Mac OS X's loader.
      search --file --no-floppy --set=root /usr/standalone/i386/boot.efi
      # chainload the loader, pass parameters like -v directly
      chainloader (${root})/usr/standalone/i386/boot.efi #-v
    }
    
  3. 保存并退出

  4. 像这样更新 grub 配置:sudo update-grub

我一步一步地回答了这个问题,所以任何找到这个答案的人都可以轻松地重现这些步骤。这是在 Ubuntu 16.04 上测试的,Ubuntu 安装在 EFI 模式下。Mac OS X:El Capitan、Mac mini。

答案3

我有解决这个问题的通用方法。最近,我在装有 Sierra Mac OS X 的 iMac 上安装了 Ubuntu 16.04LTS Gnome。原因是操作系统变得缓慢,我想要更快的操作系统(使用 Linux 17 年后,解决方案显而易见)。我遵循了一个不错的教程iMac 上的 Ubuntu

一切都很顺利,直到安装 Ubuntu 后重新启动 iMac。唯一的启动系统是 Linux,而且我看不到 GRUB 菜单……希望它正在启动)Linux 运行良好,只是缺少一些无线和图形驱动程序(改用 Xorg),但在通过以太网电缆将其插入调制解调器后,我进行了所有更新并安装了驱动程序。Wifi 驱动程序安装链接: Ubuntu Mac wifi 驱动程序

可通过系统设置 GUI 选择图形驱动程序

因此,回到双启动 Linux 和 Mac OS X。我尝试了 GRUB,但所有方法都不起作用!!!按“Option 键”不再起作用(GRUB 已覆盖 iMacs MBR)。

我几乎要在周末之前放弃,但后来我尝试了 rEFInd:

sudo apt-add-repository ppa:rodsmith/refind
sudo apt-get update
sudo apt-get install refind

是我所需要的一切,使我的双启动完美运行在 Linux 和 Mac OS X 上。现在我可以在启动时进入 rEFInd 启动菜单,并轻松地在启动分区之间进行选择。

唯一剩下的问题仍然是 GRUB 启动菜单,我看不到任何选项,我猜是因为一些错误的图形菜单。我尝试了控制台模式,但它不起作用,启动时出现一些有关图形模式的错误消息。我会尽快在这里报告我解决了它!

备注01:

然后我做了一些对所有 Ubuntu 安装有用的调整: 如何加速 Ubuntu

尤其预加载对我来说就像魔术一样:Gimp 通常在启动时很慢,现在可以在半秒内加载!

答案4

赶紧跑

os-prober

从 Linux 中重新运行

grub-mkconfig -o /boot/grub/grub.cfg

最后重新安装 grub

grub-install /dev/sda

相关内容