在MacBook Pro上安装Ubuntu后修复Windows Boot Loader
我按照本指南在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 Recovery HD -
/dev/sda4
:Boot Camp Windows 8 -
/dev/sda5
:安装到/
Ubuntu磁盘 -
/dev/sda6
:UbuntuSwap
选择Ubuntu引导加载程序安装到/dev/sda1
,但安装程序通知Windows引导加载程序也存在于sda1
。 安装后,Ubuntu和Mac OS从GRUB2成功启动,但无法从GRUB2或本机Apple启动管理器启动Windows(启动时按下option
)。 我使用Parallels Desktop将Boot Camp分区加载为虚拟机并且Windows正常运行。
解决方案#1
我在Ubuntu上安装了Boot Repair并使用了推荐修复 ,没有运气; 修复后,更多条目将添加到Grub2菜单中。 GRUB工作,Mac OS可以启动。 以下是创建的Boot Info页面: http : //paste.ubuntu.com/11897269/
解决方案#2
我插入了Windows安装闪存驱动器并尝试了自动启动修复 ,但无法正常工作。 然后我尝试通过命令提示符修复主引导记录: bootrec /fixmbr
修复后,Mac OS被设置为第一个启动系统,因此启动计算机时没有出现Grub菜单。 我在Ubuntu安装闪存驱动器上使用了efibootmgr
,将Ubuntu作为第一个启动驱动器和Mac OS。 Windows仍然无法启动。
奇怪的是,这次Apple启动管理器在点击“Windows”磁盘图标后没有尝试启动Windows; “Macintosh HD”和“Windows”图标都将导致Mac OS启动。 因此修复必须更改Apple启动管理器。
几个问题
-
似乎
/dev/sda1
中的Windows Boot Loader被Grub覆盖。 那么有没有办法使Windows引导加载程序和Linux引导加载程序(现在是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
:在D:\Windows
上识别出1个Windows安装 -
bootrec /rebuildbcd
:在D:\Windows
上识别出1个Windows安装; 找不到请求的系统设备。 -
bcdedit
:找不到请求的系统设备。
Windows无法启动,错误代码为0xc000000e
。
更新#2
我遵循Rod Smith的回答将我的EFI分区从MBR: MBR only
转换为MBR: MBR only
为MBR: protective
和GPT: present
,但随后“Windows”选项从Apple启动管理器消失,Grub无法启动。
我也跟着Terrance对rebuildbcd
的回答,但没有成功。 查看有关其答案的评论。
您的问题是您的Windows安装处于EFI模式,但您的磁盘配置了混合MBR,这会强制Windows将磁盘视为MBR磁盘。 Mac启动加载程序也可能将此作为尝试Windows的BIOS模式启动的信号,但磁盘上没有BIOS模式启动加载程序。 由于Windows将仅从GPT磁盘以EFI模式启动,因此此配置会导致启动失败。 可能还有其他问题,但这是我看到的第一个问题,它肯定会导致启动失败,所以你应该解决这个问题。
幸运的是,解决方案相当简单,尽管不直观:
- 启动到Ubuntu。 (您也可以从OS X执行此操作,但您需要安装
gdisk
并使用其他磁盘设备文件名。) - 打开终端窗口。
- 输入
sudo gdisk /dev/sda
。 在系统提示您输入密码后,gdisk
应该启动并告诉您,其中包括MBR: hybrid
。 - 键入
p
以查看分区表。 假设您对分区了解得足够多,那么您应该能够validation您是否正在查看正确的磁盘。 如果没有,请键入q
退出并尝试其他磁盘设备。 - 输入
x
进入专家菜单。 - 键入
n
以创建新的保护性MBR以替换现有的混合MBR。 - 再次键入
p
以validation您的分区是否仍然存在。 这只是一个预防措施,以确保您不会意外地敲错钥匙。 - 键入
w
以保存分区表。 系统会要求您validation此操作。 这样做。
运气好的话,这应该可以解决你的问题。
如果Bootrec显示“找不到请求的系统设备”错误,则以下步骤将有助于构建新的BCD:
-
输入以下命令:
bcdedit /export D:\BCDBackup
-
类型
d:
其中
d:
是安装Windows的地方 -
类型
cd boot
-
输入以下命令:
attrib bcd -s -h -r
-
输入以下命令:
ren d:\boot\bcd bcd.old
-
输入以下命令:
bootrec /RebuildBcd
希望这可以帮助。
信用