Definir o modo de inicialização de uma AMI
Ao criar uma AMI usando o comando register-image, é possível definir o modo de inicialização da AMI como uefi
, legacy-bios
ou uefi-preferred
.
Quando o modo de inicialização da AMI estiver definido como uefi-preferred
, a instância será inicializada da seguinte forma:
-
Para tipos de instância que ofereçam suporte a UEFI e BIOS legado (por exemplo,
m5.large
), a instância será inicializada usando UEFI. -
Para tipos de instância que ofereçam suporte somente a BIOS legado (por exemplo,
m4.large
), a instância será inicializada usando BIOS legado.
nota
Se você definir o modo de inicialização da AMI como uefi-preferred
, o sistema operacional deverá oferecer suporte à capacidade de inicialização tanto com UEFI quanto com BIOS legado.
Atualmente, você não pode usar o comando register-image para criar uma AMI que ofereça suporte a NitroTPM e UEFI preferencial.
Atenção
Alguns recursos, como o UEFI Secure Boot, só estão disponíveis em instâncias que inicializadas em UEFI. Quando você usa o parâmetro do modo de inicialização uefi-preferred
da AMI com um tipo de instância que não ofereça suporte a UEFI, a instância será iniciada como BIOS legado e o recurso dependente de UEFI será desativado. Se você confia na disponibilidade de um recurso dependente de UEFI, defina o parâmetro do modo de inicialização da AMI como uefi
.
Para converter uma instância existente baseada em BIOS legado para UEFI, ou uma instância existente baseada em UEFI para BIOS legado, é preciso executar uma série de etapas: primeiro, modifique o volume e o sistema operacional da instância para oferecer suporte ao modo de inicialização selecionado. Em seguida, crie um snapshot do volume. Por fim, use register-image para criar a AMI usando o snapshot.
Não é possível definir o modo de inicialização de uma AMI usando o comando create-image. Com create-image, a AMI herda o modo de inicialização da instância do EC2 usada para criar a AMI. Por exemplo, se você criar uma AMI a partir de uma instância do EC2 executando em BIOS legado, o modo de inicialização da AMI será configurado como legacy-bios
. Se você criar uma AMI a partir de uma instância do EC2 que tenha sido executada usando uma AMI com um modo de inicialização definido como uefi-preferred
, a AMI criada também terá seu modo de inicialização definido como uefi-preferred
.
Atenção
Definir o parâmetro de modo de inicialização da AMI não configura automaticamente o sistema operacional para o modo de inicialização especificado. Antes de prosseguir com essas etapas, é preciso fazer modificações adequadas no volume e no sistema operacional da instância para oferecer suporte à inicialização usando o modo de inicialização selecionado, caso contrário, a AMI resultante não será utilizável. Por exemplo, caso esteja realizando a conversão de uma instância do Windows baseada em BIOS legado para a UEFI, você poderá usar a ferramenta MBR2GPT
Para definir o modo de inicialização de uma AMI (AWS CLI)
-
Faça as modificações adequadas no volume e no sistema operacional da instância para oferecer suporte à inicialização através do modo de inicialização selecionado. As modificações necessárias são específicas do sistema operacional. Para obter mais informações, consulte o manual do sistema operacional.
nota
Se você não executar esta etapa, a AMI não será utilizável.
-
Para localizar o ID do volume da instância, use o comando describe-instances. Você criará um snapshot desse volume na próxima etapa.
aws ec2 describe-instances --region
us-east-1
--instance-idsi-1234567890abcdef0
Saída esperada
... "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "AttachTime": "", "DeleteOnTermination": true, "Status": "attached", "VolumeId": "
vol-1234567890abcdef0
" } } ... -
Para criar um snapshot do volume, use o comando create-snapshot. Use o ID do volume da etapa anterior.
aws ec2 create-snapshot --region
us-east-1
--volume-idvol-1234567890abcdef0
--description "add text
"Saída esperada
{ "Description": "add text", "Encrypted": false, "OwnerId": "123", "Progress": "", "SnapshotId": "
snap-01234567890abcdef
", "StartTime": "", "State": "pending", "VolumeId": "vol-1234567890abcdef0
", "VolumeSize": 30, "Tags": [] } -
Guarde o ID do snapshot na saída da etapa anterior.
-
Aguarde até que a criação do snapshot seja
completed
antes de ir para a próxima etapa. Para consultar o estado do snapshot, use o comando describe-snapshots.aws ec2 describe-snapshots --region
us-east-1
--snapshot-idssnap-01234567890abcdef
Exemplo de saída
{ "Snapshots": [ { "Description": "This is my snapshot", "Encrypted": false, "VolumeId": "vol-049df61146c4d7901", "State": "completed", "VolumeSize": 8, "StartTime": "2019-02-28T21:28:32.000Z", "Progress": "100%", "OwnerId": "012345678910", "SnapshotId": "snap-01234567890abcdef", ...
-
Para criar uma nova AMI, use o comando register-image. Use o ID de snapshot que você guardou na etapa anterior.
-
Para definir o modo de inicialização como UEFI, adicione o parâmetro
--boot-mode
ao comando e especifiqueuefi
como o valor.aws ec2 register-image \ --region
us-east-1
\ --description "add description
" \ --name "add name
" \ --block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-01234567890abcdef
,DeleteOnTermination=true}" \ --architecture x86_64 \ --root-device-name /dev/sda1 \ --virtualization-type hvm \ --ena-support \ --boot-mode uefi -
Para definir o modo de inicialização como
uefi-preferred
, adicione o parâmetro--boot-mode
ao comando e especifiqueuefi-preferred
como o valor.aws ec2 register-image \ --region us-east-1 \ --description "add description" \ --name "add name" \ --block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-01234567890abcdef,DeleteOnTermination=true}" \ --architecture x86_64 \ --root-device-name /dev/sda1 \ --virtualization-type hvm \ --ena-support \ --boot-mode uefi-preferred
Saída esperada
{ "ImageId": "ami-new_ami_123" }
-
-
Para verificar se a AMI recém-criada tem o modo de inicialização especificado na etapa anterior, use o comando describe-images.
aws ec2 describe-images --region
us-east-1
--image-idami-new_ami_123
Saída esperada
{ "Images": [ { "Architecture": "x86_64", "CreationDate": "2021-01-06T14:31:04.000Z", "ImageId": "
ami-new_ami_123
", "ImageLocation": "", ... "BootMode": "uefi" } ] } -
Execute uma nova instância usando a AMI recém-criada.
Se o modo de inicialização da AMI for
uefi
oulegacy-bios
, as instâncias criadas a partir dessa AMI terão o mesmo modo de inicialização da AMI. Se o modo de inicialização da AMI foruefi-preferred
, a instância será inicializada usando UEFI se o tipo de instância oferecer suporte a UEFI, caso contrário, a instância será inicializada usando o BIOS legado. Para ter mais informações, consulte Considerações. -
Para verificar se a nova instância tem o modo de inicialização esperado, use o comando describe-instances.