我按照以下指南在带有 Mac OS X Yosemite 的 MacBookPro11,5 (Retina) 上安装了 Ubuntu 14.04.2 LTS:https://help.ubuntu.com/community/MacBookPro11-1/Saucy
问题是我已经通过 Boot Camp 安装了 Windows 8.1 Pro,因此 Mac OS 上的磁盘实用程序无法用于重新分区 SSD。我resizeStack
在终端中使用它来缩小 OS X 分区(指南在这里)。现在SSD的分区如下:
/dev/sda1
:EFI 分区/dev/sda2
:OS X Yosemite/dev/sda3
:OS X 恢复高清/dev/sda4
:Windows 8 新兵训练营/dev/sda5
:Ubuntu 磁盘安装到/
/dev/sda6
:乌本图Swap
选择将 Ubuntu 引导加载程序安装到/dev/sda1
,但安装程序通知 中也存在 Windows 引导加载程序sda1
。安装后,Ubuntu 和 Mac OS 成功从 GRUB2 启动,但 Windows 无法从 GRUB2 或原生 Apple 启动管理器(启动时按下)启动option
。我使用 Parallels Desktop 将 Boot Camp 分区加载为虚拟机并且 Windows 可以运行。
解决方案 #1
我安装了引导修复在 Ubuntu 上使用建议修复,没有运气;修复后,Grub2 菜单中添加了更多条目。GRUB 工作正常,Mac OS 可以启动。以下是创建的启动信息页面:http://paste.ubuntu.com/11897269/
解决方案 #2
我插入了 Windows 安装闪存驱动器并尝试自动启动修复,但没有奏效。然后我尝试通过命令提示符修复主引导记录:
bootrec /fixmbr
修复后,Mac OS 被设置为第一个启动系统,因此启动计算机时没有出现 Grub 菜单。我使用efibootmgr
Ubuntu 安装闪存驱动器将 Ubuntu 重新设置为第一个启动驱动器,Mac OS 为第二个启动驱动器。Windows 仍然无法启动。
奇怪的是,这次单击“Windows”磁盘图标后,Apple 启动管理器没有尝试启动 Windows;单击“Macintosh HD”和“Windows”图标都会导致启动 Mac OS。所以这次修复肯定改变了 Apple 启动管理器。
几个问题
似乎 Windows Boot Loader
/dev/sda1
被 Grub 覆盖了。那么有没有办法让 Windows Boot Loader 和 Linux Boot Loader(现在是 Grub,对吧?)共存?需要注意的是Boot Camp Windows 8 在 MacBook Pro 上以 EFI 模式启动,如图
setupact.log
所示Callback_BootEnvironmentDetect: Detected boot environment: EFI
。指导我还检查了 Grub,发现它在 EFI 模式下工作。因此,Windows 是否也使用与 Mac OS 类似的 GUID 分区表 (GPT),而不是 MBR?如果是这样,修复 MBR 可能没用。我不确定 Apple 启动开关位于何处,以及 Windows 安装驱动器如何更改它?它也在 中吗
/dev/sda1
?
我是这个主题的初学者。非常感谢您的回答!
更新:
我在 Windows 安装命令提示符中尝试了以下命令:
bootrec /fixmbr
: 成功的bootrec /fixboot
: 成功的bootrec /scanos
: 已识别 1 Windows 安装于D:\Windows
bootrec /rebuildbcd
:已识别 1 个 Windows 安装D:\Windows
;找不到请求的系统设备。bcdedit
:无法找到请求的系统设备。
Windows 无法启动,错误代码为0xc000000e
。
更新 #2
我按照 Rod Smith 的回答将我的 EFI 分区从 转换MBR: MBR only
为MBR: protective
和GPT: present
,但随后“Windows”选项从 Apple 启动管理器中消失,并且无法启动 Grub。
我也按照 Terrance 的回答做了,rebuildbcd
但没有成功。请参阅他们答案的评论。
答案1
您的问题是您的 Windows 安装处于 EFI 模式,但您的磁盘配置了混合型 MBR,这会强制 Windows 将磁盘视为 MBR 磁盘。Mac 引导加载程序也可能将此视为尝试以 BIOS 模式启动 Windows 的信号,但磁盘上没有 BIOS 模式引导加载程序。由于 Windows 只能从 GPT 磁盘以 EFI 模式启动,因此此配置会导致启动失败。可能还有其他问题,但这是我看到的第一个问题,它将确实导致启动失败,因此您应该修复此问题。
幸运的是,解决方案相当简单,尽管非直观:
- 启动到 Ubuntu。(您也可以从 OS X 执行此操作,但您需要安装
gdisk
并使用不同的磁盘设备文件名。) - 打开终端窗口。
- 键入
sudo gdisk /dev/sda
。在您输入密码后,gdisk
应启动并告诉您 等信息MBR: hybrid
。 - 键入
p
以查看分区表。假设您对分区有足够的了解,您应该能够验证您正在查看的磁盘是否正确。如果没有,请键入q
以退出并尝试另一个磁盘设备。 - 键入
x
以进入专家菜单。 - 键入
n
以创建一个新的保护 MBR 来替换现有的混合 MBR。 - 再次输入
p
以验证您的分区是否仍在原位。这只是一项预防措施,以确保您没有意外按错键。 - 键入
w
以保存分区表。系统将要求您验证此操作。请这样做。
如果幸运的话,这应该可以解决你的问题。
答案2
如果 Bootrec 显示“找不到请求的系统设备”错误,以下步骤将有助于构建新的 BCD:
输入此命令:
bcdedit /export D:\BCDBackup
类型
d:
d:
你的 Windows 安装在哪里类型
cd boot
输入此命令:
attrib bcd -s -h -r
输入此命令:
ren d:\boot\bcd bcd.old
输入此命令:
bootrec /RebuildBcd
希望这可以帮助。