設置啟動模式 AMI - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設置啟動模式 AMI

當您AMI使用register-image指令建立時,您可以AMI將的啟動模式設定為uefilegacy-bios、或uefi-preferred

當AMI啟動模式設定為時uefi-preferred,執行個體會以下列方式啟動:

  • 對於同時支援UEFI和 Legacy BIOS (例如m5.large) 的執行個體類型,執行個體會使用UEFI.

  • 對於僅支援 Legacy BIOS (例如m4.large) 的執行個體類型,執行個體會使用 Legacy 啟動BIOS。

注意

如果將AMI開機模式設定為uefi-preferred,作業系統必須支援啟動UEFI和 Legacy 的功能BIOS。

目前,您無法使用該register-image命令來創建同時支持 Nitro TPM 和UEFI首選的命令。AMI

警告

某些功能 (例如「UEFI安全開機」) 僅適用於開機的執行個體UEFI。當您將uefi-preferredAMI啟動模式參數與不支援的執行個體類型搭配使用時UEFI,執行個體會以 Legacy 的身分啟動,而BIOS且會停用UEFI相依功能。如果您依賴UEFI相依功能的可用性,請將您的AMI開機模式參數設定為uefi

若要將現有 Legacy BIOS 型執行個體轉換為 LegacyUEFI,或將現有的執行個體轉換UEFI為 LegacyBIOS,您需要執行以下幾個步驟:首先,修改執行個體的磁碟區和作業系統,以支援選取的開機模式。然後,建立磁碟區的快照。最後,使register-image用建立AMI使用快照。

您無法AMI使用create-image指令設定的開機模式。使用 create-image,AMI會繼承用於EC2建立. AMI 例如,如果您AMI從在 Legacy 上執行的EC2執行個體建立BIOS,則AMI開機模式會設定為legacy-bios。如果您AMI從使用啟動模式設為啟動的EC2執行個AMI體建立執行個體uefi-preferred,則建立的AMI執行個體也會將其開機模式設定為uefi-preferred

警告

設定AMI開機模式參數並不會自動為指定的開機模式設定作業系統。在繼續執行這些步驟之前,您必須先對執行個體的磁碟區和作業系統進行適當的修改,以支援使用選取的開機模式進行開機;否則,產生的結果AMI將無法使用。例如,如果您要將舊版 BIOS Windows 執行個體轉換為UEFI,您可以使用 Microsoft 提供的MBR2GPT工具將系統磁碟從轉換MBR為GPT。所需的修改視作業系統而異。如需詳細資訊,請參閱作業系統的手冊。

若要設定 AMI (AWS CLI) 的開機模式
  1. 對執行個體的磁碟區和作業系統進行適當的修改,以支援透過選取的開機模式開機。所需的修改視作業系統而異。如需詳細資訊,請參閱作業系統的手冊。

    注意

    如果您不執行此步驟,AMI將無法使用。

  2. 若要尋找執行個體的磁碟區 ID,請使用 describe-instances 命令。您將在下一個步驟中建立此磁碟區的快照。

    aws ec2 describe-instances --region us-east-1 --instance-ids i-1234567890abcdef0

    預期的輸出結果

    ... "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "AttachTime": "", "DeleteOnTermination": true, "Status": "attached", "VolumeId": "vol-1234567890abcdef0" } } ...
  3. 若要建立磁碟區的快照,請使用 create-snapshot 命令。使用上一個步驟的磁碟區 ID。

    aws ec2 create-snapshot --region us-east-1 --volume-id vol-1234567890abcdef0 --description "add text"

    預期的輸出結果

    { "Description": "add text", "Encrypted": false, "OwnerId": "123", "Progress": "", "SnapshotId": "snap-01234567890abcdef", "StartTime": "", "State": "pending", "VolumeId": "vol-1234567890abcdef0", "VolumeSize": 30, "Tags": [] }
  4. 請注意上一個步驟輸出中的快照 ID。

  5. 等到快照建立completed後,再進行下一個步驟。若要查詢快照的狀態,請使用 describe-snapshots 命令。

    aws ec2 describe-snapshots --region us-east-1 --snapshot-ids snap-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", ...
  6. 若要建立新的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" }
  7. 若要確認新建立的啟動模式是否AMI具有您在上一個步驟中指定的開機模式,請使用指describe-images令。

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

    預期的輸出結果

    { "Images": [ { "Architecture": "x86_64", "CreationDate": "2021-01-06T14:31:04.000Z", "ImageId": "ami-new_ami_123", "ImageLocation": "", ... "BootMode": "uefi" } ] }
  8. 使用新建立的執行個體啟動新AMI執行個體。

    如果AMI啟動模式為uefilegacy-bios,則從此模式建立的執行個體AMI將具有與AMI. 如果AMI啟動模式為uefi-preferred,則執行個體將使用UEFI執行個體類型支援的情況下啟動UEFI;否則,執行個體將會使用 Legacy 啟動BIOS。如需詳細資訊,請參閱 考量事項

  9. 若要驗證新執行個體是否具有預期的開機模式,請使用 describe-instances 命令。