

# Cómo actualizar el sistema operativo y el software en las instancias de Mac de Amazon EC2
<a name="mac-instance-updates"></a>

En el siguiente tema, se explica cómo actualizar el sistema operativo y el software en las instancias Mac de Apple Silicon (Mac2, Mac2-m1ultra, Mac2-m2, Mac2-m2pro, Mac-m4 y Mac-m4pro y en las instancias Mac x86 (Mac1).

**aviso**  
La instalación de las versiones beta o preliminar de macOS solo está disponible en el silicio de Apple en las instancias de Mac. Amazon EC2 no califica las versiones beta ni las versiones preliminares de macOS y no garantiza que las instancias sigan funcionando después de actualizar una versión de macOS en preproducción.   
Intentar instalar versiones beta o ver versiones preliminares de macOS en instancias de Mac Amazon EC2 x86 conducirá a la degradación de su host dedicado Amazon EC2 Mac cuando detenga o finalice sus instancias, y le impedirá iniciar o iniciar una nueva instancia en ese host.

**nota**  
Si realiza una actualización in situ de macOS antes de que AWS publique una AMI oficial, la actualización solo se aplicará al host seleccionado. Si tiene otros hosts, o si lanza nuevos hosts, también debe realizar el mismo proceso de actualización en esos hosts. Cada versión de macOS requiere una versión mínima de firmware en el equipo de Apple Mac subyacente. La actualización in situ solo actualiza el firmware del host seleccionado y no se transfiere a otros hosts nuevos o existentes. Para comprobar qué versiones de macOS son compatibles con su host dedicado de Mac de Amazon EC2, consulte [Buscar versiones de macOS compatibles para su host dedicado de Mac de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/macos-firmware-visibility.html).

**Topics**

## Actualización del software en instancias de Mac de Apple Silicon
<a name="mac2"></a>

### Requisitos previos
<a name="mac2-ena-update"></a>

Debido a una actualización en la configuración del controlador de red, la versión 1.0.2 del controlador ENA no es compatible con macOS 13.3 o posterior. Si quieres instalar una nueva versión de macOS de, versión 13.3 o posterior, siga el procedimiento que se explica a continuación para instalar una nueva versión del controlador.

**Para instalar una nueva versión del controlador ENA**

1. En una ventana del terminal, conéctese a la instancia de Mac de Apple Silicon mediante [SSH](connect-to-mac-instance.md#mac-instance-ssh).

1. Actualice Homebrew y descargue la aplicación ENA en el archivo `Applications` con el siguiente comando.

   ```
   [ec2-user ~]$ brew update
   ```

   ```
   [ec2-user ~]$ brew install amazon-ena-ethernet-dext
   ```

1. Para desconectarse de la instancia, ingrese **exit** y presione Entrar.

1. Utilice el cliente de VNC para activar la aplicación ENA.

   1. Configure el cliente de VNC mediante [Conéctese a la interfaz gráfica de usuario (GUI) de la instancia](connect-to-mac-instance.md#mac-instance-vnc).

   1. Una vez que se haya conectado a la instancia mediante la aplicación de uso compartido de pantalla, vaya a la carpeta **Aplicaciones** y abra la aplicación ENA. 

   1. Elija **Activar**.

   1. Para confirmar que el controlador se activó correctamente, ejecute el siguiente comando en la ventana del terminal. El resultado del comando muestra que el controlador antiguo está en el estado de finalización y el nuevo controlador está en el estado activado.

      ```
      systemextensionsctl list;
      ```

   1. Tras reiniciar la instancia, solo estará presente el nuevo controlador.

### Cómo realizar la actualización del software
<a name="mac2-software-update"></a>

En las instancias de Mac de Apple Silicon, debe completar varios pasos para actualizar el sistema operativo de forma local. Esto incluye delegar la propiedad del volumen raíz de Amazon EBS al usuario administrativo del volumen raíz de EBS. Puede elegir hacerlo automáticamente mediante una API de Amazon EC2 o manualmente ejecutando los comandos en su instancia.

------
#### [ Automated volume ownership delegation (Recommended) ]

**Consideraciones**
+ La tarea de delegación de la propiedad del volumen puede tardar entre 30 y 90 minutos en completarse. Durante este tiempo, la instancia no está accesible.
+ Las siguientes versiones de macOS son compatibles:
  + **Mac2 \$1 Mac2-m1ultra**: macOS Ventura (versión 13.0 o posterior)
  + **Mac2-m2 \$1 Mac2-m2pro**: macOS Ventura (versión 13.2 o posterior)
  + **Mac-m4 \$1 Mac-m4pro**: macOS Sequoia (versión 15.6 o posterior)
+ Las instancias deben tener un solo volumen de arranque y cada volumen adjunto solo puede tener un usuario administrador adicional.

**Paso 1: establecer una contraseña y habilitar el token de seguridad para el usuario administrativo del volumen raíz de EBS**

Debe establecer una contraseña y habilitar el token de seguridad para el usuario administrativo del volumen raíz de Amazon EBS (`ec2-user`).
**nota**  
La contraseña y el token de seguridad se configuran la primera vez que se conecta a una instancia Mac de silicio con Apple mediante la GUI. Si [se ha conectado previamente a la instancia mediante la GUI](connect-to-mac-instance.md#mac-instance-vnc), **no** necesita realizar estos pasos.

1. [Conéctese a la instancia mediante SSH](connect-to-mac-instance.md#mac-instance-ssh).

1. Establezca la contraseña del usuario `ec2-user`.

   ```
   $ sudo /usr/bin/dscl . -passwd /Users/ec2-user
   ```

1. Habilite el token de seguridad para el usuario `ec2-user`. Para `-oldPassword`, especifique la misma contraseña del paso anterior. Para `-newPassword`, especifique una contraseña diferente. El siguiente comando supone que tiene las contraseñas anterior y nueva guardadas en archivos `.txt`.

   ```
   $ sysadminctl -oldPassword `cat old_password.txt` -newPassword `cat new_password.txt`
   ```

1. Compruebe que el token de seguridad esté habilitado.

   ```
   $ sysadminctl -secureTokenStatus ec2-user
   ```

**Paso 2: delegar la propiedad del volumen raíz de Amazon EBS al usuario administrativo del volumen raíz de EBS**

Para delegar la propiedad, debe crear una tarea de delegación de la propiedad del volumen.

1. Utilice el comando [create-delegate-mac-volume-ownership-task](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-delegate-mac-volume-ownership-task.html) para crear la tarea. Para `--instance-id`, especifique el ID de la instancia. Para `--mac-credentials`, especifique las siguientes credenciales:
   + **Usuario administrativo del disco interno**
     + **Nombre de usuario**: solo se admite el usuario administrativo predeterminado (`aws-managed-user`) y se usa de forma predeterminada. No puede especificar un usuario administrativo diferente.
     + **Contraseña**: si no ha cambiado la contraseña predeterminada para `aws-managed-user`, especifique la contraseña predeterminada, que está *en blanco*. De lo contrario, especifique su contraseña.
   + **Usuario administrativo del volumen raíz de Amazon EBS**
     + **Nombre de usuario**: si no ha cambiado el usuario administrativo predeterminado, especifique `ec2-user`. De lo contrario, especifique el nombre de usuario de su usuario administrativo.
     + **Contraseña**: especifique la contraseña que configuró para el usuario administrativo del volumen raíz en el Paso 1 anterior.

   ```
   aws ec2 create-delegate-mac-volume-ownership-task \
   --instance-id i-1234567890abcdef0 \
   --mac-credentials file://mac-credentials.json
   ```

   A continuación, se presenta el contenido del archivo `mac-credentials.json` al que se hace referencia en los ejemplos siguientes.

   ```
   {
     "internalDiskPassword":"internal-disk-admin_password",
     "rootVolumeUsername":"root-volume-admin_username",
     "rootVolumepassword":"root-volume-admin_password"
   }
   ```

1. Espere a que finalice la tarea de delegación de la propiedad del volumen y a que la instancia vuelva a un estado correcto. Utilice el comando [describe-mac-modification-tasks](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-mac-modification-tasks.html). Para `--mac-modification-task-id`, especifique el ID de la tarea de delegación de propiedad del volumen del paso anterior. 

   ```
   aws ec2 describe-mac-modification-tasks \
   --mac-modification-task-id task-id
   ```

1. Una vez finalizada la tarea de delegación de la propiedad del volumen, continúe con el Paso 3.

**Paso 3: actualizar el software**  
Una vez que haya delegado la propiedad del volumen raíz de Amazon EBS, siga los pasos que se describen en [Actualización del software en instancias x86 de Mac](#x86-mac1) (a continuación) para actualizar el software.

------
#### [ Manual volume ownership delegation ]

Al realizar este procedimiento, creará dos contraseñas. Una contraseña es para el usuario administrativo del volumen raíz de Amazon EBS (`ec2-user`) y la otra para un usuario del disco interno (`aws-managed-user`). Recuerde estas contraseñas, ya que las utilizará a medida que avance en el procedimiento.

**nota**  
Con este procedimiento en macOS Big Sur, solo puede realizar actualizaciones menores, como la actualización de macOS Big Sur 11.7.3 a macOS Big Sur 11.7.4. Para macOS Monterey o superior, puede hacer actualizaciones de software importantes.

**Para acceder al disco interno**

1. Desde el equipo local, en el terminal, conéctese a la instancia de Mac de Apple Silicon mediante SSH con el siguiente comando. Para obtener más información, consulte [Conexión a su instancia mediante SSH](connect-to-mac-instance.md#mac-instance-ssh).

   ```
   ssh -i /path/key-pair-name.pem ec2-user@instance-public-dns-name
   ```

1. Instale e inicie Compartir pantalla de macOS con el siguiente comando.

   ```
   [ec2-user ~]$ sudo launchctl enable system/com.apple.screensharing
   sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
   ```

1. Establezca una contraseña para `ec2-user` con el comando siguiente. Recuerde la contraseña, ya que la usará más adelante.

   ```
   [ec2-user ~]$ sudo /usr/bin/dscl . -passwd /Users/ec2-user
   ```

1. Para desconectarse de la instancia, escriba **exit** y presione return.

1. Desde su equipo local, en el terminal, vuelva a conectarse a la instancia mediante un túnel de SSH al puerto VNC mediante el siguiente comando.

   ```
   ssh -i /path/key-pair-name.pem -L 5900:localhost:5900 ec2-user@instance-public-dns-name
   ```
**nota**  
No salga de esta sesión de SSH hasta que se hayan completado los siguientes pasos de conexión de la VNC y GUI. Cuando se reinicie la instancia, la conexión se cerrará automáticamente.

1. En el equipo local, conéctese a `localhost:5900` mediante los siguientes pasos:

   1. Abra **Finder** y seleccione **Ir**.

   1. Seleccione **Conectarse a un servidor**.

   1. En el campo **Dirección del servidor**, introduzca `vnc://localhost:5900`.

1. En la ventana de macOS, conéctese a la sesión remota de la instancia de Mac de Apple Silicon como `ec2-user` con la contraseña que creó en el [paso 3](#passwd-step).

1. Acceda al disco interno, denominado **InternalDisk**, mediante una de las siguientes opciones.

   1. Para macOS Ventura o superior: abra **Ajustes del sistema**, seleccione **General** en el panel izquierdo y **Disco de arranque** en la esquina inferior derecha del panel.

   1. Para macOS Monterey o versiones anteriores: abra **Ajustes del sistema**, seleccione **Disco de arranque** y, a continuación, desbloquee el panel; para ello, debe seleccionar el icono del candado en la esquina inferior izquierda de la ventana.
**Consejo para la solución de problemas**  
Si necesita montar el disco interno, ejecute el siguiente comando en el terminal.  

   ```
   APFSVolumeName="InternalDisk" ; SSDContainer=$(diskutil list | grep "Physical Store disk0" -B 3 | grep "/dev/disk" | awk {'print $1'} ) ; diskutil apfs addVolume $SSDContainer APFS $APFSVolumeName
   ```

1. Elija el disco interno, denominado **InternalDisk**, y seleccione **Reiniciar**. Seleccione **Reiniciar** de nuevo cuando se le solicite.
**importante**  
Si el disco interno se denomina **Macintosh HD** en lugar de **InternalDisk**, es necesario detener y reiniciar la instancia para poder actualizar el host dedicado. Para obtener más información, consulte [Detener o terminar la instancia de Amazon EC2](mac-instance-stop.md).

Utilice el siguiente procedimiento para delegar la propiedad al usuario administrativo. Cuando vuelva a conectarse a la instancia con SSH, arranque desde el disco interno mediante el usuario administrativo especial (`aws-managed-user`). La contraseña inicial de `aws-managed-user` está en blanco, por lo que tendrá que sobrescribirla en su primera conexión. A continuación, debe repetir los pasos para instalar e iniciar Compartir pantalla de macOS, ya que el volumen de arranque ha cambiado.

**Para delegar la propiedad al administrador de un volumen de Amazon EBS**

1. Desde el equipo local, en el terminal, conéctese a la instancia de Mac Apple Silicon mediante el siguiente comando. 

   ```
   ssh -i /path/key-pair-name.pem aws-managed-user@instance-public-dns-name
   ```

1. Cuando reciba la advertencia `WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!`, utilice uno de los siguientes comandos para resolver el problema.

   1. Elimine los hosts conocidos mediante el siguiente comando. A continuación, repita el paso anterior.

      ```
      rm ~/.ssh/known_hosts
      ```

   1. Agregue lo siguiente al comando SSH del paso anterior.

      ```
      -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
      ```

1. Establezca la contraseña para `aws-managed-user` con el siguiente comando. La contraseña inicial de `aws-managed-user` está en blanco, por lo que debe sobrescribirla en su primera conexión.

   1. 

      ```
      [aws-managed-user ~]$ sudo /usr/bin/dscl . -passwd /Users/aws-managed-user password
      ```

   1. Cuando reciba el mensaje `Permission denied. Please enter user's old password:`, pulse Entrar.
**Consejo para la solución de problemas**  
Si aparece el error `passwd: DS error: eDSAuthFailed`, utilice el siguiente comando.  

      ```
      [aws-managed-user ~]$ sudo passwd aws-managed-user
      ```

1. Instale e inicie Compartir pantalla de macOS con el siguiente comando.

   ```
   [aws-managed-user ~]$ sudo launchctl enable system/com.apple.screensharing
   sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
   ```

1. Para desconectarse de la instancia, escriba **exit** y presione return.

1. Desde su equipo local, en el terminal, vuelva a conectarse a la instancia mediante un túnel de SSH al puerto VNC mediante el siguiente comando.

   ```
   ssh -i /path/key-pair-name.pem -L 5900:localhost:5900 aws-managed-user@instance-public-dns-name
   ```

1. En el equipo local, conéctese a `localhost:5900` mediante los siguientes pasos:

   1. Abra **Finder** y seleccione **Ir**.

   1. Seleccione **Conectarse a un servidor**.

   1. En el campo **Dirección del servidor**, introduzca `vnc://localhost:5900`.

1.  En la ventana de macOS, conéctese a la sesión remota de la instancia de Mac de Apple Silicon como `aws-managed-user` con la contraseña que creó en el [paso 3](#amu-passwd).
**nota**  
Cuando se le pida que inicie sesión con su ID de Apple, seleccione **Configurar más tarde**.

1. Acceda al volumen de Amazon EBS mediante una de las siguientes opciones.

   1. Para macOS Ventura o posterior: abra **Ajustes del sistema**, seleccione **General** en el panel izquierdo y **Disco de arranque** en la esquina inferior derecha del panel.

   1. Para macOS Monterey o versiones anteriores: abra **Ajustes del sistema**, seleccione **Disco de arranque** y desbloquee el panel al seleccionar el ícono del candado en la esquina inferior izquierda de la ventana.
**nota**  
Hasta que se reinicie, cuando se le solicite una contraseña de administrador, utilice la contraseña que estableció anteriormente para `aws-managed-user`. Esta contraseña puede ser diferente de la que configuró para `ec2-user` o la cuenta de administrador predeterminada de su instancia. Las siguientes instrucciones especifican cuándo usar la contraseña de administrador de la instancia.

1. Seleccione el volumen de Amazon EBS (el volumen que no se denomina **InternalDisk** en la ventana **Disco de arranque**) y elija **Reiniciar**.
**nota**  
Si tiene varios volúmenes de Amazon EBS de arranque adjuntos a la instancia de Mac de Apple Silicon, asegúrese de utilizar un nombre único para cada volumen.

1. Confirme el reinicio y, a continuación, seleccione **Autorizar usuarios** cuando se le solicite.

1. En el panel **Autorizar usuario en este volumen**, compruebe que el usuario administrativo (de manera predeterminada `ec2-user`) esté seleccionado y, después, seleccione **Autorizar**.

1. Ingrese la contraseña de `ec2-user` que creó en el [paso 3](#passwd-step) del procedimiento anterior y, luego, seleccione **Continuar**.

1. Ingrese la contraseña del usuario administrativo especial (`aws-managed-user`) cuando se le solicite.

1. En el equipo local, en el terminal, vuelva a conectarse a la instancia mediante SSH con el nombre de usuario `ec2-user`.
**Consejo para la solución de problemas**  
Si recibe la advertencia `WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!`, ejecute el siguiente comando y vuelva a conectarse a la instancia mediante SSH.  

   ```
   rm ~/.ssh/known_hosts
   ```

1. Para realizar la actualización del software, utilice los siguientes comandos en [Actualización del software en instancias x86 de Mac](#x86-mac1).

------

## Actualización del software en instancias x86 de Mac
<a name="x86-mac1"></a>

En las instancias de Mac x86, puede instalar actualizaciones del sistema operativo desde Apple mediante el comando `softwareupdate`.

**Para instalar actualizaciones del sistema operativo desde Apple en instancias de Mac x86**

1. Enumere los paquetes con actualizaciones disponibles mediante el siguiente comando.

   ```
   [ec2-user ~]$ softwareupdate --list
   ```

1. Instale todas las actualizaciones o solo actualizaciones específicas. Para instalar actualizaciones específicas, utilice el siguiente comando.

   ```
   [ec2-user ~]$ sudo softwareupdate --install label
   ```

   De lo contrario, para instalar todas las actualizaciones, utilice el siguiente comando.

   ```
   [ec2-user ~]$ sudo softwareupdate --install --all --restart
   ```

Los administradores del sistema pueden utilizar AWS Systems Manager para implementar actualizaciones preaprobadas en instancias Mac x86. Para obtener más información, consulte la [Guía del usuario de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/).

Puede utilizar Homebrew para instalar actualizaciones de paquetes en las AMI de macOS EC2, a fin de tener la versión más reciente de estos paquetes en sus instancias. También puede utilizar Homebrew para instalar y ejecutar aplicaciones macOS comunes en Amazon EC2 macOS. Para obtener más información, consulte la [Documentación de Homebrew](https://docs.brew.sh/).

**Para instalar actualizaciones con Homebrew, haga lo siguiente:**

1. Actualice Homebrew mediante el siguiente comando.

   ```
   [ec2-user ~]$ brew update
   ```

1. Enumere los paquetes con actualizaciones disponibles mediante el siguiente comando.

   ```
   [ec2-user ~]$ brew outdated
   ```

1. Instale todas las actualizaciones o solo actualizaciones específicas. Para instalar actualizaciones específicas, utilice el siguiente comando.

   ```
   [ec2-user ~]$ brew upgrade package name
   ```

   De lo contrario, para instalar todas las actualizaciones, utilice el siguiente comando.

   ```
   [ec2-user ~]$ brew upgrade
   ```