
黑苹果折腾记(一):换显卡、做启动盘,14GB镜像下载了个寂寞

免责声明
本系列文章仅供技术学习和探索交流使用。黑苹果(Hackintosh)是指在非苹果品牌的PC硬件上安装macOS系统,可能涉及软件许可协议问题。
如需长期使用macOS,请购买苹果官方硬件以获得完整体验和技术支持。
TL;DR 文章速览
用一台吃灰的旧机器(技嘉B365M D2V + i5-9400F)折腾黑苹果,第一步是准备工作和做启动盘。这篇记录了整个过程里我踩过的坑:
- 硬件:B365 + 九代酷睿是黑苹果熟面孔,NVIDIA显卡在macOS下没法用,换成了AMD RX 6600 XT。
- BIOS:CSM关掉、Secure Boot关掉、SATA设成AHCI。B365低端板找不到的选项(Above 4G、VT-d、CFG Lock)可以靠OpenCore补丁绕过。
- 最大的坑:gibMacOS下载的14GB InstallAssistant.pkg是个“存根安装器”,Windows下解压出来全是垃圾,没有系统镜像。正确做法是用OpenCore自带的 macrecovery.py 下载500MB的BaseSystem.dmg。
- 启动盘:Rufus引导选择要选“不启动”,只格式化U盘,再手动放Recovery文件和EFI。
- config.plist:只改四处就够了,SMBIOS机型、GenSMBIOS生成的序列号、boot-args里的
agdpmod=pikera、Kernel Quirks补丁。
前言
有一天我看着角落里吃灰的旧电脑,突然想起来这台机器已经闲置大半年了。技嘉B365M D2V主板,i5-9400F处理器,配了一张NVIDIA GTX 1660显卡。当初攒机时还挺满意,现在就这么放着,感觉挺浪费。
我随口问了AI一句:"这配置能装黑苹果吗?"
AI说这套配置支持度不错,B365芯片组和i5-9400F都是黑苹果的熟面孔,唯独显卡有问题:NVIDIA GTX 1660在macOS下完全无法驱动,必须换成AMD显卡。
折腾欲上来了。我在某鱼上把1660卖了,淘回来一张AMD RX 6600 XT。虽然对黑苹果完全不懂,但有AI协助,感觉可以试试。这段黑苹果之旅就这么开始了。
硬件兼容性:我的配置能跑macOS吗?
黑苹果对硬件的要求不是一般的严格,动手前我又详细确认了一遍。
主板芯片组:B365是Intel 300系列,对应Coffee Lake架构。查了一圈,2026年这个平台仍是黑苹果主流配置,不算新也不算旧,驱动成熟,支持macOS。
CPU:i5-9400F,九代酷睿,Coffee Lake-R。关键点是后缀F代表无核显。没核显就只能靠独显,不能像带核显的CPU那样先用核显启动再调显卡。这一点在后面的黑屏排查中很关键。
显卡:RX 6600 XT,AMD的Navi 23架构。查到的信息说AMD显卡“理论免驱”,注意是“理论”。macOS对AMD显卡支持比NVIDIA好得多,系统自带支持,不需要专门驱动。但“理论免驱”不等于“开箱即用”,后面会知道这卡还是有坑。
网卡:板载Realtek,需要装kext驱动才能用。不着急,后续优化再弄。
查完这些,心里有底了:硬件基本都能用,没有硬性不兼容。可以开始准备。
BIOS设置
装黑苹果的第一步不是下载工具,是先改BIOS。macOS对硬件环境有严格要求,Windows的BIOS默认设置一般满足不了。
技嘉B365M D2V的BIOS现状
开机狂按Del键进BIOS,看到的是技嘉典型的AMI UEFI界面,蓝灰色背景,多个Tab布局。按F2切到Advanced Mode才能看到全部选项。
右上角显示BIOS版本F6。我去技嘉官网查了,F6是这块板子的最终版本,2020年后就没再更新。也就是说有些高级选项可能被厂商精简掉了,找不到很正常。
必改的几个关键选项
M.I.T. → Extreme Memory Profile (X.M.P.):改成Profile1,开启2666MHz内存频率。不开XMP只能跑2133MHz,白白浪费性能。
BIOS → CSM Support:改成Disabled。这是最关键的一项。CSM是兼容模式,让UEFI主板能启动传统BIOS系统。macOS必须纯UEFI启动,CSM开着的话OpenCore(黑苹果引导工具)根本进不去。
BIOS → Secure Boot:改成Disabled。安全启动会阻止未签名的引导程序,OpenCore显然不在微软白名单里。
Peripherals → SATA Mode Selection:改成AHCI。如果设成RAID或RST模式,进macOS安装界面时会发现硬盘完全识别不了。
找不到Above 4G Decoding怎么办?
这个选项理论上在Peripherals里,但我翻遍所有Tab都没找到。让AI查了社区反馈,B365M D2V的F6 BIOS确实把它隐藏或删除了,这是低端主板的通病。
Above 4G Decoding的作用是让显卡使用4GB以上的内存地址空间,对大显存显卡(比如我的RX 6600 XT 8GB)很重要。但找不到不用慌,OpenCore的Booter配置可以在软件层面强制开启,后面配config.plist时会处理。
类似地,VT-d和CFG Lock我也没找到。这两个同样可以用OpenCore的Kernel Quirks补丁绕过。
改完保存退出(F10 → Y)。硬件环境算准备好了。
工具下载
黑苹果不像装Windows,不是找个镜像刻盘就完事,需要几个专用工具。
OpenCore:黑苹果引导加载器,核心工具。从GitHub下载最新版(2026年3月是1.0.7)。地址github.com/acidanthera/OpenCorePkg/releases,下载RELEASE.zip,解压后主要用X64/EFI文件夹。
macrecovery.py:OpenCore自带的macOS镜像下载脚本,在Utilities/macrecovery文件夹里。这是官方推荐的Windows下载方式,直接从苹果服务器拉取BaseSystem.dmg。
Rufus:Windows下制作启动盘的标准工具,官网rufus.ie。
ProperTree:编辑OpenCore配置文件的工具,跨平台,Python写的,能避免格式错误。GitHub搜corpnewt/ProperTree。
GenSMBIOS:生成序列号的工具。GitHub搜corpnewt/GenSMBIOS。
还需要几个必需的kext驱动:
- Lilu.kext(基础依赖)
- VirtualSMC.kext(传感器模拟)
- WhateverGreen.kext(显卡驱动,必须≥1.6.5才支持RX 6600 XT)
- AppleALC.kext(声卡驱动)
- RealtekRTL8111.kext(板载网卡驱动)
这些都在GitHub的Acidanthera组织下,搜对应名称找releases下载最新版。
工具下齐,解压到一个文件夹备用(比如D:\Hackintosh)。接下来才是真正的坑。
InstallAssistant.pkg的陷阱:14GB解压后全是垃圾
我遇到的问题
一开始我不知道macrecovery.py,看到网上很多教程都用gibMacOS下载。
打开gibMacOS.bat选macOS版本,有两个选项:Recovery Only模式(几百MB),和完整版(显示要下14GB的InstallAssistant.pkg)。
按AI的指引,选完整版,离线安装不用联网。于是关掉“Toggle Recovery Only”,等一小时下完14GB的pkg。
然后问题来了。我试着解压这个pkg,7-Zip、WinRAR、360压缩全试了,解出来一堆文件,但找不到InstallESD.dmg或类似的可用镜像。
打开看,文件夹里全是preload(一堆二进制数据)、Distribution和Resources这类元数据、几个小的plist配置文件。根本没有完整的macOS系统镜像。
我盯着这堆文件懵了。14GB下载了个寂寞?
为什么会这样
问了AI,答的有点不知所云。查了资料,才搞明白。
Apple从Big Sur(macOS 11)开始改了安装器的分发策略。以前的安装器是完整离线镜像,下载后可以直接装。从Big Sur开始,苹果改用“stub installer”(存根安装器)模式。
InstallAssistant.pkg不是完整镜像,是一个下载器。它的工作原理是:
- 你在macOS环境下运行这个pkg
- pkg联网到苹果服务器下载完整系统文件(那12GB的镜像)
- 下载完成后才开始安装
问题在哪?这个pkg需要macOS环境才能运行,Windows下根本用不了。你在Windows下解压它,只能看到preload预加载数据和一些元数据,因为镜像根本不在pkg里,要pkg在macOS环境下运行后才从服务器下载。
这就是陷阱。刚开始听了AI的下了完整镜像,结果是个空壳。我在这上面浪费了一整晚。
正确做法:用macrecovery.py
后来我发现,官方OpenCore指南推荐的方法根本不是gibMacOS,而是OpenCore自带的macrecovery.py脚本。
这个脚本直接从苹果服务器下载BaseSystem.dmg(Recovery镜像),只有500MB左右,够用了。它是macOS恢复环境的精简版,启动后会联网下载完整系统。
关键是:BaseSystem.dmg可以在Windows下直接用Rufus写入U盘,不需要解压,不需要macOS环境。虽然后续安装时还是要联网,但至少启动盘能做出来。
制作启动盘:macrecovery.py + BaseSystem.dmg + Rufus
第一步:用macrecovery.py下载BaseSystem.dmg
打开刚下载的OpenCore文件夹,进入Utilities/macrecovery目录。在文件夹空白处按住Shift + 右键,选“在此处打开PowerShell窗口”。
输入命令(一行,回车):
py macrecovery.py -b Mac-937A206F2EE63C01 -m 00000000000000000 download命令含义:
-b Mac-937A206F2EE63C01:机型标识符,这个是iMac19,1(对应我的i5-9400F)-m 00000000000000000:板号序列号,用全0就行download:执行下载
等几分钟到十几分钟(看网速),完成后当前文件夹会出现两个文件:
- BaseSystem.dmg(约500-800MB)
- BaseSystem.chunklist(校验文件)
这两个就是做启动盘需要的。
第二步:用Rufus准备U盘
插入U盘(至少16GB,我用的62GB)。U盘会被格式化,提前备份数据。
打开Rufus,界面很简洁,关键是几个参数,很多人会搞错:
| 设置项 | 选择什么 | 为什么 |
|---|---|---|
| 设备 | 你的U盘 | 确认容量,别选错硬盘 |
| 引导选择 | 不启动(Not bootable) | 关键!不要选镜像文件 |
| 分区方案 | GPT | macOS只支持GPT,不是MBR |
| 目标系统 | UEFI (non CSM) | 纯UEFI模式 |
| 文件系统 | Large FAT32 | UEFI启动的标准格式 |
最关键的是引导选择要选“不启动”。因为我们不是用Rufus直接写镜像,而是先格式化U盘,再手动放Recovery文件,这是OpenCore官方推荐的做法。
设好点“开始”,Rufus弹窗提示U盘将被格式化,确认后开始。几秒钟就完成(只是格式化,没写镜像)。
第三步:手动放置Recovery文件
格式化完成后打开U盘根目录,现在里面是空的。
新建一个文件夹,名字必须一模一样:com.apple.recovery.boot
注意:全小写,点号在中间不是下划线,一个字母都不能错。
然后把刚下载的BaseSystem.dmg和BaseSystem.chunklist复制进这个文件夹。现在U盘结构应该是:
U盘根目录/
├── com.apple.recovery.boot/
│ ├── BaseSystem.dmg
│ └── BaseSystem.chunklist到这一步Recovery镜像放好了,但U盘还不能启动,因为缺少OpenCore引导。
EFI配置:从哪下载,怎么改
EFI是什么
EFI是黑苹果的启动引导系统,也是核心。可以理解为:EFI是启动引擎,config.plist是说明书。
EFI是一个文件夹,里面包含OpenCore引导加载器、各种驱动程序(kext)、配置文件、启动工具等。没有EFI,U盘启动后电脑不知道怎么加载macOS,也不知道怎么处理硬件。
从哪下载:基于Olarila的B365M D2V专用版本
这是另一个坑:不要随便下载别人的EFI。
很多人图省事直接在GitHub上搜“B365M EFI”下一个现成的。问题是EFI不通用,即使主板型号一样,CPU、显卡、网卡、硬盘不一样,EFI配置也得不一样。下错了轻则启动失败,重则浪费一整天排查。
我的做法是找一个主板型号完全匹配的EFI作为起点。AI推荐了Olarila论坛MaLd0n发布的EFI,专门针对Gigabyte B365M D2V主板:
olarila.com/topic/40412-hackintosh-efi-opencore-gigabyte-b365m-d2v/
这个EFI的优点:
- 主板型号完全匹配
- 已包含B365专用的SSDT-AWAC、SSDT-PMC等ACPI补丁
- USB端口已初步映射
- 支持最新的macOS Sequoia
缺点是下载有点麻烦,Olarila的下载链接走Linkvertise广告服务,需要等5到60秒看完广告才能拿到真实链接。耐心等一下,或者换浏览器、开隐身模式试试。下载后解压得到一个EFI文件夹。
把EFI放到U盘根目录
直接把整个EFI文件夹复制到U盘根目录。现在U盘的完整结构应该是:
U盘根目录/
├── com.apple.recovery.boot/
│ ├── BaseSystem.dmg
│ └── BaseSystem.chunklist
└── EFI/
├── BOOT/
│ └── BOOTx64.efi
└── OC/
├── config.plist
├── ACPI/
├── Drivers/
├── Kexts/
└── Resources/这样U盘既有macOS镜像,又有OpenCore引导。但还不能直接用,需要改config.plist适配你的硬件。
用ProperTree编辑config.plist
配置看起来复杂,但只改4个地方就够了。
双击ProperTree.bat运行,用它打开U盘里的EFI/OC/config.plist。不要用Windows记事本打开,记事本会破坏plist格式,ProperTree能自动检查语法错误。
核心是四个参数。
必改参数1:SMBIOS(机型识别信息)
SMBIOS告诉macOS“你是什么机型”,macOS会据此加载对应的驱动和电源管理。
在config.plist里找到PlatformInfo → Generic,里面有SystemProductName。我的配置是i5-9400F + RX 6600 XT,推荐选iMac19,1。因为它对应2019款iMac,用的也是Coffee Lake九代酷睿 + AMD独显,硬件特征和我最接近。
必改参数2:用GenSMBIOS生成序列号和UUID
改完机型,还要生成序列号、主板序列号、UUID。因为macOS会检查这些信息,如果用别人EFI里的默认序列号可能冲突,导致iCloud、iMessage无法使用。
下载GenSMBIOS(GitHub上搜corpnewt/GenSMBIOS),运行GenSMBIOS.bat。
注意这里很多人会搞错:
- 第一次运行选择1(Install/Update MacSerial):这一步只是下载macserial工具,不生成序列号。下载完窗口会关闭,这是正常的。
- 再次运行GenSMBIOS.bat,这次选择3(Generate SMBIOS):这才是真正生成序列号的步骤。
- 输入机型:
iMac19,1 - 回车后会生成3行数据
把生成的信息填到config.plist的PlatformInfo → Generic:
- 第一行(Serial Number)→
SystemSerialNumber - 第二行(Board Serial Number / MLB)→
MLB - 第三行(SmUUID)→
SystemUUID
必改参数3:boot-args,添加agdpmod=pikera
在config.plist里找到NVRAM → Add → 7C436110-AB2A-4BBB-A880-FE41995C9F82 → boot-args(启动参数)。
这一项是启动参数,告诉OpenCore启动时加载哪些选项。推荐设置为:
-v keepsyms=1 debug=0x100 alcid=1 agdpmod=pikera各参数含义:
-v:verbose模式(详细日志模式),显示详细启动日志,调试时很有用keepsyms=1 debug=0x100:内核panic时保留符号,方便排查alcid=1:声卡注入ID,ALC887芯片先试1,不行再换7/11/13agdpmod=pikera:这个是RX 6600 XT的关键参数
为什么RX 6600 XT需要agdpmod=pikera?因为这是Navi 23架构(AMD显卡架构代号)的显卡,macOS对它的原生支持有小bug,不加这个参数会黑屏或无硬件加速。
必改参数4:Kernel Quirks补丁
因为B365M D2V的BIOS找不到CFG Lock、VT-d等选项,需要在config.plist里用软件补丁绕过。找到Kernel → Quirks,确认以下几项为true:
AppleXcpmCfgLock= true(绕过CFG Lock)DisableIoMapper= true(绕过VT-d)XhciPortLimit= true(USB端口限制,安装后可关)
改完这四处,保存config.plist。ProperTree会自动检查语法,如果有错误会提示。确认无误后关闭。
验证检查点:启动盘做成功了吗?
三个检查点确认一下。
检查点1:U盘根目录结构完整
确认有这两个文件夹:com.apple.recovery.boot/(里面有BaseSystem.dmg和chunklist)、EFI/(里面有BOOT和OC两个子文件夹)。
检查点2:config.plist已修改且SMBIOS已填写
用ProperTree打开EFI/OC/config.plist检查:SystemSerialNumber不是空的、SystemUUID不是全0、boot-args里包含agdpmod=pikera。
检查点3:BIOS能识别U盘为UEFI启动项
重启进BIOS(技嘉主板一般按Del键),进Boot选项看启动项列表,应该能看到UEFI: <U盘名称>这样的选项。看到了说明BIOS识别到了U盘的UEFI启动。
三个都过了,启动盘就算做好了。
启动盘做好了,接下来呢?
从决定装黑苹果到启动盘制作完成,准备工作算是完了。U盘做好了,BIOS改好了,EFI配置也调好了,理论上可以启动。
但我当时还不知道,真正的挑战才刚开始。下一篇讲插上U盘开机后的事:OpenCore启动菜单、白字日志满屏跑、RX 6600 XT的黑屏问题,以及agdpmod=pikera这个参数到底起什么作用。
补充:关于显卡的额外提醒
如果你的显卡不是RX 6600 XT,而是其他AMD卡(比如RX 580、RX 5700 XT等),boot-args里的agdpmod=pikera可能不需要,或者要换成别的参数。具体看显卡型号和架构:
- RX 400/500系列(Polaris):通常不需要agdpmod
- RX 5000系列(Navi 10/14):部分需要agdpmod=pikera
- RX 6000系列(Navi 21/23/24):大部分需要agdpmod=pikera
N卡的情况更复杂,macOS从High Sierra之后基本不支持了,这里不展开。