OpenCore的一项巧妙功能是能够完全避免使用BIOS,而仅将启动磁盘用于多次引导。当我们尝试引导Windows而无法将引导选项设置回macOS时,问题就来了。这就是BootCamp实用程序进入的地方。
- 注意:本指南将不介绍Windows安装程序的创建,而仅介绍BootCamp驱动程序的安装。
- Windows安装程序创建示例:构建可启动的Windows ISO(在新窗口中打开)
- 提醒:Windows必须基于GPT / GUID,OpenCore不会引导旧版安装
- 注意2:从macOS使用BootCamp实用程序将删除EFI上的EFI / BOOT / BOOTx64.efi文件,这是引导OpenCore所必需的。而且OpenCore本身不支持基于MBR的安装,因此该实用程序对我们没有用
#准备工作
首先,我们需要以下内容:
- Windows已安装
- 必须基于UEFI / GPT
- 准将(在新窗口中打开)
- 下载BootCamp驱动程序
- 启用SMBIOS注入
- 由于驱动程序具有SMBIOS检查
- 设置启动器选项
- 不需要,但是当Windows擦除BOOTx64.efi OpenCore使用时,可以帮助减轻头痛
#安装
要安装,就像抓取准将一样简单 (在新窗口中打开)并Brigadier.bat
在Windows或Brigadier.command
macOS上运行。如果您当前正在使用的SMBIOS遇到BootCamp问题,或者想要下载另一个SMBIOS,则可以添加-- model{SMBIOS}
到末尾:
path/to/Brigadier --model MacPro7,1
- 注意:较旧版本的BootCamp安装程序(6.0)不支持APFS,您需要选择将其捆绑在一起的较新的SMBIOS(即iMac 19,1),或在安装后更新Bootcamp软件。有关疑难解答的更多详细信息,请参见下文:Windows启动盘无法看到APFS驱动器
接下来,您将在以下任一位置找到我们的bootcamp驱动程序:
- 视窗:
\Users\{Username}\bootcamp-{filename}\BootCamp
- 苹果系统:
/Users/{Username}/BootCamp-{filename}/WindowsSupport.dmg
macOS用户接下来将需要扩展WindowsSupport.dmg并将其放置在Windows可以获得的位置。
接下来,导航到该bootcamp-{filename}\BootCamp
文件夹并运行Setup.exe:
完成所有操作后,就可以进行BootCamp切换了!现在,您的托盘中应该有一个BootCamp小图标,您可以选择要引导到的驱动器。
- 注意:对于不需要BootCamp提供的额外驱动程序的用户,可以删除以下内容:
$WinPEDriver$
:请勿删除文件夹本身,仅删除其中的驱动程序- Apple Wifi卡用户将希望保留以下内容:
$WinPEDriver$/BroadcomWireless
$WinPEDriver$/BroadcomBluetooth
$WinPEDriver$/AppleBluetoothBroadcom
- Apple Wifi卡用户将希望保留以下内容:
BootCamp/Drivers/...
- 不要删除
BootCamp/Drivers/Apple
- Apple Wifi卡用户将希望保留以下内容:
BootCamp/Drivers/Broadcom/BroadcomBluetooth
- 不要删除
#故障排除
- 在选择器中找不到Windows / BootCamp驱动器
- “您无法将启动磁盘更改为所选磁盘”错误
- 引导Windows导致BlueScreen或Linux崩溃
- 启动Windows错误:
OCB: StartImage failed - Already started
- Windows启动盘看不到APFS驱动器
#在选择器中找不到Windows / BootCamp驱动器
因此,对于OpenCore,我们必须注意,不支持旧版Windows安装,仅支持UEFI。现在,大多数安装都是基于UEFI的,但是在macOS中由BootCamp Assistant进行的安装是基于旧版的,因此您必须找到其他方法来安装(谷歌是您的朋友)。这也意味着MasterBootRecord / Hybrid分区也已损坏,因此您需要使用DiskUtility格式化要安装的驱动器。
现在进入故障排除:
- 确保
Misc -> Security -> ScanPolicy
设置0
为显示所有驱动器
如果Windows和OpenCore的引导加载程序在同一驱动器上,则需要添加BlessOverride条目:
Misc -> BlessOverride -> \EFI\Microsoft\Boot\bootmgfw.efi
- 注意:从OpenCore 0.5.9开始,不再需要指定此项。OpenCore应该会自动选择此条目
#“您无法将启动磁盘更改为所选磁盘”错误
这通常是由以下原因引起的:
- 第三方NTFS驱动程序(即Paragon)
- Windows驱动器的分区设置不规则,特别是EFI不是第一个分区。
要修复前者,请禁用或卸载这些工具。
要解决后者,我们需要启用以下功能:
PlatformInfo -> Generic -> AdviseWindows -> True
#引导Windows导致BlueScreen或Linux崩溃
这是由于对齐问题所致,请确保SyncRuntimePermissions
在支持MAT的固件上启用了该功能。检查您的日志是否固件支持内存属性表(通常在2018年及更高版本的固件上可见)
对于Z390和更新的主板,您还需要启用ProtectUefiServices
以确保OpenCore的补丁正确应用。
如果您的固件很旧(通常为2013年及更低版本),则需要启用ProtectMemoryRegions
。
由于不同供应商的固件有所不同,因此您需要结合使用这3个怪癖,然后看看哪种效果最好。
Windows常见错误代码:
0xc000000d
#启动Windows错误: OCB: StartImage failed - Already started
这是由于OpenCore在尝试引导Windows时不知所措,并意外地认为它正在引导OpenCore。可以通过将Windows移至其自身的驱动器或在BlessOverride下添加自定义驱动器路径来避免这种情况。请参阅Configuration.pdf (在新窗口中打开)和在选择器条目中找不到Windows / BootCamp驱动器以获取更多详细信息。
#Windows启动盘看不到APFS驱动器
- 过时的BootCamp驱动程序(brigadier通常附带Ver 6.0,macOS中的BootCamp Utility提供了诸如Ver 6.1之类的较新版本)。您可以尝试通过使用Apple的软件更新程序更新到最新版本,或者从brigadier(例如
--model iMac19,1
)和运行brigadier时选择较新的SMBIOS来缓解这些问题。
对于后者,您需要运行以下命令(filename.msi
用BootCamp安装msi代替):
msiexec.exe /x "c:\filename.msi"