后台隔三差五就有人问我:“博主,有没有 macOS 的 dmg 镜像下载链接?给一个呗。”我的回答基本都是同一句:别在网上下,官方明明能自己拉。很多人觉得 macOS 系统镜像这种重货,一定要靠第三方工具或者别人整理好的网盘链接才能搞到手,其实从苹果官方渠道直接下载完整安装器,全程不需要装任何额外软件,而且下载下来的东西签名完整、哈希可验证,比你从陌生站点拖回来的 dmg 安全得多。
这篇指南就是围绕“macOS 官方镜像下载”这件事展开的。我会讲清楚为什么不推荐第三方站点,官方渠道有哪些,重点演示用 softwareupdate 命令行和 App Store 两种“零第三方工具”的方式拿到安装器,再教你从安装器里提取 dmg、制作启动盘甚至转 iso 给虚拟机用。无论你是准备重装系统、给电脑升个级,还是想在虚拟机上体验新版 macOS,看完这篇都能自己动手搞定。
这里先提前说一句:全文提到的命令和路径,都是 macOS 系统自带的,不需要你去 GitHub 拉脚本,也不需要安装任何图形化下载器。你在自己的 Mac 上打开终端,复制命令回车,就能看到我看到的东西。
1. 先搞清楚:macOS 镜像到底去哪找
1.1 为什么“直接搜 dmg 下载”是坑
很多朋友习惯谷歌一下“macOS dmg 下载”,然后点进各种“macOS 某某版本官方镜像”的页面。这类站点看起来挺正规,标题写着“官方原版”“高速下载”,进去之后要么让你先下个下载器,要么给你一个几十 GB 的网盘链接,解压密码还要加群才有。先说结论:这条路大概率踩坑,而且不止一个小坑。
第一是安全风险。你无法确认第三方站点有没有在 dmg 里植入额外的东西。这些年安全圈里出现过不少“伪装成系统镜像的恶意软件”案例,甚至有人在镜像里塞了挖矿脚本,装完系统之后 CPU 一直在偷笑。你辛辛苦苦下载了几个小时,最后系统没装上,反而把个人信息送出去了,这个买卖太亏。
第二是版本错乱。macOS 的大版本和机型有严格的对应关系,M 系列芯片和 Intel 芯片能装的不完全一样。第三方站点为了流量往往标题党,你下载回来发现“无法安装此版本”,或者安装到一半才提示固件不兼容,白白浪费时间。
第三是文件损坏。网盘下载大文件很容易出现校验不一致的情况,而第三方站点很少提供官方哈希值。你根本不知道自己下载的文件是否完整,装到一半卡住或者提示安装器损坏,又得从头再来。
所以,官方渠道才是唯一靠谱的答案。官方下载的其实不是传统意义上的“一个 dmg 文件”,而是一个Install macOS 某某.app安装器。这个 app 从结构上看是一个目录包,里面装着真正用于安装系统的内核镜像、恢复系统、固件等内容——也就是你真正想要的 dmg 类文件,只是苹果把它们封装在 app 里了。后面我会专门讲怎么把里面的 dmg 取出来。
1.2 官方渠道就这三条
苹果给普通用户准备的正规获取渠道,不绕弯,就三条。
| 渠道 | 适用场景 | 是否需要第三方工具 | 操作难度 |
|---|---|---|---|
| App Store 搜索下载 | 老版本图形化获取,适合不习惯命令行的用户 | 否 | 低 |
| 系统设置 / 软件更新 | 在线升级到下一代大版本 | 否 | 低 |
| softwareupdate 命令行 | 批量下载、指定版本、脚本化操作 | 否 | 中 |
| Apple 支持页面下载 | 获取特定版本的 InstallAssistant.pkg | 否 | 中 |
这里面最值得掌握的是 softwareupdate 命令行。它下载的就是完整安装器,而且支持指定大版本和小版本,比你打开 App Store 慢慢翻靠谱得多。至于 App Store,在最近几年的大版本里已经“改版”了,很多时候你搜不到安装器,只能通过系统设置里的软件更新触发下载。Apple 支持页面则更适合去找一些旧版本安装包,比如 Catalina、Monterey 的老版本。
顺着这个思路,下面从最推荐的命令行方案开始。
2. 首选方案:softwareupdate 命令行下载完整安装器
2.1 三条核心命令
从 macOS Catalina 后期开始,系统自带的 softwareupdate 工具就支持直接获取完整安装器,不需要打开任何图形界面。整个过程说白了就是三条命令。
第一步,先看看官方目前开放了哪些完整安装器。
softwareupdate --list-full-installers我的机器上运行之后,会列出一串类似下面的信息:
Finding available software Scanning for eligible installations on this Mac Installation User: xxx Software Update found the following full installers: 14.5 macOS Sonoma - 13.85 GB 13.6.7 macOS Ventura - 13.6 GB 12.7.5 macOS Monterey - 12.9 GB注意列表里的“13.85 GB”是安装器在下载时的体积,不是安装完系统的占用空间。你也能看到苹果只会保留最近几个大版本的全量安装器,更老的版本不会出现在列表里。
第二步,直接下载最新或指定版本。
# 下载列表里找到的最新版 softwareupdate --fetch-full-installer # 指定版本下载,例如 Sonoma 14.5 softwareupdate --fetch-full-installer --full-installer-version 14.5不指定版本时,会默认下载当前最新的大版本。指定版本时,版本号要写全,比如 14.5 而不是 14。如果版本号写错,命令会直接报错找不到匹配项。
第三步,等命令跑完,去 /Applications 目录里找安装器。
ls /Applications | grep "Install macOS"正常情况下你会看到类似Install macOS Sonoma.app的东西出现在列表里。到此为止,官方安装器已经完整落到本地,全程没碰任何非系统自带工具。
2.2 下载过程中那些容易被忽略的细节
用命令行下载看似简单,实际执行起来有几个细节如果不注意,很容易让人误以为“卡住了”。
第一个细节是输出几乎不动。softwareupdate --fetch-full-installer在下载阶段可能长时间不显示进度百分比,终端里只有一行“Downloading full installer……”或者干脆什么都不刷。这时候千万别急着 Ctrl+C,下载是在后台进行的。你可以打开活动监视器,在“网络”标签里看有没有进程在大量上传下载数据,确认它还在干活。
第二个细节是磁盘空间。完整安装器动辄 13GB 以上,下载过程还会额外占用临时空间,实际建议至少留 25GB 可用空间。如果空间不够,命令会在下载到一半时突然报错退出,而且不会告诉你具体缺多少。
第三个细节是断点续传。这个命令不能像下载器那样按进度续传,中断之后重新执行,它会重新开始。不过苹果的 CDN 速度通常不慢,现在宽带网络下,大版本安装器 20 到 40 分钟拉完属于正常水准。你要是反复下载到一半断掉,可以先检查磁盘空间、换一个网络环境再试,别硬刚。
第四个细节是系统版本限制。如果你的 Mac 还在 Mojave 或更早的系统上,softwareupdate 不一定支持--fetch-full-installer。老系统请直接跳到后面讲 App Store 的部分。
2.3 拿到 app 之后先做三件事
下载完成后不要急着双击安装,建议先做三件事,等于给安装器做个“体检”。
第一,校验签名。在终端里执行:
codesign -v --verbose "/Applications/Install macOS Sonoma.app"没有任何错误输出,就说明 app 签名是完整有效的。苹果会用自己的开发者证书给安装器签名,如果签名不通过,八成是下载过程中文件损坏或者被动过手脚。
第二,计算哈希。如果你从别的机器上拷贝过安装器,或者想在未来某个时间点验证文件完整性,可以先算一个 SHA-256 存起来:
shasum -a 256 "/Applications/Install macOS Sonoma.app/Contents/SharedSupport/SharedSupport.dmg"不同版本的哈希值不一样,苹果官方没有集中公布每个版本的哈希列表,但社区中流传的版本哈希可以拿来参考。重点不是去背哈希,而是养成“下载完先算一遍再动手”的习惯,尤其当你手头安装器是同事或朋友拷贝给你的时候。
第三,用磁盘工具或 Finder 把它拷到你准备好的移动硬盘上。安装器 app 是可以直接复制的,复制完在别的机器上一样能用。这样你就有了一份离线备份,以后重装系统不需要再重新下载十几 GB。我一般会专门留一块移动硬盘,按版本号建立目录,把安装器统一归档,省得每次急用的时候到处找。
3. 图形化方案:App Store 与官方支持网页
3.1 App Store 里怎么稳定获取
如果你不想碰命令行,App Store 是另一个零第三方工具的选择。不过在较新的系统版本上,直接在 App Store 里搜索“macOS”有时候找不到安装器,苹果已经把这套逻辑梳理得很绕了。
在 Catalina 或更早的系统上,你打开 App Store 搜索“Catalina”或者“Mojave”,通常能看到对应的 macOS 页面,点“获取”之后会自动下载安装器到应用程序文件夹。这个流程在老系统上非常稳定。
但在 Big Sur 及之后的系统上,App Store 里基本搜不到新版本的安装器页面。苹果把系统升级入口收敛到了“系统设置 → 通用 → 软件更新”。你点“软件更新”里的升级提示,系统会在后台把完整安装器下载到 /Applications 里。很多人不知道的是,这时候下载的其实就是一个Install macOS 某某.app,在“软件更新”提示“正在准备安装”的时候,只要你不立即重启,它就会一直待在应用程序文件夹里。如果你只想保留安装器而不想立刻升级,可以打开活动监视器,找到softwareupdated进程在下载,等它下载完,去 /Applications 目录把安装器复制走,然后忽略重启提示就行。
这里有一个实操技巧:如果“软件更新”只提示“您的 Mac 是最新版本”,看不到其他大版本升级入口,可能是你当前系统太老,无法直接跨版本跳转。比如你在 Catalina 上,系统不会主动给你推送 Sonoma。这种时候要么先用后面讲的支持页面下载方式拿安装器,要么先手动升到中间版本,再继续跳。
3.2 老版本系统去哪下
想下载旧版本的 macOS 安装器,上面两条渠道都不一定好使。苹果其实在官方支持站点挂了历史版本的下载入口。打开苹果官网的支持页,搜索“如何下载 macOS”,能找到一篇名为“如何下载和安装 macOS”的支持文章,里面列出了从 Ventura 到 Catalina 等多个版本的外链。点击链接后,系统会用两种方式之一做出响应:要么弹出 App Store 对应页面,要么直接把下载请求转给“软件更新”,甚至有的老版本会直接通过浏览器下载一个 InstallAssistant.pkg 文件。
InstallAssistant.pkg 是苹果分发的安装包格式,双击之后它会把你需要的那版安装器装进 /Applications。下载它不需要第三方工具,用的是浏览器自带下载。
需要注意的是,老版本安装器不一定能在最新芯片的新机器上运行。比如 M3 系列的 MacBook Air,官方支持的最低版本可能是 Sonoma 或 Ventura 之后的版本。你要是在新机器上强行安装一个远古版本,安装程序会直接拒绝或者卡在固件验证阶段,因为系统里缺少对应机型的桥接固件。
另外,苹果对旧版本的“分发有效期”做得很隐蔽。有时候支持页面看起来有链接,点进去却提示“此项目当前不可用”。这不是你的问题,是苹果那边关闭了该版本的新增下载。遇到这种情况,就要用到 3.3 里的目录解析技巧,或者直接接受现实,用 available 列表里能下载到的最高版本。别钻牛角尖,系统太老不是用三方包的理由,官方不给的版本,你从别处拿回来也大概率装不上。
3.3 进阶:解析软件更新目录抓安装包
不甘心只下载列表里那几个版本,想自己找更精确或者更旧的官方安装包,可以用另一个系统自带能力:软件更新目录(sucatalog)。
软件更新目录是一份巨大的 plist 文件,记录了苹果 CDN 上几乎所有与系统更新相关的资源地址。里面不只有增量更新包,也包含完整安装器 InstallAssistant.pkg 的下载链接。用系统自带的 curl、plutil、grep 工具就能解析它。
大致流程如下:
# 1. 下载最新的软件更新目录 curl -O "https://swscan.apple.com/content/catalogs/others/index-15-14-13-12-10.16-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog.gz" # 2. 解压 gunzip -k *.sucatalog.gz # 3. 用 plutil 把 plist 转成 JSON,方便搜索 plutil -convert json -o sucatalog.json *.sucatalog # 4. 从 JSON 里把所有 InstallAssistant.pkg 地址捞出来 grep -o 'https://[^"]*InstallAssistant.pkg' sucatalog.json | sort -u执行完最后一步,你会看到一批形如https://swdlcdn.apple.com/...的官方下载地址。随便挑一个,用 curl 或浏览器下载,拿到的就是官方签名的完整安装包。
这个方法的本质是“代替软件更新客户端去问苹果要下载地址”,用的全部是 macOS 自带工具。要提醒一句,你挖出来的地址在时效性上并不保证永久有效,苹果有可能会在某个版本停止分发后同时关掉 CDN 链接。而且这个目录内容非常庞大,第一次跑 grep 的时候输出会很多,耐心筛选即可。
4. 从安装器里提取 dmg:启动盘与虚拟机两手抓
4.1 安装器结构:InstallESO.dmg 与 SharedSupport.dmg
很多人从头到尾想要的就是一个 dmg 镜像文件。理解安装器内部结构,这一步才有意义。
不同版本的 macOS 安装器,内部结构是不一样的。
Catalina 及更早的系统,安装器 app 内部存在一个Contents/SharedSupport/InstallESO.dmg文件。这个 dmg 是整个系统的安装镜像核心。到了 Big Sur 之后,苹果改成了Contents/SharedSupport/SharedSupport.dmg,它里面同时包含了系统镜像、恢复系统以及固件更新资源。Big Sur 到目前最新版本,基本沿用这个结构,只是个别版本会追加一些小型组件。
这个变化带来的直接影响是:你在网上看到的老教程如果教你从安装器里提取 InstallESO.dmg,在 Big Sur 之后的安装器里可能会扑空。正确做法是直接看Contents/SharedSupport/目录下到底放了什么东西,再决定下一步。
查看内部文件很简单,右键安装器 app,选择“显示包内容”,一路进到 Contents/SharedSupport/ 就能看到。你手动提取的脚本逻辑也可以围绕这个目录展开。
4.2 制作官方启动U盘(无需第三方工具)
拿到官方安装器之后,最常用的操作之一就是制作启动 U 盘。macOS 自带 createinstallmedia 命令,它就藏在安装器 app 的 Contents/Resources 目录里。
先准备一个至少 16GB 的 U 盘,建议用 32GB 或更大,速度尽量选 USB 3.0 以上。把 U 盘插到 Mac 上,打开“磁盘工具”,将它抹掉,格式选择Mac OS Extended(日志式),方案选GUID 分区图,名称可以起成MyVolume或者任何你喜欢的英文名。
然后打开终端,执行:
sudo "/Applications/Install macOS Sonoma.app/Contents/Resources/createinstallmedia" --volume /Volumes/MyVolume --nointeraction命令里的路径要替换成你实际的安装器名称和 U 盘卷名。--nointeraction参数会跳过交互确认,适合脚本化执行,实际手动操作时加不加都行。执行过程中系统会先把 U 盘完全抹掉,再把安装器数据写入,最后显示Install media now ready之类的提示。
命令执行完,这个 U 盘就具备了引导安装的能力。它跟你在 App Store 里点下载后看到的安装包不同,启动 U 盘是一个完整的安装介质,可以给这台 Mac 重装系统,也可以插到别的兼容 Mac 上引导安装。整个流程没有任何图形化第三方工具的参与,官方原汁原味。
要是你想“把整个硬盘的 macOS 系统克隆到外置优盘”,那不属于 createinstallmedia 的职责,它创建的是全新安装介质,不会迁移你现有的用户数据和应用。做全盘克隆需要用到“恢复模式”里的磁盘工具恢复功能或者asr命令,那是另一个话题。
4.3 把 dmg 转 iso 给虚拟机用
有些朋友是想把 macOS 装进虚拟机,比如用 VMware 或者 UTM。这种情况下 dmg 文件往往不能直接挂载,你更想要一个 iso 镜像。
先说说怎么拿到 dmg。如果你用的是 Big Sur 之后版本的安装器,直接进入安装器包内容,把SharedSupport.dmg复制出来就行:
cp "/Applications/Install macOS Sonoma.app/Contents/SharedSupport/SharedSupport.dmg" ~/Desktop/如果你手头只有 InstallAssistant.pkg,可以用系统自带的 pkgutil 工具解包,它会展开出里面有价值的 payload:
pkgutil --expand-full "InstallAssistant.pkg" ~/Desktop/pkg_expand展开之后,在不同的 pkg 版本中你可能会看到InstallESO.dmg、SharedSupport.dmg或者一个完整的Install macOS 某某.app。找到对应的镜像文件,先挂载起来看看内容有没有问题:
hdiutil attach ~/Desktop/SharedSupport.dmg -noverify挂载成功后,在 /Volumes 下会多出一个卷宗,这个卷宗本质上是可引导的安装盘。如果你想把它做成 iso,可以用 hdiutil 先创建一个空白 dmg,把安装器放进去,再通过 makehybrid 转换成 iso。参考命令如下:
# 1. 创建空白 dmg,大小根据安装器实际尺寸调整 hdiutil create -o /tmp/macOS_seat.dmg -size 16g -layout SPUD -fs HFS+J # 2. 挂载空白 dmg hdiutil attach /tmp/macOS_seat.dmg -noverify -mountpoint /Volumes/macOS_build # 3. 把安装器 app 复制进空白 dmg sudo cp -R "/Applications/Install macOS Sonoma.app" /Volumes/macOS_build/ # 4. 用 makehybrid 生成 iso hdiutil makehybrid -iso -joliet -o /tmp/macOS_Sequoia.iso /Volumes/macOS_build # 5. 停用并清理临时 dmg hdiutil detach /Volumes/macOS_build这个流程做出来的 iso 实际上是一个包含完整安装器 app 的镜像。在虚拟机软件里把它作为光驱加载,开机按住 Option 键或者直接选光盘启动,理论上可以进入安装界面。如果你的虚拟机引导不顺利,更稳妥的做法是先把官方启动 U 盘做好,再把 U 盘设备直通给虚拟机。不同虚拟机对 macOS 启动介质的支持程度差异很大,这点要有心理准备。
还要注意机型架构的问题。M 系列芯片的 Mac 只能虚拟化 ARM 版 macOS,x86 版的镜像在 Apple Silicon 虚拟机上没法跑;反过来,Intel 芯片的虚拟机也无法直接启动 ARM 版。下载安装器之前先搞清楚自己环境的架构,别折腾半天发现根本搭不上边。
5. 常见问题与排查技巧实录
5.1 “无法获取完整安装器”怎么破
用 softwareupdate 下载时,偶尔会遇到No such update或者Could not find the requested version这类报错。先别慌,按顺序排查。
首先,确认你指定的小版本号还存在。苹果会定期关闭旧版本的分发,你写了一个已经下线的版本号,命令就会找不到。解决办法是去掉版本号参数,只跑softwareupdate --fetch-full-installer看它能给什么;或者用--list-full-installers拉一遍当前可用的版本列表,拿列表里的版本号重新指定。
其次,检查系统版本是否过老。softwareupdate 的完整安装器功能在 Catalina 之后才逐渐普及,老系统上的 softwareupdate 根本没有这个选项,自然报错。这种时候换用 App Store 或者支持页面渠道。
第三,如果报错信息提到“网络连接失败”之类,先检查代理设置。很多公司或者宿舍网络会强制走一层代理,而 softwareupdate 命令有时候不会自动读取系统代理配置。清除环境变量里的 http_proxy / https_proxy 再试,或者换成手机热点网络测试。
5.2 下载速度慢、老是中断怎么办
大版本安装器十几 GB,长时间下载中偶尔中断很正常。我的经验是做好三步准备。
第一步,下载前确保磁盘空间充足,前面提过至少留 25GB。这个很多人忽略,下载到 90% 才报磁盘已满,非常崩溃。
第二步,选择合适的网络和时间段。苹果 CDN 在国内高峰时段的速度会明显下降,你换到清晨或者深夜试,速度可能快一倍不止。不是玄学,是真有区别。
第三步,如果局域网里有人在打游戏或者看高清视频,带宽争抢会导致下载过程非常不稳定。直接给 Mac 插网线,或者用手机 5G 热点跑一次,往往能解决中断问题。
最后再补一句:下载速度慢的时候别反复 Ctrl+C 重来。中断后重新执行下载命令会从头开始,你之前等的那半小时就白等了。宁可多等一会儿让它自己跑完,也别手贱中断。
5.3 安装器提示损坏/未签名怎么处理
下载完安装器,双击运行却提示“安装器已损坏,请将它移到废纸篓”,这个弹窗在 macOS 上极其常见,而且十有八九不是安装器真的损坏了。
最常见的原因是系统时间不对。新装系统或者长时间没有联网同步时间的机器,时间基准偏差过大时,系统对代码签名的验证会失败,从而误报“已损坏”。解决办法是打开“系统设置 → 通用 → 日期与时间”,确保“自动设置时间与日期”已打开,或者干脆重启一次路由器和 Mac。
如果时间没问题,再用 codesign 手动验证一次:
codesign -v --verbose "/Applications/Install macOS Sonoma.app"如果签名验证失败,并且文件是通过网络下载的,建议删除重下。如果是从 U 盘或者移动硬盘拷贝的,先确认源文件在源机器上签名是否正常,再考虑是不是拷贝过程中文件结构被破坏。
还有一个隐蔽原因是 macOS 的安全策略太严。默认情况下从浏览器下载的 app 会被标记为“来自互联网”,双击时需要在访达里右键选择“打开”,再点“打开”按钮才能绕过 Gatekeeper 的警告。这不是损坏,只是安全机制。
5.4 问题速查表
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| --list-full-installers 只有少量版本 | 苹果关闭了老版本分发 | 用 --fetch-full-installer 获取当前可用版本 |
| 下载到一半中断,进度清零 | 磁盘空间不足/网络抖动/代理干扰 | 清理空间、换网络、别乱中断 |
| 安装器提示已损坏 | 系统时间不准/签名校验失败 | 校准时间、重新验证签名、重新下载 |
| 安装器提示不适用于此机型 | 版本太老/固件不匹配 | 改下载新版安装器,或换兼容设备 |
| 新机器想装老版本系统 | Apple 已关闭分发 | 老老实实装官方支持的新版本 |
| 虚拟机不识别 iso | 架构不对/镜像结构不适合当前虚拟机 | 做官方启动 U 盘直通,或换用 UTM/VMware 相应配置 |
我个人在实际操作中的体会是,macOS 镜像下载这件事,九成以上的问题都出在“不信任官方渠道”和“文件来源不可验证”上。只要你能忍住不去点那些来路不明的网盘链接,坚持用系统自带的命令或官方支持站点,整个流程其实比想象中顺畅很多。最后再分享一个小技巧:每次下载完安装器,复制一份存进移动硬盘或者 NAS,顺手记下版本号和 SHA-256 哈希,时间久了你会攒下一个“官方安装器离线库”,以后不管是给同事救急还是给虚拟机装系统,都是几分钟的事。