Définir le mode de démarrage d’une AMI Amazon EC2
Par défaut, une AMI hérite du mode de démarrage de l’instance EC2 utilisée pour créer l’AMI. Par exemple, si vous créez une AMI à partir d’une instance EC2 fonctionnant sur un BIOS hérité, le mode de démarrage de la nouvelle AMI est legacy-bios. Si vous créez une AMI à partir d’une instance EC2 avec un mode de démarrage uefi-preferred, le mode de démarrage de la nouvelle AMI sera uefi-preferred.
Lorsque vous enregistrez une AMI, vous pouvez définir le mode de démarrage de l’AMI sur uefi, legacy-bios ou uefi-preferred.
Lorsque le mode de démarrage de l’AMI est défini sur uefi-preferred, l’instance démarre comme suit :
-
Pour les types d’instance qui prennent en charge à la fois l’UEFI et le BIOS hérité (par exemple, m5.large), l’instance démarre à l’aide de l’UEFI.
-
Pour les types d’instance qui prennent en charge uniquement le BIOS hérité (par exemple, m4.large), l’instance démarre à l’aide du BIOS hérité.
Si vous définissez le mode de démarrage de l’AMI sur uefi-preferred, le système d’exploitation doit prendre en charge le démarrage de l’UEFI et du BIOS hérité.
Pour convertir une instance existante basée sur le BIOS hérité en UEFI, ou une instance existante basée sur UEFI en BIOS hérité, vous devez d’abord modifier le volume et le système d’exploitation de l’instance afin qu’ils prennent en charge le mode de démarrage sélectionné. Créez ensuite un instantané du volume. Et pour finir, créez une AMI à partir de l’instantané
Considérations
-
La définition du paramètre de mode de démarrage de l’AMI ne configure pas automatiquement le système d’exploitation pour le mode de démarrage spécifié. Vous devez d’abord apporter les modifications appropriées au volume et au système d’exploitation de l’instance afin de prendre en charge le démarrage à l’aide du mode de démarrage sélectionné. Sinon, l’AMI résultante ne sera pas utilisable. Par exemple, si vous convertissez une instance Windows basée sur le BIOS hérité à l’UEFI, vous pouvez utiliser l’outil MBR2GPT de Microsoft pour convertir le disque système de MBR à GPT. Les modifications requises sont spécifiques au système d’exploitation. Pour plus d’informations, consultez le manuel de votre système d’exploitation.
-
Vous ne pouvez pas utiliser la commande register-image ou l’applet de commande Register-EC2Image pour créer une AMI prenant en charge à la fois NitroTPM et UEFI préférée.
-
Certaines fonctionnalités, comme UEFI Secure Boot, ne sont disponibles que sur les instances qui démarrent sur l’UEFI. Lorsque vous utilisez le paramètre de mode de démarrage de l’AMI uefi-preferred avec un type d’instance qui ne prend pas en charge l’UEFI, l’instance démarre en mode BIOS hérité et la fonctionnalité dépendante de l’UEFI est désactivée. Si vous vous appuyez sur la disponibilité d’une fonctionnalité dépendante de l’UEFI, définissez le paramètre du mode de démarrage de votre AMI sur uefi.
- AWS CLI
-
Pour définir le mode de démarrage d’une AMI
-
Apporter des modifications appropriées au volume et au système d’exploitation de l’instance pour prendre en charge le démarrage via le mode de démarrage sélectionné. Les modifications requises sont spécifiques au système d’exploitation. Pour plus d’informations, consultez le manuel de votre système d’exploitation.
Si vous n’effectuez pas cette étape, l’AMI ne sera pas utilisable.
-
Pour trouver l’ID de volume de l’instance, utilisez la commande describe-instances. Vous allez créer un instantané de ce volume à l’étape suivante.
aws ec2 describe-instances \
--instance-ids i-1234567890abcdef0 \
--query Reservations[].Instances[].BlockDeviceMappings
Voici un exemple de sortie.
[
[
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2024-07-11T01:05:51+00:00",
"DeleteOnTermination": true,
"Status": "attached",
"VolumeId": "vol-1234567890abcdef0"
}
}
]
]
-
Pour créer un instantané du volume, utilisez la commande create-snapshot. Utilisez l’ID de volume de l’étape précédente.
aws ec2 create-snapshot \
--volume-id vol-01234567890abcdef \
--description "my snapshot"
Voici un exemple de sortie.
{
"Description": "my snapshot",
"Encrypted": false,
"OwnerId": "123456789012",
"Progress": "",
"SnapshotId": "snap-0abcdef1234567890",
"StartTime": "",
"State": "pending",
"VolumeId": "vol-01234567890abcdef",
"VolumeSize": 30,
"Tags": []
}
-
Attendez que l’état de l’instantané soit completed avant de passer à l’étape suivante. Pour obtenir l’état de l’instantané, utilisez la commande describe-snapshots avec l’ID d’instantané obtenu à l’étape précédente.
aws ec2 describe-snapshots \
--snapshot-ids snap-0abcdef1234567890 \
--query Snapshots[].State \
--output text
Voici un exemple de sortie.
completed
-
Pour créer une AMI, utilisez la commande register-image. Utilisez la valeur SnapshotId de la sortie de CreateSnapshot.
-
Pour définir le mode de démarrage sur UEFI, ajoutez le paramètre --boot-mode avec une valeur de uefi.
aws ec2 register-image \
--description "my image" \
--name "my-image" \
--block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-0abcdef1234567890,DeleteOnTermination=true}" \
--root-device-name /dev/sda1 \
--virtualization-type hvm \
--ena-support \
--boot-mode uefi
-
Pour définir le mode de démarrage sur uefi-preferred, définissez la valeur de --boot-mode sur uefi-preferred
aws ec2 register-image \
--description "my description" \
--name "my-image" \
--block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-0abcdef1234567890,DeleteOnTermination=true}" \
--root-device-name /dev/sda1 \
--virtualization-type hvm \
--ena-support \
--boot-mode uefi-preferred
-
(Facultatif) Pour vérifier que l’AMI nouvellement créée possède le mode de démarrage que vous avez spécifié, utilisez la commande describe-images.
aws ec2 describe-images \
--image-id ami-1234567890abcdef0 \
--query Images[].BootMode \
--output text
Voici un exemple de sortie.
uefi
- PowerShell
-
Pour définir le mode de démarrage d’une AMI
-
Apporter des modifications appropriées au volume et au système d’exploitation de l’instance pour prendre en charge le démarrage via le mode de démarrage sélectionné. Les modifications requises sont spécifiques au système d’exploitation. Pour plus d’informations, consultez le manuel de votre système d’exploitation.
Si vous n’effectuez pas cette étape, l’AMI ne sera pas utilisable.
-
Pour rechercher l’ID de volume de l’instance, utilisez l’applet de commande Get-EC2Instance.
(Get-EC2Instance `
-InstanceId i-1234567890abcdef0).Instances.BlockDeviceMappings.Ebs
Voici un exemple de sortie.
AssociatedResource :
AttachTime : 7/11/2024 1:05:51 AM
DeleteOnTermination : True
Operator :
Status : attached
VolumeId : vol-01234567890abcdef
-
Pour créer un instantané du volume, utilisez l’applet de commande New-EC2Snapshot. Utilisez l’ID de volume de l’étape précédente.
New-EC2Snapshot `
-VolumeId vol-01234567890abcdef `
-Description "my snapshot"
Voici un exemple de sortie.
AvailabilityZone :
Description : my snapshot
Encrypted : False
FullSnapshotSizeInBytes : 0
KmsKeyId :
OwnerId : 123456789012
RestoreExpiryTime :
SnapshotId : snap-0abcdef1234567890
SseType :
StartTime : 4/25/2025 6:08:59 PM
State : pending
StateMessage :
VolumeId : vol-01234567890abcdef
VolumeSize : 30
-
Attendez que l’état de l’instantané soit completed avant de passer à l’étape suivante. Pour connaître l’état de l’instantané, utilisez l’applet de commande Get-EC2Snapshot avec l’ID d’instantané obtenu à l’étape précédente.
(Get-EC2Snapshot `
-SnapshotId snap-0abcdef1234567890).State.Value
Voici un exemple de sortie.
completed
-
Pour créer une AMI, utilisez l’applet de commande Register-EC2Image. Utilisez la valeur SnapshotId de la sortie de New-EC2Snapshot.
-
Pour définir le mode de démarrage sur UEFI, ajoutez le paramètre -BootMode avec une valeur de uefi.
$block = @{SnapshotId=snap-0abcdef1234567890}
Register-EC2Image `
-Description "my image" `
-Name "my-image" `
-BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block} `
-RootDeviceName /dev/xvda `
-EnaSupport $true `
-BootMode uefi
-
Pour définir le mode de démarrage sur uefi-preferred, définissez la valeur de -BootMode sur uefi-preferred
$block = @{SnapshotId=snap-0abcdef1234567890}
Register-EC2Image `
-Description "my image" `
-Name "my-image" `
-BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block} `
-RootDeviceName /dev/xvda `
-EnaSupport $true `
-BootMode uefi-preferred
-
(Facultatif) Pour vérifier que l’AMI nouvellement créée dispose du mode de démarrage que vous avez spécifié, utilisez l’applet de commande Get-EC2Image.
(Get-EC2Image `
-ImageId ami-1234567890abcdef0).BootMode.Value
Voici un exemple de sortie.
uefi