設定 AMI 的開機模式 - Amazon Elastic Compute Cloud

設定 AMI 的開機模式

當您使用 register-image 命令建立 AMI 時,可以將 AMI 的開機模式設定為 uefilegacy-bios

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

您無法使用 create-image 命令來設定 AMI 的開機模式。使用 create-image,AMI 會繼承用於建立 AMI 的 EC2 執行個體的開機模式。例如,如果您從在 Legacy BIOS 上執行的 EC2 執行個體建立 AMI,AMI 開機模式將設定為 legacy-bios

警告

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

確定 AMI 的啟動模式 (AWS CLI 版本 1.19.34 及更新版本及 2.1.32 及更新版本)

  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

    預期的輸出結果

    { "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 建立的所有新執行個體將會繼承相同的開機模式。

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