我遇到了一个其他人似乎也遇到过的问题,但按照他们的建议没有成功。更新到 Mavericks 添加了另一个分区,导致 refit/grub 不同步,并导致我进入 grub 恢复 shell:
- 输入“set”,返回:
根=(hd0,gpt5)
前缀 = (hd0,gpt5)/boot/grub
- 修复方法是(注意分区号的增加):
设置根=(hd0,gpt6)
设置前缀=(hd0,gpt6)/boot/grub
正常安装
普通的
- 我尝试更新并重新安装 grub,但无济于事。我不太明白 grub 和 refit 之间的关系。refit 是否有某种需要更新的 grub 快照?
谢谢
担
答案1
rEFIt 只会启动 GRUB;这两个程序之间没有真正的“同步”。您可能已经安装了 BIOS 模式的 GRUB,并且混合型MBR告诉 Mac 的固件激活其 BIOS(又称 CSM 或旧版)支持。这是一种糟糕的做法,因为它很危险,而且可能会产生类似您遇到的问题。我建议您尝试使用另一个引导加载程序以 EFI 模式启动 Linux。如果您使用的是 3.3.0 或更高版本的内核,您可以直接升级到重新索引(我维护的 rEFIt 的一个分支;rEFIt 已被废弃近四年了):
- 在 OS X 中安装 rEFInd。(或者,您可以通过 USB 闪存驱动器或 CD-R 上的 rEFInd 进行测试,尽管有些 Mac 在启动这些映像时会遇到问题。这些映像包含所有必要的文件系统驱动程序,因此您无需安装它们进行此类测试。)
- 为承载内核的文件系统(通常是 ext4fs)安装 EFI 文件系统驱动程序。
- 重新启动时,选择一个 Linux 内核,按两次 Insert 或 F2,然后添加
ro root=/dev/sda6
。(/dev/sda6
根据您发布的信息,它可能是 ;但如果是其他内容,请适当更改。)按 Enter 后,Linux 应该会启动。 - 在 Linux 中,运行
mkrlconf.sh
rEFInd 附带的脚本。确保root
使用 或 来运行它sudo
。此步骤将创建一个名为 的文件/boot/refind_linux.conf
,其中包含内核选项,从而无需像上一步那样编辑它们。
此后,您应该能够直接从 rEFInd 启动 Linux,而无需使用 GRUB,也无需通过 F2/Insert 编辑启动选项。您甚至可能希望用标准保护性 MBR 替换混合 MBR。(但是,如果您使用 Windows 进行三重启动,请不要这样做。)
您可以查看我的 Mac 上 Ubuntu 的 EFI 安装页面有关此主题的更多信息;但该页面是为进行全新安装的人编写的。因此,它涵盖的内容比您需要做的要多得多。