这是 2012 年款的 MacBook Pro 13 英寸,配备 500 GB 硬盘和光驱。我将其与 OS X 和 Windows 10 双启动一起使用,没有任何启动问题。如果我在Option
OS X 启动前按下,将有三个选项,分别是“Macintosh HD”、“恢复”和“Windows”(应该是这些分区的标签)。
我刚买了一个 SSD,想把 SSD 放在原来的硬盘托架上 - 实际上我已经这样做了。旧 HDD 使用第二个 HDD 托架连接到光驱托架。我做的就这些。我没有重新分区,只是将硬盘按原样移动。
$ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: *240.1 GB disk0
/dev/disk1 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.1 GB disk1
1: EFI EFI 209.7 MB disk1s1
2: Apple_HFS Macintosh HD 345.2 GB disk1s2
3: Apple_Boot Recovery HD 650.0 MB disk1s3
4: Microsoft Basic Data WINDOWS 154.0 GB disk1s4
在我完成所有这些操作后,OS X 可以完美启动,但我可以在系统中看到 HDD 变成disk1
- 原来是disk0
。然后,Windows 不再启动。我仍然可以在启动菜单中看到完全相同的内容,但如果我选择 Windows,则会出现黑屏,光标闪烁,并且 Windows 永远不会启动。
我用 Google 做了一些研究,但很少看到和我一模一样的问题。有些人在重新分区硬盘后对 BootCamp 有异议,而我的情况并非如此。有些人在第二块硬盘上安装 Windows 时遇到了问题,而我的情况也不是如此 - 实际上,这些问题的一些答案建议他们先在硬盘上安装 Windows,然后再将硬盘移到光驱托架上...(我认为他们没有使用 BootCamp...)
我相信我的 MBR 仍然是健全且正确的,并且 Windows 分区现在已被标记。
$ sudo fdisk -e /dev/disk1
Password:
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Enter 'help' for information
fdisk: 1> p
Disk: /dev/disk1 geometry: 60801/255/63 [976773168 sectors]
Offset: 0 Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: EE 1023 254 63 - 1023 254 63 [ 1 - 409639] <Unknown ID>
2: AF 1023 254 63 - 1023 254 63 [ 409640 - 674312704] HFS+
3: AB 1023 254 63 - 1023 254 63 [ 674722344 - 1269536] Darwin Boot
*4: 07 1023 254 63 - 1023 254 63 [ 675993600 - 299835101] HPFS/QNX/AUX
fdisk: 1> exit
请不要考虑我为什么购买 SSD……目前我只想用尽可能少的努力解决这个问题。如果可能的话,我现在宁愿从光驱硬盘启动,而不是尝试将所有内容重新安装到 SSD 上。
现在 BootCamp Assistant 允许我选择使用哪个硬盘。如果我选择第二个硬盘,将有一个选项可用,即删除 Windows。我不知道这是否表明我想要的是不可能的。
如果不可能的话 - 有没有办法将 Windows 安装移动到 SSD 而无需重新安装?我有一个 Windows PE 启动 USB,可用于修复启动菜单。
因为有人说这可能是 BCD 问题,所以我将我的 BCD 列表粘贴在这里:
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=C:
description Windows Boot Manager
locale zh-CN
inherit {globalsettings}
default {default}
resumeobject {77da1021-90b9-11e5-9a63-9c85ed0d120f}
displayorder {default}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {default}
device partition=C:
path \WINDOWS\system32\winload.exe
description Windows 10
locale zh-CN
inherit {bootloadersettings}
recoverysequence {da049ca7-90b9-11e5-9a63-9c85ed0d120f}
recoveryenabled Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {77da1021-90b9-11e5-9a63-9c85ed0d120f}
nx OptIn
bootmenupolicy Standard
真的不知道如何修复这个问题,因为项目上写的C:
不是磁盘 ID 或其他任何东西...我开始担心这不是 BCD 问题......
答案1
可能是 HDD 被赋予了不同的磁盘号,因此 BCD 无法找到 Windows 的安装位置。我自己不是 Mac 用户,所以我不确定如何修复此问题。从 Windows 磁盘启动并选择修复选项可能会有所帮助,尽管我再次不确定这在 Mac 上会如何工作。(在运行 BootCamp 的 Mac 上使用 Windows 磁盘并不安全,详情见下文评论)
答案2
有点晚了,但也许其他人仍在看这个。
首先,磁盘的第一个扇区上需要有一个标识 Windows 分区的 MBR。默认情况下,使用磁盘实用程序格式化磁盘时,情况并非如此 - 相反,只有 GUID 分区表(位于 MBR 之后)会列出它 - 但这样 Bootcamp 就无法启动 Windows。
修复这个问题很棘手。
我在这里为此写了一些程序:http://blog.tempel.org/search/label/BootCamp和这里:http://www.tempel.org/WindowsWithoutBootCampAssistant
您还可以尝试看看 Boot Runner (https://twocanoes.com/products/mac/boot-runner/)帮助更新您的分区和 Windows 启动记录。