本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Amazon EC2 AMI 的開機模式
當您使用 register-imageuefi
、legacy-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
警告
某些功能 (例如 UEFI 安全開機) 僅適用於透過 UEFI 開機的執行個體。當您將 uefi-preferred
AMI 開機模式參數與不支援 UEFI 的執行個體類型搭配使用時,執行個體會以 Legacy BIOS 的形式啟動,而且會停用與 UEFI 相關的功能。如果您依賴 UEFI 相關功能的可用性,則請將 AMI 開機模式參數設定為 uefi
。
若要將現有的 Legacy BIOS 型執行個體轉換為 UEFI,或將現有的 UEFI 型執行個體轉換為 Legacy BIOS,您需要執行數個步驟:首先,修改執行個體的磁碟區和作業系統,以支援選取的開機模式。然後,建立磁碟區的快照。最後,使用 register-image
您無法使用 create-imagelegacy-bios
。如果您從使用 AMI 啟動且開機模式設定為 uefi-preferred
的 EC2 執行個體建立 AMI,則建立的 AMI 也會將其開機模式設定為 uefi-preferred
。
警告
設定 AMI 開機模式參數並不會自動針對指定的開機模式設定作業系統。在繼續執行這些步驟之前,您必須先對執行個體的磁碟區和作業系統進行適當的修改,以支援使用選取的開機模式開機;否則,產生的 AMI 將無法使用。例如,如果您要將 Legacy 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 開機;否則,執行個體將使用 Legacy BIOS 開機。 -
若要驗證新執行個體是否具有預期的開機模式,請使用 describe-instances
命令。