Yin*_*ang 6 grub2 dual-boot windows macbook uefi
我按照本指南在 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: 电喷分区/dev/sda2: OS X 优胜美地/dev/sda3:OS X 恢复高清/dev/sda4:新兵训练营 Windows 8/dev/sda5: Ubuntu 磁盘挂载到 //dev/sda6: Ubuntu SwapUbuntu 引导加载程序被选择安装到/dev/sda1,但安装程序通知 Windows 引导加载程序也存在于sda1. 安装后,Ubuntu 和 Mac OS 从 GRUB2 成功启动,但 Windows 无法从 GRUB2 或原生 Apple 启动管理器启动(option启动时按下)。我使用 Parallels Desktop 将 Boot Camp 分区加载为虚拟机,并且 Windows 工作正常。
我在 Ubuntu 上安装了Boot Repair并使用了推荐的修复,没有运气;修复后,更多条目添加到 Grub2 菜单中。GRUB 工作正常,Mac OS 可以启动。这是创建的引导信息页面:http : //paste.ubuntu.com/11897269/
我插入了 Windows 安装闪存驱动器并尝试了自动启动修复,但没有奏效。然后我尝试通过命令提示符修复主引导记录:
bootrec /fixmbr
修复后Mac OS被设置为第一个启动系统,所以在启动计算机时没有出现Grub菜单。我efibootmgr在 Ubuntu 安装闪存驱动器上使用,将 Ubuntu 设置为第一个引导驱动器,将 Mac OS 设置为第二个。Windows 仍然无法启动。
奇怪的是,这次苹果启动管理器并没有在点击“Windows”磁盘图标后尝试启动Windows;“Macintosh HD”和“Windows”图标都将引导 Mac OS 启动。所以修复肯定是换了苹果启动管理器。
似乎/dev/sda1Grub 覆盖了 Windows 引导加载程序。那么有没有办法让 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: 确定 1 个 Windows 安装在 D:\Windowsbootrec /rebuildbcd:确定 1 个 Windows 安装在D:\Windows;找不到请求的系统设备。bcdedit: 找不到请求的系统设备。Windows 无法启动,错误代码为0xc000000e。
我按照 Rod Smith 的回答将我的 EFI 分区从和转换MBR: MBR only为MBR: protective和GPT: present,但随后“Windows”选项从 Apple 启动管理器中消失,并且 Grub 无法启动。
我也跟着特伦斯的回答rebuildbcd但没有成功。请参阅对他们答案的评论。
您的问题是您的Windows安装处于EFI模式,但您的磁盘配置了混合MBR,这迫使Windows将该磁盘视为MBR磁盘。Mac 引导加载程序也可能将此视为尝试 Windows BIOS 模式引导的信号,但磁盘上没有 BIOS 模式引导加载程序。由于 Windows 只能从 GPT 磁盘以 EFI 模式启动,因此此配置会导致启动失败。可能还有其他问题,但这是我看到的第一个问题,它肯定会导致启动失败,所以你应该解决这个问题。
幸运的是,解决方案相当简单,尽管不直观:
gdisk并使用不同的磁盘设备文件名。)sudo gdisk /dev/sda。系统提示您输入密码后,gdisk应该启动并告诉您,除其他事项外,MBR: hybrid.p以查看分区表。假设您对分区有足够的了解,您应该能够验证您正在查看正确的磁盘。如果没有,请键入q退出并尝试另一个磁盘设备。x以进入专家菜单。n创建新的保护性 MBR 以替换现有的混合 MBR。p以验证您的分区是否仍然存在。这只是一种预防措施,以确保您不会意外按错键。w以保存分区表。系统会要求您验证此操作。这样做。运气好的话,这应该可以解决您的问题。
如果 Bootrec 显示\xe2\x80\x9c无法找到请求的系统设备\xe2\x80\x9d 错误,以下步骤将帮助构建新的 BCD:
\n\n键入此命令:
\n\nbcdedit /export D:\\BCDBackup\nRun Code Online (Sandbox Code Playgroud)类型
\n\nd:\nRun Code Online (Sandbox Code Playgroud)\n\nd:你的 Windows 安装在哪里
类型
\n\ncd boot\nRun Code Online (Sandbox Code Playgroud)键入此命令:
\n\nattrib bcd -s -h -r\nRun Code Online (Sandbox Code Playgroud)键入此命令:
\n\nren d:\\boot\\bcd bcd.old\nRun Code Online (Sandbox Code Playgroud)键入此命令:
\n\nbootrec /RebuildBcd\nRun Code Online (Sandbox Code Playgroud)希望这可以帮助。
\n\n\n| 归档时间: |
|
| 查看次数: |
10820 次 |
| 最近记录: |