可启动ISO是如何造出来的?图解macos-iso-builder的hdiutil与createinstallmedia镜像流水线(无需Mac)
【免费下载链接】macos-iso-builderGenerate bootable macOS installer ISO or DMG images directly from Apple servers via GitHub Actions - no Mac required. Mac OS X 10.7 - macOS 26 Tahoe项目地址: https://gitcode.com/gh_mirrors/mac/macos-iso-builder
macos-iso-builder是一个「无需 Mac 电脑」就能生成 macOS 可启动安装镜像的开源项目:一条命令触发云构建流水线,全程自动完成从 Apple 官方服务器下载安装器、用createinstallmedia写入磁盘、再由hdiutil打包成 ISO 或 DMG 的完整过程,覆盖 Mac OS X 10.7(2011)到 macOS 26 Tahoe(2025)。本文图解这条镜像流水线的每一步,并给出新手最省事的 5 分钟上手路径。
📦 它到底能给你什么?两种镜像格式
构建产物分为两种,各有所长(对比见 README.md 的 Disk Image Formats 表格):
| ISO | DMG | |
|---|---|---|
| 最佳用途 | 虚拟机(Proxmox / QEMU / VMware / VirtualBox) | 制作可启动 U 盘 |
| 挂载方式 | 当作虚拟 DVD 挂入 | 用dd/ Rufus 写入 U 盘 |
| 内部布局 | Hybrid UDF/HFS | 原始 GPT 磁盘镜像 |
简单记忆:虚拟机选 ISO,U 盘选 DMG。
🔧 镜像流水线全景:5 步造出一张可启动镜像
整条流水线由 mkmaciso 脚本驱动(约 1600 行 shell),运行在云端 Mac 迷你主机的 runner 上。核心流程如下:
第 1 步:从 Apple 官方服务器下载安装器
脚本根据你选的版本(sonoma、tahoe等)查询 Apple 的官方更新目录,用curl把完整的安装器拉下来,并安装到云端 Mac 的/Applications。老版本(Lion、Mavericks 等)有各自的下载协议,脚本已内置全部 14 个版本的支持逻辑。
第 2 步:hdiutil create凭空造出一块"虚拟磁盘"
这是整个流程最巧妙的地方——没有实体 U 盘,hdiutil直接在本地磁盘上创建一个可写入的磁盘镜像文件,效果等同于一块真实磁盘:
- 做 ISO:
hdiutil create -type SPARSE -attach创建 20GB 稀疏镜像并挂载; - 做 DMG:
hdiutil create -type UDIF创建按版本定容(7g~20g)的 GPT 磁盘镜像。
第 3 步:createinstallmedia把安装器写入"磁盘"
这是 Apple 安装器 App 内置的官方工具,原本用于把 U 盘做成启动盘。脚本把它指向第 2 步造出的虚拟卷:
sudo 'Install macOS Sequoia.app/Contents/Resources/createinstallmedia' --volume /Volumes/xxx_iso --nointeraction执行完毕后,这块"磁盘"里就有了完整的系统分区 + 引导分区(ESP),和真实 U 盘一模一样。相关逻辑见 mkmaciso。
第 4 步:hdiutil makehybrid把磁盘"烤"成 ISO
ISO 分支用makehybrid将稀疏镜像转成Hybrid UDF/HFS光盘镜像,兼容 CD/DVD 光驱规范,因此虚拟机可以直接当虚拟光驱挂载:
sudo hdiutil makehybrid -quiet -ov -hfs -udf installer.sparseimage -o macOS_Sequoia_x.x.iso第 5 步:DMG 分支的瘦身优化
DMG 分支则保留可写磁盘格式(供dd写入 U 盘),最后用diskutil resizeVolume+hdiutil resize -size min把镜像收缩到最小实际占用,避免交付一个 20GB 的空壳文件。详见 mkmaciso。
🚀 新手最快上手:5 步云端构建(无需 Mac)
- Fork 仓库到你的账户;
- 进入Actions选项卡,点击绿色的 "I understand my workflows, go ahead and enable them" 按钮启用工作流;
- 在左侧选择工作流:
- Recovery ISO(推荐):小型恢复镜像,2–5 分钟出片,适合虚拟机;
- Full Installer:完整离线安装镜像,5–18GB,耗时 5–60 分钟;
- 点击Run workflow,填入macOS 版本(Tahoe / Sequoia / Sonoma…)与镜像格式(
iso或dmg); - 构建完成后,在页面底部的Artifacts区域点击文件名(如
macOS_Sequoia_15.7.4.iso)即可下载。Recovery ISO 为 zip 压缩,下载后先解压。
两条工作流的完整配置可分别查看:build-macos-image.yml(完整安装镜像)和 build-recovery.yml(恢复镜像,其中还演示了直接用hdiutil makehybrid -hfs -udf从BaseSystem.dmg快速打包 ISO 的精简路径,见 build-recovery.yml)。
💡 开始构建前,可先看看项目 Release 页——别人可能已经替你构建好了你要的版本,直接下载即可。
💻 已经有 Mac?本地一条命令跑流水线
本地运行只需要 macOS 10.9 以上(11+ 更佳)、20–40GB 空闲空间和sudo权限。在终端用curl拉取 mkmaciso 脚本后执行,例如构建 Tahoe 的 ISO:
./mkmaciso tahoe iso ./mkmaciso 14 dmg # 指定版本号和格式 ./mkmaciso # 不带参数则进入交互菜单Apple Silicon 用户注意:部分老版本(Sierra、Catalina 等)的createinstallmedia在 ARM 上会失败,脚本会自动切换到hdiutil convert+resize的备用方案(alt method)兜底,无需人工干预。
📋 常见问题速查
Q:ISO 能写入 U 盘吗?ISO 是光盘格式,推荐 VM 场景;U 盘请选dmg格式,再用 Rufus(Windows)或dd(Linux)写入。
Q:DMG 为什么带.img后缀(如macOS_Sequoia.dmg.img)?为了让 Rufus 在 Windows 资源管理器中默认就能识别它,无需切换"所有文件"过滤器。
Q:构建失败了怎么办?大概率是 runner 网络波动,直接重新运行工作流即可(会自动换一台 runner);连续 3 次后系统会跳过重复检查直接进入构建。
Q:支持哪些版本?几乎全覆盖:Lion (10.7)、Mountain Lion、Mavericks、Yosemite、El Capitan、Sierra、High Sierra、Mojave、Catalina、Big Sur、Monterey、Ventura、Sonoma、Sequoia、Tahoe (26)。
✅ 小结
macos-iso-builder 把 macOS 镜像构建压缩成了一条清晰的自动化流水线:Apple 官方源下载 → hdiutil 虚拟磁盘 → createinstallmedia 写入 → hdiutil 打包/瘦身,再借助云端 Mac runner,让你零成本拿到官方来源的可启动 ISO 或 DMG。虚拟机玩家选 Recovery ISO 快速起步,离线装机需求选 Full Installer 一次到位。
【免费下载链接】macos-iso-builderGenerate bootable macOS installer ISO or DMG images directly from Apple servers via GitHub Actions - no Mac required. Mac OS X 10.7 - macOS 26 Tahoe项目地址: https://gitcode.com/gh_mirrors/mac/macos-iso-builder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考