NAVIGATION SYS
首页折腾手记造点东西投资笔记做点音乐想点事情

NCC-1701-D // SYSTEM ONLINE

Deep Space Viewport
折腾手记

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

舸扬
折腾手记
发布: 2026-07-06
更新: 2026-07-13
标签黑苹果macOS
📚 本文属于系列:黑苹果折腾记
1/1
黑苹果折腾记(一):换显卡、做启动盘,14GB镜像下载了个寂寞
本文字数:4158预计阅读:11 分钟

免责声明
本系列文章仅供技术学习和探索交流使用。黑苹果(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-dCFG 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不是完整镜像,是一个下载器。它的工作原理是:

  1. 你在macOS环境下运行这个pkg
  2. pkg联网到苹果服务器下载完整系统文件(那12GB的镜像)
  3. 下载完成后才开始安装

问题在哪?这个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窗口”。

输入命令(一行,回车):

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)关键!不要选镜像文件
分区方案GPTmacOS只支持GPT,不是MBR
目标系统UEFI (non CSM)纯UEFI模式
文件系统Large FAT32UEFI启动的标准格式

最关键的是引导选择要选“不启动”。因为我们不是用Rufus直接写镜像,而是先格式化U盘,再手动放Recovery文件,这是OpenCore官方推荐的做法。

设好点“开始”,Rufus弹窗提示U盘将被格式化,确认后开始。几秒钟就完成(只是格式化,没写镜像)。

第三步:手动放置Recovery文件

格式化完成后打开U盘根目录,现在里面是空的。

新建一个文件夹,名字必须一模一样com.apple.recovery.boot

注意:全小写,点号在中间不是下划线,一个字母都不能错。

然后把刚下载的BaseSystem.dmgBaseSystem.chunklist复制进这个文件夹。现在U盘结构应该是:

TERMINAL
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盘的完整结构应该是:

TERMINAL
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里找到PlatformInfoGeneric,里面有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的PlatformInfoGeneric

  • 第一行(Serial Number)→ SystemSerialNumber
  • 第二行(Board Serial Number / MLB)→ MLB
  • 第三行(SmUUID)→ SystemUUID

必改参数3:boot-args,添加agdpmod=pikera

在config.plist里找到NVRAMAdd7C436110-AB2A-4BBB-A880-FE41995C9F82boot-args(启动参数)。

这一项是启动参数,告诉OpenCore启动时加载哪些选项。推荐设置为:

TERMINAL
-v keepsyms=1 debug=0x100 alcid=1 agdpmod=pikera

各参数含义:

  • -v:verbose模式(详细日志模式),显示详细启动日志,调试时很有用
  • keepsyms=1 debug=0x100:内核panic时保留符号,方便排查
  • alcid=1:声卡注入ID,ALC887芯片先试1,不行再换7/11/13
  • agdpmod=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里用软件补丁绕过。找到KernelQuirks,确认以下几项为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之后基本不支持了,这里不展开。

// 发射信标 — BROADCAST
微博X
END OF LOG_
ID: HACKINTO
📚 本文属于系列:黑苹果折腾记
1/1