

# Atualizar o sistema operacional e o software em instâncias Mac do Amazon EC2
<a name="mac-instance-updates"></a>

O tópico a seguir explica como atualizar o sistema operacional e o software em instâncias Mac em chip Apple (Mac2, Mac2-m1ultra, Mac2-m2, Mac2-m2pro, Mac-m4, e Mac-m4pro) e em instâncias Mac x86 (Mac1).

**Atenção**  
A instalação das versões beta ou de pré-visualização do macOS está disponível somente em instâncias Mac com chip Apple. O Amazon EC2 não qualifica as versões beta ou prévia do macOS e não garante que as instâncias permaneçam funcionais após uma atualização para uma versão de pré-produção do macOS.   
A tentativa de instalação das versões beta ou prévia do macOS em instâncias do Mac x86 do Amazon EC2 levará à degradação do host dedicado do Mac do Amazon EC2 quando você interromper ou encerrar suas instâncias e impedirá que você inicie ou execute uma nova instância nesse host.

**nota**  
Se você realizar uma atualização local do macOS antes que a AWS lance uma AMI oficial, a atualização se aplicará somente ao host selecionado. Se você tiver outros hosts ou lançar novos hosts, deverá executar o mesmo processo de atualização nesses hosts também. Cada versão do macOS requer uma versão mínima de firmware no hardware Mac Apple. A atualização local atualiza somente o firmware no host selecionado e não é transferida para outros hosts novos ou existentes. Para verificar quais versões do macOS são compatíveis com seu host dedicado Mac do Amazon EC2, consulte [Encontrar versões compatíveis do macOS para seu host dedicado Mac do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/macos-firmware-visibility.html).

**Topics**

## Atualizar software em instâncias Mac com chip Apple
<a name="mac2"></a>

### Pré-requisitos
<a name="mac2-ena-update"></a>

Devido a uma atualização na configuração do driver de rede, a versão 1.0.2 do driver ENA não é compatível com o macOS 13.3 e versões posteriores. Se você quiser instalar qualquer versão macOS beta, prévia ou de produção 13.3 ou posterior e não tiver instalado o driver ENA mais recente, use o procedimento a seguir para instalar uma nova versão do driver.

**Para instalar uma nova versão do driver ENA**

1. Em uma janela do terminal, conecte-se à instância Mac com chip Apple usando [SSH](connect-to-mac-instance.md#mac-instance-ssh).

1. Atualize o Homebrew e Baixe a aplicação ENA no arquivo `Applications` usando o comando a seguir.

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

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

1. Desconecte-se da sua instância digitando **exit** e pressionando return.

1. Use o cliente VNC para ativar a aplicação ENA.

   1. Configure o cliente VNC usando [Conecte-se à interface gráfica do usuário (GUI)](connect-to-mac-instance.md#mac-instance-vnc).

   1. Depois de se conectar à sua instância usando a aplicação de compartilhamento de tela, acesse a pasta **Aplicações** e abra a aplicação ENA. 

   1. Selecione **Ativar**

   1. Para confirmar que o driver foi ativado corretamente, execute o comando a seguir na janela do terminal. A saída do comando mostra que o driver antigo está no estado de encerramento e o novo driver está no estado ativado.

      ```
      systemextensionsctl list;
      ```

   1. Depois de reiniciar a instância, somente o novo driver estará presente.

### Realizar a atualização do software
<a name="mac2-software-update"></a>

Nas instâncias Mac com chip Apple, você deve concluir várias etapas para realizar uma atualização do sistema operacional no local. Isso inclui delegar a propriedade do volume raiz do Amazon EBS ao usuário administrativo do volume raiz do EBS. Você pode optar por fazer isso automaticamente usando uma API do Amazon EC2 ou manualmente executando os comandos na sua instância.

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

**Considerações**
+ A tarefa de delegação da propriedade do volume pode demorar entre 30 e 90 minutos para ser concluída. Nesse período, a instância permanece inacessível.
+ As seguintes versões do macOS são compatíveis:
  + **Mac2 \$1 Mac2-m1ultra**: macOS Ventura (versão 13.0 ou posterior)
  + **Mac2-m2 \$1 Mac2-m2pro**: macOS Ventura (versão 13.2 ou posterior)
  + **Mac-M4 \$1 Mac-M4Pro**: macOS Sequoia (versão 15.6 ou posterior)
+ As instâncias devem ter somente um volume inicializável, e cada volume associado pode ter somente um usuário administrador adicional.

**Etapa 1: definir uma senha e ativar o token seguro para o usuário administrativo do volume raiz do EBS**

É necessário definir uma senha e ativar o token seguro para o usuário administrativo (`ec2-user`) do volume raiz do Amazon EBS.
**nota**  
A senha e o token seguro são definidos na primeira vez que você se conecta a uma instância Mac com chip Apple usando a GUI. Se você já se [conectou à instância usando a GUI](connect-to-mac-instance.md#mac-instance-vnc), **não é necessário** executar essas etapas.

1. [Conecte-se à instância usando SSH](connect-to-mac-instance.md#mac-instance-ssh).

1. Defina a senha do usuário `ec2-user`.

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

1. Ative o token seguro para o usuário `ec2-user`. Em `-oldPassword`, especifique a mesma senha da etapa anterior. Em `-newPassword`, especifique uma senha diferente. O comando a seguir pressupõe que suas senhas salvas antigas e novas estejam salvas em arquivos `.txt`.

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

1. Verifique se o token seguro está habilitado.

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

**Etapa 2: delegar a propriedade do volume raiz do Amazon EBS ao usuário administrativo do volume raiz do EBS**

Para delegar a propriedade, é necessário criar uma tarefa de delegação de propriedade do volume.

1. Use o comando [create-delegate-mac-volume-ownership-task](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-delegate-mac-volume-ownership-task.html) para criar a tarefa. Em `--instance-id`, especifique o ID da instância. Em `--mac-credentials`, especifique as seguintes credenciais:
   + **Usuário administrativo do disco interno**
     + **Nome de usuário**: somente o usuário administrativo padrão (`aws-managed-user`) é aceito e é usado por padrão. Não é possível especificar um usuário administrativo diferente.
     + **Senha**: se você não alterou a senha padrão para `aws-managed-user`, especifique a senha padrão, que está *em branco*. Caso contrário, especifique sua senha.
   + **Usuário administrativo do volume raiz do Amazon EBS**
     + **Nome de usuário**: se você não alterou o usuário administrativo padrão, especifique `ec2-user`. Caso contrário, especifique o nome de usuário do seu usuário administrativo.
     + **Senha**: especifique a senha que você definiu para o usuário administrador do volume raiz na Etapa 1 acima.

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

   O conteúdo a seguir faz parte do arquivo `mac-credentials.json` mencionado nos exemplos anteriores.

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

1. Aguarde até que a tarefa de delegação da propriedade do volume seja concluída e que a instância volte a um estado íntegro. Use o comando [describe-mac-modification-tasks](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-mac-modification-tasks.html). Em `--mac-modification-task-id`, especifique o ID da tarefa de delegação da propriedade do volume da etapa anterior. 

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

1. Depois que a tarefa de delegação da propriedade do volume for concluída, prossiga para a Etapa 3.

**Etapa 3: atualizar o software**  
Depois de delegar a propriedade do volume raiz do Amazon EBS, siga as etapas descritas em [Atualizar o software em instâncias x86 do Mac](#x86-mac1) (abaixo) para atualizar o software.

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

Ao executar esse procedimento, você cria duas senhas. Uma senha é para o usuário administrativo do volume raiz do Amazon EBS (`ec2-user`) e a outra é para o usuário administrativo do disco interno (`aws-managed-user`). Lembre-se dessas senhas, pois você as usará enquanto executar o procedimento.

**nota**  
Com esse procedimento no macOS Big Sur, só é possível realizar pequenas atualizações, como a atualização do macOS Big Sur 11.7.3 para o macOS Big Sur 11.7.4. Para o macOS Monterey ou superior, é possível realizar grandes atualizações de software.

**Para acessar o disco interno**

1. No computador local, no terminal, conecte-se à instância Mac com chip Apple usando SSH com o comando a seguir. Para obter mais informações, consulte [Conectar-se à instância usando 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 o compartilhamento de tela do macOS usando o comando a seguir.

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

1. Defina uma senha para `ec2-user` com o comando a seguir. Lembre-se da senha, pois você a usará mais tarde.

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

1. Desconecte-se da instância digitando **exit** e pressionando return.

1. No seu computador local, no terminal, reconecte-se à sua instância com um túnel SSH para a porta VNC usando o comando a seguir.

   ```
   ssh -i /path/key-pair-name.pem -L 5900:localhost:5900 ec2-user@instance-public-dns-name
   ```
**nota**  
Não saia dessa sessão SSH até que as seguintes etapas de conexão VNC e GUI sejam concluídas. Quando a instância for reiniciada, a conexão se fechará automaticamente.

1. No computador local, conecte-se a `localhost:5900` usando as etapas a seguir:

   1. Abra o **Finder** e selecione **Ir**.

   1. Selecione **Conectar ao servidor**.

   1. No campo **Endereço do servidor**, insira `vnc://localhost:5900`.

1. Na janela do macOS, conecte-se à sessão remota da instância Mac com chip Apple como `ec2-user` com a senha que você criou na [etapa 3](#passwd-step).

1. Acesse o disco interno, chamado **InternalDisk**, usando uma das opções a seguir.

   1. Para macOS Ventura ou superior: abra as **Configurações do sistema**, selecione **Geral** no painel esquerdo e depois **Disco de startup** no canto inferior direito do painel.

   1. Para macOS Monterey ou inferior: abra as **Preferências do sistema**, selecione **Disco de startup** e desbloqueie o painel escolhendo o ícone de cadeado no canto inferior esquerdo da janela.
**Dica de solução de problemas**  
Se você precisar montar o disco interno, execute o comando a seguir no 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. Escolha o disco interno, chamado **InternalDisk**, e selecione **Reiniciar**. Selecione **Reiniciar** novamente quando solicitado.
**Importante**  
Se o disco interno for denominado **Macintosh HD** em vez de **InternalDisk**, sua instância precisará ser interrompida e reiniciada para que o host dedicado possa ser atualizado. Para obter mais informações, consulte [Parar ou terminar a instância do Mac no Amazon EC2](mac-instance-stop.md).

Use o procedimento a seguir para delegar a propriedade ao usuário administrativo. Ao se reconectar à sua instância com SSH, você fará a inicialização a partir do disco interno usando o usuário administrativo especial (`aws-managed-user`). A senha inicial de `aws-managed-user` é em branco, então você precisa sobrescrevê-la em sua primeira conexão. Em seguida, você precisará repetir as etapas para instalar e iniciar o compartilhamento de tela do macOS, pois o volume de inicialização foi alterado.

**Para delegar a propriedade ao administrador de um volume do Amazon EBS**

1. No seu computador local, no terminal, conecte-se à sua instância Mac com chip Apple usando o comando a seguir. 

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

1. Ao receber o aviso `WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!`, use um dos comandos a seguir para resolver esse problema.

   1. Limpe os hosts conhecidos usando o comando a seguir. Em seguida, repita a etapa anterior.

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

   1. Adicione o seguinte ao comando SSH na etapa anterior.

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

1. Defina a senha do `aws-managed-user` com o comando a seguir. A senha inicial de `aws-managed-user` é em branco, então você precisa sobrescrevê-la em sua primeira conexão.

   1. 

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

   1. Ao receber o prompt `Permission denied. Please enter user's old password:`, pressione enter.
**Dica de solução de problemas**  
Se você receber o erro `passwd: DS error: eDSAuthFailed`, use o comando a seguir.  

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

1. Instale e inicie o compartilhamento de tela do macOS usando o comando a seguir.

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

1. Desconecte-se da instância digitando **exit** e pressionando return.

1. No seu computador local, no terminal, reconecte-se à sua instância com um túnel SSH para a porta VNC usando o comando a seguir.

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

1. No computador local, conecte-se a `localhost:5900` usando as etapas a seguir:

   1. Abra o **Finder** e selecione **Ir**.

   1. Selecione **Conectar ao servidor**.

   1. No campo **Endereço do servidor**, insira `vnc://localhost:5900`.

1.  Na janela do macOS, conecte-se à sessão remota da instância Mac com chip Apple como `aws-managed-user` com a senha que você criou na [etapa 3](#amu-passwd).
**nota**  
Quando solicitado a fazer login com seu Apple ID, selecione **Configurar mais tarde**.

1. Acesse o volume do Amazon EBS usando uma das opções a seguir.

   1. Para macOS Ventura ou superior: abra as **Configurações do sistema**, selecione **Geral** no painel esquerdo e depois **Disco de startup** no canto inferior direito do painel.

   1. Para macOS Monterey ou inferior: abra as **Preferências do sistema**, selecione **Disco de startup** e desbloqueie o painel escolhendo o ícone de cadeado no canto inferior esquerdo da janela.
**nota**  
Até que a reinicialização ocorra, quando for solicitada uma senha de administrador, use a senha que você definiu acima para `aws-managed-user`. Essa senha pode ser diferente da que você definiu para o `ec2-user` ou a conta de administrador padrão em sua instância. As instruções a seguir especificam quando usar a senha de administrador da sua instância.

1. Selecione o volume Amazon EBS (o volume não denominado **InternalDisk** na janela **Disco de startup**) e escolha **Reiniciar**.
**nota**  
Se você tiver vários volumes inicializáveis do Amazon EBS anexados à instância Mac com chip Apple, certifique-se de usar um nome exclusivo para cada volume.

1. Confirme a reinicialização e escolha **Autorizar usuários** quando solicitado.

1. No painel **Autorizar usuário neste volume**, verifique se o usuário administrativo (`ec2-user`, por padrão) está selecionado e selecione **Autorizar**.

1. Digite a senha do `ec2-user` que você criou na [Etapa 3](#passwd-step) do procedimento anterior e selecione **Continuar**.

1. Digite a senha do usuário administrativo especial (`aws-managed-user`) quando solicitado.

1. No computador local, no terminal, reconecte-se à instância usando SSH com o nome de usuário `ec2-user`.
**Dica de solução de problemas**  
Se você receber o aviso `WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!`, execute o comando a seguir e reconecte-se à sua instância usando SSH.  

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

1. Para realizar a atualização do software, use os comandos em [Atualizar o software em instâncias x86 do Mac](#x86-mac1).

------

## Atualizar o software em instâncias x86 do Mac
<a name="x86-mac1"></a>

Em instâncias Mac x86, é possível instalar atualizações do sistema operacional da Apple usando o comando `softwareupdate`.

**Para instalar atualizações do sistema operacional da Apple em instâncias Mac x86**

1. Liste os pacotes com atualizações disponíveis usando o seguinte comando.

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

1. Instale todas as atualizações ou apenas atualizações específicas. Para instalar atualizações específicas, use o seguinte comando.

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

   Para instalar todas as atualizações, use o seguinte comando.

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

Os administradores de sistemas podem usar o AWS Systems Manager para implementar atualizações pré-aprovadas do sistema operacional em instâncias Mac x86. Para obter mais informações, consulte o [Guia do usuário do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/).

É possível usar o Homebrew para instalar atualizações em pacotes nas AMIs do EC2 para o macOS a fim de obter a versão mais recente desses pacotes nas instâncias. Também é possível usar o Homebrew para instalar e executar aplicações macOS comuns no macOS do Amazon EC2. Para obter mais informações, consulte a [Documentação do Homebrew](https://docs.brew.sh/).

**Para instalar atualizações usando o Homebrew**

1. Atualize o Homebrew usando o seguinte comando.

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

1. Liste os pacotes com atualizações disponíveis usando o seguinte comando.

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

1. Instale todas as atualizações ou apenas atualizações específicas. Para instalar atualizações específicas, use o seguinte comando.

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

   Para instalar todas as atualizações, use o seguinte comando.

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