8 partitioning boot grub2 macosx grub-efi
我在 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
Run Code Online (Sandbox Code Playgroud)
我在 /etc/grub.d/40_custom 中添加了 menuentry 如下:
menuentry "OS X" {
insmod hfsplus
set root=(hd0,gpt2)
multiboot /boot
}
Run Code Online (Sandbox Code Playgroud)
并运行 update-grub,然后重新启动。
现在我可以看到“OS X”的条目,但是当我选择它时,它说:
error: disk 'hd0,gpt2' not found.
Press any key to continue...
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
小智 11
将以下代码添加到 /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
}
Run Code Online (Sandbox Code Playgroud)
然后运行
sudo grub-mkconfig -o /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)
在 iMac 17,1(Macbook 视网膜 2015 年末)、Ubuntu 16.04 LTS、Mac OS El Captain 上测试
小智 3
确保以下命令列出了 /boot/efi 分区:cat /etc/fstab
如果 /boot/efi 不存在,您将无法启动到 Mac OS X,如果它存在,您必须像这样在 grub 中添加菜单项:
gksudo gedit /etc/grub.d/40_custom
或sudo vi /etc/grub.d/40_custom
然后在文件末尾添加以下行:
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
}
Run Code Online (Sandbox Code Playgroud)保存并退出
sudo update-grub
我一步一步回答,这样任何找到这个答案的人都可以轻松地重现这些步骤。这是在 Ubuntu 16.04 上测试的,Ubuntu 以 EFI 模式安装。Mac OS X:El Capitan、Mac mini。
归档时间: |
|
查看次数: |
42092 次 |
最近记录: |