Définir le mode de démarrage d’une AMI Amazon EC2 - Amazon Elastic Compute Cloud

Définir le mode de démarrage d’une AMI Amazon EC2

Lorsque vous créez une AMI à l’aide de la commande register-image, 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é.

Note

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é.

Actuellement, vous ne pouvez pas utiliser la commande register-image pour créer une AMI prenant en charge à la fois NitroTPM et l’UEFI préférée.

Avertissement

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 d’AMI uefi-preferred avec un type d’instance qui ne prend pas en charge l’UEFI, l’instance est lancée en tant que 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.

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 effectuer plusieurs étapes : tout d’abord, modifiez le volume et le système d’exploitation de l’instance pour prendre en charge le mode de démarrage sélectionné. Créez ensuite un instantané du volume. Enfin, utilisez register-image pour créer l’AMI à l’aide de l’instantané.

Vous ne pouvez pas définir le mode de démarrage d’une AMI à l’aide de la commande create-image. Avec create-image, l’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 exécutée sur un BIOS hérité, le mode de démarrage de l’AMI sera configuré en tant que legacy-bios. Si vous créez une AMI à partir d’une instance EC2 lancée avec une AMI dont le mode de démarrage est défini sur uefi-preferred, son mode de démarrage sera également défini sur uefi-preferred.

Avertissement

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é. Avant de procéder à ces étapes, vous devez d’abord 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é. Dans le cas contraire, 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.

Pour définir le mode de démarrage d’une AMI (AWS CLI)
  1. 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.

    Note

    Si vous n’effectuez pas cette étape, l’AMI ne sera pas utilisable.

  2. 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 --region us-east-1 --instance-ids i-1234567890abcdef0

    Sortie attendue

    ... "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "AttachTime": "", "DeleteOnTermination": true, "Status": "attached", "VolumeId": "vol-1234567890abcdef0" } } ...
  3. 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 --region us-east-1 --volume-id vol-1234567890abcdef0 --description "add text"

    Sortie attendue

    { "Description": "add text", "Encrypted": false, "OwnerId": "123", "Progress": "", "SnapshotId": "snap-01234567890abcdef", "StartTime": "", "State": "pending", "VolumeId": "vol-1234567890abcdef0", "VolumeSize": 30, "Tags": [] }
  4. Notez l’ID d’instantané dans la sortie de l’étape précédente.

  5. Attendez que la création de l’instantané soit completed avant de passer à l’étape suivante. Pour interroger l’état de l’instantané, utilisez la commande describe-snapshots.

    aws ec2 describe-snapshots --region us-east-1 --snapshot-ids snap-01234567890abcdef

    Exemple de sortie

    { "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", ...
  6. Pour créer une AMI, utilisez la commande register-image. Utilisez l’ID d’instantané que vous avez noté à l’étape précédente.

    • Pour définir le mode de démarrage sur l’UEFI, ajoutez le paramètre --boot-mode à la commande et spécifiez uefi comme valeur.

      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
    • Pour définir le mode de démarrage sur uefi-preferred, ajoutez le paramètre --boot-mode à la commande et spécifiez uefi-preferred comme valeur.

      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

    Sortie attendue

    { "ImageId": "ami-new_ami_123" }
  7. Pour vérifier que l’AMI nouvellement créée possède le mode de démarrage spécifié à l’étape précédente, utilisez la commande describe-images.

    aws ec2 describe-images --region us-east-1 --image-id ami-new_ami_123

    Sortie attendue

    { "Images": [ { "Architecture": "x86_64", "CreationDate": "2021-01-06T14:31:04.000Z", "ImageId": "ami-new_ami_123", "ImageLocation": "", ... "BootMode": "uefi" } ] }
  8. Lancez une nouvelle instance à l’aide de l’AMI nouvellement créée.

    Si le mode de démarrage de l’AMI est uefi ou legacy-bios, les instances créées à partir de cette AMI auront le même mode de démarrage. Si le mode de démarrage AMI est uefi-preferred, l’instance démarrera à l’aide de l’UEFI si le type d’instance prend en charge l’UEFI. Dans le cas contraire, elle démarrera à l’aide du BIOS hérité.

  9. Pour vérifier que la nouvelle instance possède le mode de démarrage attendu, utilisez la commande describe-instances.