Determine the supported boot modes of an EC2 instance type - Amazon Elastic Compute Cloud
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Determine the supported boot modes of an EC2 instance type

You can use the Amazon CLI or the Tools for PowerShell to determine the supported boot modes of an instance type.

To determine the supported boot modes of an instance type

You can use the following methods to determine the supported boot modes of an instance type.

Amazon CLI

Use the describe-instance-types command to determine the supported boot modes of an instance type. The --query parameter filters the output to return only the supported boot modes.

The following example shows that m5.2xlarge supports both UEFI and Legacy BIOS boot modes.

aws ec2 describe-instance-types --region us-east-1 --instance-types m5.2xlarge --query "InstanceTypes[*].SupportedBootModes"

The following is example output.

[ [ "legacy-bios", "uefi" ] ]

The following example shows that t2.xlarge supports only Legacy BIOS.

aws ec2 describe-instance-types --region us-east-1 --instance-types t2.xlarge --query "InstanceTypes[*].SupportedBootModes"

The following is example output.

[ [ "legacy-bios" ] ]
PowerShell

Use the Get-EC2InstanceType (Tools for PowerShell) Cmdlet to determine the supported boot modes of an instance type.

The following example shows that m5.2xlarge supports both UEFI and Legacy BIOS boot modes.

Get-EC2InstanceType -Region us-east-1 -InstanceType m5.2xlarge | Format-List InstanceType, SupportedBootModes

The following is example output.

InstanceType : m5.2xlarge SupportedBootModes : {legacy-bios, uefi}

The following example shows that t2.xlarge supports only Legacy BIOS.

Get-EC2InstanceType -Region us-east-1 -InstanceType t2.xlarge | Format-List InstanceType, SupportedBootModes

The following is example output.

InstanceType : t2.xlarge SupportedBootModes : {legacy-bios}
To determine the instance types that support UEFI

You can use the following methods to determine the instance types that support UEFI;

Amazon CLI

The available instance types vary by Amazon Web Services Region. To see the available instance types that support UEFI in a Region, use the describe-instance-types command with the --region parameter. If you omit the --region parameter, your configured default Region is used in the request. Include the --filters parameter to scope the results to the instance types that support UEFI and the --query parameter to scope the output to the value of InstanceType.

aws ec2 describe-instance-types --filters Name=supported-boot-mode,Values=uefi --query "InstanceTypes[*].[InstanceType]" --output text | sort

The following is example output.

a1.2xlarge a1.4xlarge a1.large a1.medium a1.metal a1.xlarge c5.12xlarge ...
PowerShell
PS C:\> Get-EC2InstanceType | ` Where-Object {$_.SupportedBootModes -Contains "uefi"} | ` Sort-Object InstanceType | ` Format-Table InstanceType -GroupBy CurrentGeneration

The following is example output.

CurrentGeneration: False InstanceType ------------ a1.2xlarge a1.4xlarge a1.large a1.medium a1.metal a1.xlarge CurrentGeneration: True InstanceType ------------ c5.12xlarge c5.18xlarge c5.24xlarge c5.2xlarge c5.4xlarge c5.9xlarge ...
To determine the instance types that support UEFI Secure Boot and persist non-volatile variables

Bare metal instances do not support UEFI Secure Boot and non-volatile variables, so these examples exclude them from the output.

Amazon CLI

Use the describe-instance-types command, and exclude the bare metal instances from the output by including the Name=bare-metal,Values=false filter.

aws ec2 describe-instance-types --filters Name=supported-boot-mode,Values=uefi Name=bare-metal,Values=false --query "InstanceTypes[*].[InstanceType]" --output text | sort

The following is example output.

a1.2xlarge a1.4xlarge a1.large a1.medium ...
PowerShell
PS C:\> Get-EC2InstanceType | ` Where-Object { ` $_.SupportedBootModes -Contains "uefi" -and ` $_.BareMetal -eq $False } | ` Sort-Object InstanceType | ` Format-Table InstanceType, SupportedBootModes, BareMetal, @{Name="SupportedArchitectures"; Expression={$_.ProcessorInfo.SupportedArchitectures}}
InstanceType SupportedBootModes BareMetal SupportedArchitectures ------------ ------------------ --------- ---------------------- a1.2xlarge {uefi} False arm64 a1.4xlarge {uefi} False arm64 a1.large {uefi} False arm64 a1.medium {uefi} False arm64 a1.xlarge {uefi} False arm64 c5.12xlarge {legacy-bios, uefi} False x86_64 c5.18xlarge {legacy-bios, uefi} False x86_64