我在外置硬盘上安装了 Ubuntu,并将其用作便携式安装,无论我走到哪里都可以随身携带。
今天我在朋友的 iMac 上启动它,在 Software Updater 要求我安装更新之后。所以我做了。
由于那时我已经完成了它,我关闭了计算机并拔下外部硬盘。之后我立即再次启动 iMac,以便它重新启动到 OSX。
令我彻底震惊、恐惧和困惑的是,我遇到了一个 GRUB 救援屏幕!
这怎么可能?Ubuntu 安装在外部硬盘上,而不是内部硬盘上!GRUB 到底是如何出现在 iMac 的内部硬盘上的?
更重要的是,我该如何解决这个问题?
(向下滚动查看实际修复)
所以事情比起初看起来还要复杂。
为了保持与 MS-Windows 的兼容性,Apple 使用了混合 UEFI 和 Legacy MBR 模式。显然,有一个 NVRAM 值告诉固件是尝试以 UEFI 模式 (OS-X) 还是传统 MBR 模式 (Windows) 启动。该值由您在“系统偏好设置 > 启动磁盘”中的选择控制。(不要问我为什么,问苹果)
现在为了从我的外置硬盘启动 Ubuntu,我首先从我刻录了 rEFInd 的 ISO 的 DVD 启动。Option(在启动过程中按住键时选择带有 DVD 图标的“EFI 启动” )。从该 DVD 启动后,我选择了我的外部硬盘驱动器从 rEFInd 内部启动。
这是事情开始变得非常奇怪的地方。在告诉 rEFInd 从外部硬盘启动后,紫色的 GRUB 屏幕从未出现(是的,我设置了延迟),此外,没有紫色的点启动动画。相反,它是滚动的白色文本启动。
据我所知,在启动之前更仔细地查看 rEFInd 是,Ubuntu 选项实际上是加载特定内核,而不仅仅是从磁盘启动。
这意味着因为 rEFInd 显然是 EFI,它本质上是作为 GRUB 的替代品,即使 Ubuntu 以 MBR 模式安装到外部 HDD,它最终还是以 UEFI 模式启动。
这个事实非常重要,你马上就会明白为什么。
所以我让软件更新程序运行一些更新。查看日志,似乎该
update-grub
命令是在安装过程中运行的。这是所有坏事发生的地方。现在我不知道到底发生了什么,但这是我最好的猜测:grub 更新程序感到困惑,因为 grub 是在 MBR 模式下安装的,但 Ubuntu 目前是在 UEFI 模式下启动的。由于混乱,以及引导加载程序安装到不同位置的事实,这取决于您在哪个模块中引导,grub 更新程序犯了一个大错误,并以 MBR 模式将 grub 安装到内部 HDD。现在进行实际修复!
Option在我的特殊情况下,如果我在启动期间按住密钥并选择“Macintosh HD” ,OS-X 分区仍然是可启动的。
启动 OS-X 后,您需要打开系统偏好设置,然后转到启动磁盘。选择 OS-X 卷,点击应用或其他,重新启动,然后BOOM!苹果标志显示!
现在,仅供参考,我认为虽然这解决了问题,但 GRUB 仍然驻留在扇区 0,但我认为它不会在那里造成任何伤害,而且如果你在 Boot camp 中安装 Windows 肯定不会,因为 Windows 的引导加载器会覆盖它然后