更新 Mac 实例上的操作系统和软件
警告
测试版或预览版 macOS 只能在 Apple silicon Mac 实例上安装。Amazon EC2 不限定 macOS 的测试版或预览版,也不保证实例在更新到预生产版本 macOS 后仍能正常运行。
在停止或终止实例后,试图在 Amazon EC2 x86 Mac 实例上安装测试版或预览版 macOS 将导致 Amazon EC2 Mac 专属主机性能下降,并且会阻止您开启该主机或在该主机上启动新实例。
在 x86 Mac 实例和 Apple silicon Mac 实例上进行软件更新的步骤:
在 x86 Mac 实例上更新软件
在 x86 Mac 实例上,您可以使用 softwareupdate
命令从 Apple 安装操作系统更新。
支持的实例类型:mac1.metal
要在 x86 Mac 实例上从 Apple 安装操作系统更新
-
使用以下命令列出包含可用更新的软件包。
[ec2-user ~]$
softwareupdate --list -
安装所有更新或仅安装特定更新。要安装特定更新,请使用以下命令。
[ec2-user ~]$
sudo softwareupdate --installlabel
要改为安装所有更新,请使用以下命令。
[ec2-user ~]$
sudo softwareupdate --install --all --restart
系统管理员可以使用 AWS Systems Manager 在 x86 Mac 实例上推出预先批准的操作系统更新。有关更多信息,请参阅《AWS Systems Manager 用户指南》。
您可以使用 Homebrew 在 EC2 macOS AMI 中安装软件包的更新,以便在实例上拥有这些软件包的最新版本。您还可以使用 Homebrew 在 Amazon EC2 macOS 上安装和运行常见 macOS 应用程序。有关详细信息,请参阅 Homebrew 文档
使用 Homebrew 安装更新
-
使用以下命令更新 Homebrew。
[ec2-user ~]$
brew update -
使用以下命令列出包含可用更新的软件包。
[ec2-user ~]$
brew outdated -
安装所有更新或仅安装特定更新。要安装特定更新,请使用以下命令。
[ec2-user ~]$
brew upgradepackage name
要改为安装所有更新,请使用以下命令。
[ec2-user ~]$
brew upgrade
在 Apple silicon Mac 实例上更新软件
支持的实例类型:mac2.metal
、mac2-m1ultra.metal
、mac2-m2.metal
、mac2-m2pro.metal
注意事项
弹性网络适配器(ENA)驱动程序
由于网络驱动程序配置更新的原因,ENA 驱动程序版本 1.0.2 与 macOS 13.3 或更高版本不兼容。如果要安装任何测试版、预览版或正式版 macOS 13.3 或更高版本,并且尚未安装最新的 ENA 驱动程序,请按照以下步骤安装新版本的驱动程序。
安装新版本的 ENA 驱动程序
-
在终端窗口中,使用 SSH 连接到 Apple silicon Mac 实例。
-
使用下面的命令将 ENA 应用程序下载到
Applications
文件中。[ec2-user ~]$
brew install amazon-ena-ethernet-dext故障排除技巧
如果您收到
No available formula with the name amazon-ena-ethernet-dext
警告,请运行以下命令。[ec2-user ~]$
brew update -
键入 exit,然后按下回车键,从而将实例断开连接。
-
使用 VNC 客户端激活 ENA 应用程序。
-
使用 连接到您实例的图形用户界面(GUI) 设置 VNC 客户端。
-
使用屏幕共享应用程序连接到实例后,转到 Applications 文件夹并打开 ENA 应用程序。
-
选择激活。
-
要确认已正确激活驱动程序,请在终端窗口中运行以下命令。命令的输出将显示旧驱动程序处于正在终止状态,而新驱动程序处于已激活状态。
systemextensionsctl list;
-
重启实例后,将仅出现新驱动程序。
-
Apple silicon Mac 实例上的软件更新
在 Apple silicon Mac 实例上,您必须完成几个步骤才能执行就地操作系统更新。首先,使用具备 VNC(虚拟网络计算)客户端的 GUI 访问实例的内部磁盘。此过程使用内置 VNC 客户端中的 macOS 屏幕共享。然后以 aws-managed-user
身份登录 Amazon EBS 卷,以将所有权委派给管理用户 (ec2-user
)。
完成此过程后,您将创建两个密码。一个密码适用于管理用户 (ec2-user
),另一个密码适用于特殊管理用户 (aws-managed-user
)。请记住这些密码,因为您将在完成该过程后使用它们。
注意
在 macOS Big Sur 上执行该过程后,只能进行次要更新,例如从 macOS Big Sur 11.7.3 更新到 macOS Big Sur 11.7.4。对于 macOS Monterey 或更高版本,可以执行主要软件更新。
访问内部磁盘
-
在本地计算机上的终端中,使用以下命令通过 SSH 连接到 Apple silicon Mac 实例。有关更多信息,请参阅 使用 SSH 连接到您的实例。。
ssh -i
/path/key-pair-name
.pem ec2-user@instance-public-dns-name
-
使用以下命令安装并启动 macOS 屏幕共享。
[ec2-user ~]$
sudo launchctl enable system/com.apple.screensharing sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist -
使用以下命令设置
ec2-user
的密码。请记住该密码,因为您稍后会用到它。[ec2-user ~]$
sudo /usr/bin/dscl . -passwd /Users/ec2-user -
键入 exit 并按 return,与实例断开连接。
-
在本地计算机上的终端中,使用以下命令,通过通往 VNC 端口的 SSH 隧道重新连接到实例。
ssh -i
/path/key-pair-name
.pem -L 5900:localhost:5900 ec2-user@instance-public-dns-name
注意
在完成以下 VNC 连接和 GUI 步骤之前,请勿退出该 SSH 会话。实例重启后,连接会自动关闭。
-
在本地计算机上,使用以下步骤连接到
localhost:5900
:-
打开查找器并选择前往。
-
选择连接到服务器。
-
在服务器地址字段中,输入
vnc://localhost:5900
。
-
-
在 macOS 窗口中,使用您在步骤 3 中创建的密码,以
ec2-user
身份连接到 Apple silicon Mac 实例的远程会话。 -
使用以下选项之一访问名为 InternalDisk 的内部磁盘。
-
对于 macOS Ventura 或更高版本:打开系统设置,在左侧窗格中选择常规,然后选择窗格右下角的启动磁盘。
-
对于 macOS Monterey 或更低版本:打开系统偏好设置,选择启动磁盘,然后选择窗口左下角的锁定图标以解锁窗格。
故障排除技巧
如需安装内部磁盘,请在终端中运行以下命令。
APFSVolumeName="InternalDisk" ; SSDContainer=$(diskutil list | grep "Physical Store disk0" -B 3 | grep "/dev/disk" | awk {'print $1'} ) ; diskutil apfs addVolume $SSDContainer APFS $APFSVolumeName
-
-
选择名为 InternalDisk 的内部磁盘,然后选择重新启动。出现系统提示时,再次选择重新启动。
重要
如果内部磁盘名为 Macintosh HD 而不是 InternalDisk,则需要停止实例然后重新启动,才能更新专属主机。有关更多信息,请参阅 停止或终止 Amazon EC2 Mac 实例。
按照以下步骤操作可将所有权委派给管理用户。通过 SSH 重新连接到实例后,可使用特殊管理用户 (aws-managed-user
) 从内部磁盘启动实例。aws-managed-user
的初始密码为空,因此您需要在首次连接时将其覆盖。然后,由于启动卷已更改,您需要重复安装和启动 macOS 屏幕共享的步骤。
将 Amazon EBS 卷的所有权委派给管理员
-
在本地计算机上的终端中,使用以下命令连接到 Apple silicon Mac 实例。
ssh -i
/path/key-pair-name
.pem aws-managed-user@instance-public-dns-name
-
收到警告
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
后,使用以下命令之一解决该问题。-
使用以下命令清除已知主机。然后重复上一步。
rm ~/.ssh/known_hosts
-
将以下内容添加到上一个步中的 SSH 命令。
-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
-
-
使用以下命令设置
aws-managed-user
的密码。aws-managed-user
的初始密码为空,因此您需要在首次连接时将其覆盖。-
[aws-managed-user ~]$ sudo /usr/bin/dscl . -passwd /Users/aws-managed-user
password
-
收到提示
Permission denied. Please enter user's old password:
时,请按 Enter。故障排除技巧
如您遇到
passwd: DS error: eDSAuthFailed
错误,请使用以下命令。[aws-managed-user ~]$ sudo passwd aws-managed-user
-
-
使用以下命令安装并启动 macOS 屏幕共享。
[aws-managed-user ~]$ sudo launchctl enable system/com.apple.screensharing sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
-
键入 exit 并按 return,与实例断开连接。
-
在本地计算机上的终端中,使用以下命令,通过通往 VNC 端口的 SSH 隧道重新连接到实例。
ssh -i
/path/key-pair-name
.pem -L 5900:localhost:5900 aws-managed-user@instance-public-dns-name
-
在本地计算机上,使用以下步骤连接到
localhost:5900
:-
打开查找器并选择前往。
-
选择连接到服务器。
-
在服务器地址字段中,输入
vnc://localhost:5900
。
-
-
在 macOS 窗口中,使用您在步骤 3 中创建的密码,以
aws-managed-user
身份连接到 Apple silicon Mac 实例的远程会话。注意
当提示使用 Apple ID 登录时,选择稍后设置。
-
使用以下选项之一访问 Amazon EBS 卷。
-
对于 macOS Ventura 或更高版本:打开系统设置,在左侧窗格中选择常规,然后选择窗格右下角的启动磁盘。
-
对于 macOS Monterey 或更低版本:打开系统偏好设置,选择启动磁盘,然后选择窗口左下角的锁定图标以解锁窗格。
注意
重启之前,当系统提示输入管理员密码时,请使用上述为
aws-managed-user
设置的密码。此密码可能不同于您为ec2-user
或实例上的默认管理员账户设置的密码。以下说明指定了何时使用实例的管理员密码。 -
-
选择 Amazon EBS 卷(启动磁盘窗口中未命名为 internalDisk 的卷),然后选择重新启动。
注意
如果您的 Apple silicon Mac 实例上附加了多个可启动的 Amazon EBS 卷,则必须为每个卷使用唯一的名称。
-
确认重新启动,然后在出现系统提示时选择授权用户。
-
在在该卷上授权用户窗格中,确认是否已选择管理用户(默认为
ec2-user
),然后选择授权。 -
输入您在上一过程步骤 3 中创建的
ec2-user
密码,然后选择继续。 -
出现系统提示时,输入特殊管理用户 (
aws-managed-user
) 的密码。 -
在本地计算机上的终端中,通过 SSH 和用户名
ec2-user
重新连接到实例。故障排除技巧
如果收到警告
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
,请运行以下命令并通过 SSH 重新连接到实例。rm ~/.ssh/known_hosts
-
要执行软件更新,请使用 在 x86 Mac 实例上更新软件 下方的命令。