制作可引导的 macOS 系统安装镜像

内容纲要

查看「 Apple 专题」获取更多相关内容


如果需要已经制作好的系统镜像可查看此文:下载可引导的 macOS 系统安装镜像及制作安装 U 盘

获取官方系统镜像

Apple 在官网 如何下载 macOS 列出了大部分的 macOS 官方下载地址:

系统下载
Sonoma 14点击下载
Ventura 13点击下载
Monterey 12点击下载
Big Sur 11点击下载
Catalina 10.15点击下载
Mojave 10.14点击下载
High Sierra 10.13点击下载
Sierra 10.12点击下载
El Capitan 10.11点击下载
Yosemite 10.10点击下载
Mountain Lion 10.8点击下载
Lion 10.7点击下载

制作可引导的系统镜像

macOS 10.13 +

从 macOS 10.13 开始 Apple 官方提供的下载方式,在下载完成后就直接是以 安装.app 的形式存入到「应用程序」目录,所以和旧版本有所不同

打开「磁盘工具」,在顶部菜单选择「文件」>「新建映像」>「空白映像」,然后如下图:
制作可引导的 macOS 系统安装镜像

  • 「存储为」及「名称」设置为 Temp
  • 「大小」的设置,由于 macOS 从 Big Sur 开始急剧扩大,所以 Catalina 及之前可以粗略设置为 10 GB,之后粗略设置为 15 GB
  • 「格式」设置为「Mac OS扩展(日志式)」;
  • 「分区」为设置为「单个分区 - Apple 分区图」;
  • 「映像格式」为「读/写」;

然后使用命令将镜像写入到 Temp.dmg 中:

# 以下命令根据系统版本选择

# macOS Sonoma
sudo /Applications/Install\ macOS\ Sonoma.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp --nointeraction

# macOS Ventura
sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp --nointeraction

# macOS Monterey
sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp --nointeraction

# macOS Big Sur
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp --nointeraction

# macOS Catalina
sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp --nointeraction

# macOS Mojave
sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp --nointeraction

# macOS High Sierra
sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp --nointeraction

看到返回结果:

Erasing disk: 0%... 10%... 20%... 30%... 100%
Copying essential files...
Copying the macOS RecoveryOS...
Making disk bootable...
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 100%
Install media now available at "/Volumes/Install macOS ..."

表示成功,接着将「磁盘工具」的「磁盘映像」全部「推出」

最后,为了压缩体积,在顶部菜单选择「映像」>「转换」,选择 Temp.dmg 文件并存储命名为 InstallESD 到桌面:
制作可引导的 macOS 系统安装镜像

这个新的 InstallESD.dmg 文件就是带引导的安装镜像了。

macOS 10.12

在下载好系统镜像 InstallOS.dmg 后双击打开,会看到一个名为「Install macOS」的磁盘映像,不去管它,打开系统自带的「终端」:

# 进入「桌面」文件夹
cd ~/Desktop

# 新建名为「GetInstallESD」的文件夹并进入
mkdir GetInstallESD && cd GetInstallESD

# 解包 InstallOS.pkg
xar -xf /Volumes/Install\ macOS/InstallOS.pkg

此时 GetInstallESD 文件夹内会有三个文件:

.
├── Distribution
├── InstallOS.pkg
└── Resources

接着使用命令:

# 进入 InstallOS.pkg
cd InstallOS.pkg
# 解压 Payload
tar xvzf Payload
# 将 InstallESD.dmg 放入 安装.app
mv InstallESD.dmg Install\ macOS\ Sierra.app/Contents/SharedSupport
# 移动 安装.app 到「应用程序」目录
mv Install\ macOS\ Sierra.app /Applications

然后打开系统自带的「磁盘工具」,先将已打开的「磁盘映像」全部「推出」,然后使用命令:

# 打开磁盘映像文件以确定大小
open /Applications/Install\ macOS\ Sierra.app/Contents/SharedSupport/InstallESD.dmg

然后在顶部菜单选择「文件」>「新建映像」>「空白映像」,然后如下图:
制作可引导的 macOS 系统安装镜像

  • 「存储为」及「名称」设置为 Temp
  • 「大小」设置为使用 open 命令打开的磁盘映像的大小,如上图的 6.29 GB
  • 「格式」设置为「Mac OS扩展(日志式)」;
  • 「分区」为设置为「单个分区 - Apple 分区图」;
  • 「映像格式」为「读/写」;

⚠️ 注意,这里疑似存在一个 Apple 一直没有修复的错误,如果你直接使用命令制作 macOS Sierra 10.12 的安装 U 盘或镜像你会得到类似这样的错误:

createinstallmedia[9499:50215] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Couldn't posix_spawn: error 35'
*** First throw call stack:
(
0   CoreFoundation                      0x00007ff81b7c143b __exceptionPreprocess + 242
1   libobjc.A.dylib                     0x00007ff81b310e25 objc_exception_throw + 48
2   Foundation                          0x00007ff81c615771 -[NSConcreteTask launchWithDictionary:error:] + 5081
3   Foundation                          0x00007ff81c63aeb5 +[NSTask launchedTaskWithLaunchPath:arguments:] + 146
4   createinstallmedia                  0x00000001064bb968 createinstallmedia + 6504
5   dyld                                0x00007ff81b33d310 start + 2432
)
libc++abi: terminating with uncaught exception of type NSException

你可以通过这条命令解决该问题:

sudo plutil -replace CFBundleShortVersionString -string "12.6.03" /Applications/Install\ macOS\ Sierra.app/Contents/Info.plist

然后使用命令将镜像写入到 Temp.dmg 中:

sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp/ --applicationpath /Applications/Install\ macOS\ Sierra.app --nointeraction

看到返回结果:

Erasing Disk: 0%... 10%... 20%... 30%...100%...
Copying installer files to disk...
Copy complete.
Making disk bootable...
Copying boot files...
Copy complete.
Done.

表示成功,接着将「磁盘工具」的「磁盘映像」全部「推出」

最后,为了压缩体积,在顶部菜单选择「映像」>「转换」,选择 Temp.dmg 文件并存储命名为 InstallESD 到桌面:
制作可引导的 macOS 系统安装镜像

这个新的 InstallESD.dmg 文件就是带引导的安装镜像了。

OS X 10.9 ~ 10.11

在下载好系统镜像 InstallMacOSX.dmg 后双击打开,会看到一个名为「Install OS X」的磁盘映像,不去管它,打开系统自带的「终端」:

# 进入「桌面」文件夹
cd ~/Desktop

# 新建名为「GetInstallESD」的文件夹并进入
mkdir GetInstallESD && cd GetInstallESD

# 解包 InstallMacOSX.pkg
xar -xf /Volumes/Install\ OS\ X/InstallMacOSX.pkg

此时 GetInstallESD 文件夹内会有三个文件:

.
├── Distribution
├── InstallMacOSX.pkg
└── Resources

接着使用命令:

# 进入 InstallMacOSX.pkg
cd InstallMacOSX.pkg
# 解压 Payload
tar xvzf Payload

# 以下命令根据系统版本选择

# OS X El Capitan
# 将 InstallESD.dmg 放入 安装.app
mv InstallESD.dmg Install\ OS\ X\ El\ Capitan.app/Contents/SharedSupport
# 移动 安装.app 到「应用程序」目录
mv Install\ OS\ X\ El\ Capitan.app /Applications

# OS X Yosemite
# 将 InstallESD.dmg 放入 安装.app
mv InstallESD.dmg Install\ OS\ X\ Yosemite.app/Contents/SharedSupport
# 移动 安装.app 到「应用程序」目录
mv Install\ OS\ X\ Yosemite.app /Applications
# 打开磁盘映像文件以获取文件大小
open /Applications/Install\ OS\ X\ Yosemite.app/Contents/SharedSupport/InstallESD.dmg

然后打开系统自带的「磁盘工具」,将「磁盘映像」全部「推出」,然后使用命令打开一个磁盘映像文件,这样就可以在「磁盘工具」的「磁盘映像」查看到需要的文件大小:

# 以下命令根据系统版本选择

# OS X El Capitan
open /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/SharedSupport/InstallESD.dmg

# OS X Yosemite
open /Applications/Install\ OS\ X\ Yosemite.app/Contents/SharedSupport/InstallESD.dmg

在顶部菜单选择「文件」>「新建映像」>「空白映像」,如下图设置:
制作可引导的 macOS 系统安装镜像

  • 「存储为」及「名称」设置为 Temp
  • 「大小」设置为使用 open 命令打开的磁盘映像的大小,如上图的 6.08 GB
  • 「格式」设置为「Mac OS扩展(日志式)」;
  • 「分区」为设置为「单个分区 - Apple 分区图」;
  • 「映像格式」为「读/写」;

然后使用命令将镜像写入到 Temp.dmg 中:

# 以下命令根据系统版本选择

# OS X El Capitan
sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction

# OS X Yosemite
sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/Temp --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction

看到返回结果:

Erasing Disk: 0%... 10%... 20%... 30%...100%...
Copying installer files to disk...
Copy complete.
Making disk bootable...
Copying boot files...
Copy complete.
Done.

表示成功,接着将「磁盘工具」的「磁盘映像」全部「推出」

最后,为了压缩体积,在顶部菜单选择「映像」>「转换」,选择 Temp.dmg 文件并存储命名为 InstallESD 到桌面:
制作可引导的 macOS 系统安装镜像

这个新的 InstallESD.dmg 文件就是带引导的安装镜像了。

Mac OS X 10.7 & OS X 10.8

在下载好系统镜像 InstallMacOSX.dmg 后双击打开,会看到一个名为「Install Mac OS X」的磁盘映像,不去管它,打开系统自带的「终端」:

# 进入「桌面」文件夹
cd ~/Desktop

# 新建名为「GetInstallESD」的文件夹并进入
mkdir GetInstallESD && cd GetInstallESD

# 解包 InstallMacOSX.pkg
xar -xf /Volumes/Install\ Mac\ OS\ X/InstallMacOSX.pkg

此时 GetInstallESD 文件夹内会有三个文件:

.
├── Distribution
├── InstallMacOSX.pkg
└── Resources

对着 InstallMacOSX.pkg 文件右键选择「显示包内容」就可以获得 InstallESD.dmg 文件,为了方便后续操作先将这个文件移动出来,比如放到「下载」文件夹中。

然后打开系统自带的「磁盘工具」,先将左侧当前已经挂载的「磁盘映像」全部「推出」,然后再双击「下载」文件夹中的 InstallESD.dmg 文件,或在「磁盘工具」顶部菜单选择「文件」>「打开磁盘镜像」选择打开。

制作可引导的 macOS 系统安装镜像

这一步是为了看到制作这个系统映像所需的容量,例如上图的 5.15GB

然后在「磁盘工具」顶部菜单选择「文件」>「新建映像」>「空白映像」,然后如下图:
制作可引导的 macOS 系统安装镜像

  • 「存储为」及「名称」设置为 Temp
  • 「大小」设置为打开「下载」文件夹中的 InstallESD.dmg 文件后看到的容量;
  • 「格式」设置为「Mac OS扩展(日志式)」;
  • 「分区」为设置为「单个分区 - Apple 分区图」;
  • 「映像格式」为「读/写」;

「位置」设置将其存到「桌面」文件夹,接着在「磁盘工具」左侧列表选择可「读/写」的也就是刚才创建的 Temp
制作可引导的 macOS 系统安装镜像

然后在右上角点击「恢复」按钮,「恢复来源」选择 Mac OS X Install ESD,然后点击「恢复」,完成后将「磁盘映像」全部「推出」

最后,为了压缩体积,在顶部菜单选择「映像」>「转换」,选择 Temp.dmg 文件并存储命名为 InstallESD 到桌面:
制作可引导的 macOS 系统安装镜像

这个新的 InstallESD.dmg 文件就是带引导的安装镜像了。

DMG 转换成 CDR/ISO

使用命令

hdiutil convert InstallESD.dmg -format UDTO -o InstallESD

你可以在输入命令 hdiutil convert 后 (注意末尾加空格) 然后用鼠标将 .dmg 文件拖入终端然后输入命令 -format UDTO -o <文件名> (注意加上空格),然后按下回车键即可

这样转换出来的镜像默认是 .cdr 后缀名,如果需要 .iso 直接改后缀名即可


参考