# 在macOS上创建安装程序

虽然你不需要重新安装macOS来使用OpenCore,但有些用户更喜欢在启动管理器升级时使用新的版本。

首先,我们需要一个macOS的拷贝。如果你只是制作一个可引导的OpenCore而不是安装程序,你可以跳过这个步骤,直接格式化USB。对于其他人,你可以从App Store下载macOS,也可以使用Munki的脚本。

译者注:本指南中所有的安装程序都称为Install macOS.app,而非安装macOS.app

# 下载现代macOS

此方法允许您下载macOS 10.13及更新版本,10.12及更早版本请参见下载旧版macOS

从一台符合你想要安装的操作系统版本要求的macOS机器,直接进入App Store:

对于需要特定操作系统版本或无法从App Store下载的机器:

# 使用App Store

从一台符合你想要安装的操作系统版本要求的macOS机器上,直接到App Store下载所需的操作系统版本,然后继续设置安装程序

# 命令行软件更新实用程序

打开终端窗口,复制粘贴下面的命令:

softwareupdate --list-full-installers;echo;echo "请输入你想下载的版本号:";read;$(if [ -n "$REPLY" ]; then; echo "softwareupdate --fetch-full-installer --full-installer-version "$REPLY; fi);

这将为您提供一个可供选择的可用版本列表。 一旦下载,它将保存在您的应用程序文件夹。 您可以继续设置安装程序

# Munki的InstallInstallMacOS实用程序

运行macOS Monterey 12.3或以上版本的用户注意事项

从macOS Monterey 12.3开始,Apple取消了对' python2.7 '的支持。因此没有它,installinstallmacos.py将抛出以下错误:

This tool requires the Python xattr module. Perhaps run 'pip install xattr' to install it.

为了解决这个问题,我们建议安装Command Line Tools for Xcode,在终端中运行xcode-select --install,然后运行pip3 install xattr

之后,你可以运行下面相同的命令,但使用python3而不是python:

mkdir -p ~/macOS-installer && cd ~/macOS-installer && curl https://raw.githubusercontent.com/munki/macadmin-scripts/main/installinstallmacos.py > installinstallmacos.py && sudo python3 installinstallmacos.py

为了运行它,只需在终端窗口中复制并粘贴下面的命令:

mkdir -p ~/macOS-installer && cd ~/macOS-installer && curl https://raw.githubusercontent.com/munki/macadmin-scripts/main/installinstallmacos.py > installinstallmacos.py && sudo python installinstallmacos.py

正如你所看到的,我们得到了一个很好的macOS安装程序列表。如果你需要一个特定版本的macOS,你可以通过输入旁边的数字来选择它。在这个例子中,我们选择10:

这将需要一段时间,因为我们正在下载整个8GB以上的macOS安装程序,所以强烈建议你在等待的同时阅读指南的其余部分。

完成后,您会在~/macOS-Installer/文件夹中发现一个包含macOS安装程序的DMG。这里以名为Install_macOS_11.1-20C69.dmg的安装程序为例。挂载它,您将找到安装应用程序。

  • 注意:我们建议将安装macOS.app放到/Applications文件夹中,因为我们将从那里执行命令。
  • 注意2:在访达中运行Cmd+Shift+G将允许您轻松跳转到~/macOS-installer

从这里,跳转到设置安装程序完成您的工作。如果您想检查下载的完整性,您可以检查这个校验和存储库 (opens new window),但请注意,这些是众包校验和,可能不是检查真实性的可靠方法。

# 下载旧版macOS

# 设置安装程序

现在我们将格式化USB,为macOS安装程序和OpenCore做准备。我们希望使用带有GUID分区映射的macOS日志式(HFS+)。这将创建两个分区:主分区MyVolume和第二个名为EFI的分区,它用作引导分区,固件将在其中检查引导文件。

  • 注1:格式化USB创建的“EFI”分区是隐藏的。直到当设置OpenCore的EFI环境时你挂载它
  • 注2:默认情况下,磁盘实用程序只显示分区-按Cmd/Win+2显示所有设备(或者你可以按视图按钮)
  • 注3:遵循旧版macOS:在线办法部分的用户可以跳转到设置OpenCore的EFI环境

格式化USB

接下来运行Apple (opens new window)提供的createinstallmedia命令。请注意,该命令是为格式化后的名称为MyVolume的USB准备的(如果是其他盘符,请替换掉/Volumes/MyVolime中的MyVolume):

sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
Apple Silicon上安装比Big Sur更老的macOS的用户的注意事项

如果createinstallmedia出现zsh: killedkilled: 9失败,那么很可能是安装程序的代码签名有问题。要解决这个问题,可以运行以下命令:

cd /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/
codesign -s - -f --deep /Applications/Install\ macOS\ Big\ Sur.app

你需要安装Xcode的命令行工具:

xcode-select --install

这需要一些时间,所以你可能想喝杯咖啡或继续阅读指南(公平地说,你真的不应该在没有阅读全文的情况下一步一步地遵循本指南)。

您还可以将createinstallmedia路径替换为安装程序所在的路径(与驱动器名称相同)。

遗留的createinstallmedia命令

摘自苹果自己的网站:如何为macOS创建一个可启动的安装程序 (opens new window)

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

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

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

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

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

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

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

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

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

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

# 遗留的设置

对于不支持UEFI引导的系统,请参见以下内容:

设置旧启动

首先,您需要以下内容:

  • BootInstall_IA32.tool或BootInstall_X64.tool
    • 这可以在OpenCorePkg下的/utilities/LegacyBoot/中找到。
  • 安装USB(上面创建的)

在你的OpenCore构建文件夹中,导航到Utilities/LegacyBoot。在这里你会发现一个名为BootInstall_ARCH.tool的文件。它的作用是将DuetPkg安装到所需的驱动器上。

BootInstall位置

现在在终端中使用sudo运行这个工具(否则这个工具可能会失败):

# 如果您有32位CPU,请将X64替换为IA32
sudo ~/Downloads/OpenCore/Utilities/legacyBoot/BootInstall_X64.tool

磁盘选择/写入新的MBR

这将为您提供可用磁盘的列表,选择您的磁盘,然后将提示您编写新的MBR。选择[y],你就完成了。

完成安装程序

根EFI

这将为您提供一个带有bootia32bootx64文件的EFI分区

# 设置OpenCore的EFI环境

设置OpenCore的EFI环境很简单——你所需要做的就是挂载我们的EFI系统分区。这是在我们使用GUID格式化时自动创建的,但默认情况下是卸载的,这就是我们的朋友MountEFI (opens new window)的作用:

MountEFI

您会注意到,一旦我们打开EFI分区,它是空的。这就是乐趣开始的地方。

空EFI分区

# 现在,所有这些都完成了,转到设置EFI来完成您的工作