Amazon EC2 AMI のブートモードを設定する
register-image コマンドを使用して AMI を作成する際に、AMI のブートモードを uefi
、legacy-bios
または uefi-preferred
に設定することができます。
AMI ブートモードを uefi-preferred
に設定すると、インスタンスは次のように起動します。
-
UEFI とレガシー BIOS の両方をサポートするインスタンスタイプ (例えば
m5.large
など) の場合、インスタンスは UEFI を使用して起動します。 -
レガシー BIOS のみをサポートするインスタンスタイプ (例えば
m4.large
など) の場合、インスタンスはレガシー BIOS を使用して起動します。
注記
AMI ブートモードを uefi-preferred
に設定した場合、オペレーティングシステムは UEFI と Legacy BIOS の両方を起動する機能をサポートしている必要があります。
現在、register-image コマンドを使用して NitrotPM と UEFI Preferred の両方をサポートする AMI を作成することはできません。
警告
UEFI セキュアブートなどの一部の機能は、UEFI で起動するインスタンスでのみ使用できます。UEFI をサポートしないインスタンスタイプで uefi-preferred
AMI ブートモードパラメータを使用すると、インスタンスはレガシー BIOS として起動し、UEFI 依存機能は無効になります。UEFI に依存する機能の可用性を重視する場合は、AMI ブートモードパラメータを uefi
に設定します。
既存のレガシー BIOS ベースのインスタンスを UEFI に、または既存の UEFI ベースのインスタンスをレガシー BIOS に変換するには、いくつかの手順を実行する必要があります。まず、選択したブートモードをサポートするように、インスタンスのボリュームとオペレーティングシステムを変更します。次に、ボリュームのスナップショットを作成します。最後に、register-image を使用して、スナップショットから AMI を作成します。
create-image コマンドを使用して AMI のブートモードを設定することはできません。create-image を使用すると、AMI には、その作成に使用される EC2 インスタンスのブートモードが継承されます。例えば、レガシー BIOS で実行されている EC2 インスタンスから AMI を作成する場合、その AMI のブートモードは legacy-bios
として設定されます。ブートモードが uefi-preferred
に設定された AMI を使用して起動された EC2 インスタンスから AMI を作成すると、作成された AMI のブートモードも uefi-preferred
に設定されます。
警告
AMI ブートモードパラメータを設定しても、オペレーティングシステムは指定されたブートモードに自動的に変更されません。これらのステップに進む前に、まずインスタンスのボリュームとオペレーティングシステムに対し、選択したブートモードを使用しての起動をサポートするよう適切な変更を行う必要があります。これを行わないと、作成された AMI は使用不能になります。例えば、レガシー BIOS ベースの Windows インスタンスを UEFI に変換する場合、Microsoft の MBR2GPT
AMI のブートモードを設定するには (AWS CLI)
-
インスタンスのボリュームとオペレーティングシステムに対し、選択したブートモードでの起動をサポートするための適切な変更を加えます。ここでの変更内容は、オペレーティングシステムにより異なります。詳細については、オペレーティングシステムのマニュアルを参照してください。
注記
この手順を実行しないと、AMI は使用不可能になります。
-
インスタンスのボリューム ID を、describe-instances コマンドを使用して確認します。次のステップでは、このボリュームのスナップショットを作成します。
aws ec2 describe-instances --region
us-east-1
--instance-idsi-1234567890abcdef0
正常な出力
... "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "AttachTime": "", "DeleteOnTermination": true, "Status": "attached", "VolumeId": "
vol-1234567890abcdef0
" } } ... -
ボリュームのスナップショットを作成するには、create-snapshot コマンドを使用します。前のステップで取得したボリューム ID を使用します。
aws ec2 create-snapshot --region
us-east-1
--volume-idvol-1234567890abcdef0
--description "add text
"正常な出力
{ "Description": "add text", "Encrypted": false, "OwnerId": "123", "Progress": "", "SnapshotId": "
snap-01234567890abcdef
", "StartTime": "", "State": "pending", "VolumeId": "vol-1234567890abcdef0
", "VolumeSize": 30, "Tags": [] } -
前のステップで出力されたスナップショット ID を書き留めます。
-
スナップショットの作成状況が
completed
になるまで待ってから、次のステップに進みます。スナップショットの状態は、describe-snapshots コマンドを使用して照会できます。aws ec2 describe-snapshots --region
us-east-1
--snapshot-idssnap-01234567890abcdef
出力例
{ "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", ...
-
新しい AMI を作成するには、register-image コマンドを使用します。前のステップで記録したスナップショット ID を使用します。
-
起動モードを UEFI に設定するには、コマンドに
--boot-mode
パラメータを追加してuefi
を値として指定します。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 -
起動モードを
uefi-preferred
に設定するには、コマンドに--boot-mode
パラメータを追加してuefi-preferred
を値として指定します。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
正常な出力
{ "ImageId": "ami-new_ami_123" }
-
-
新しく作成した AMI が、前のステップで指定したブートモードに設定されていることを確認するには、describe-images コマンドを使用します。
aws ec2 describe-images --region
us-east-1
--image-idami-new_ami_123
正常な出力
{ "Images": [ { "Architecture": "x86_64", "CreationDate": "2021-01-06T14:31:04.000Z", "ImageId": "
ami-new_ami_123
", "ImageLocation": "", ... "BootMode": "uefi" } ] } -
新しく作成した AMI を使用して、新しいインスタンスを起動します。
AMI ブートモードが
uefi
またはlegacy-bios
の場合、この AMI から作成されたインスタンスは AMI と同じブートモードになります。AMI ブートモードがuefi-preferred
の場合、インスタンスタイプが UEFI をサポートしていれば、インスタンスは UEFI を使用して起動します。それ以外の場合、インスタンスはレガシー BIOS を使用して起動します。 -
新しいインスタンスが想定通りのブートモードになっているかは、describe-instances コマンドにより確認できます。