ECS实例启动模式最佳实践

启动模式是指创建ECS实例过程中启动系统盘的方式,创建ECS实例时的启动模式由选择的实例规格的启动模式和镜像的启动模式共同决定。本文为您介绍ECS实例的启动模式、如何查看公共镜像的启动模式、指定或修改自定义镜像的启动模式。

说明

启动模式决定ECS实例首次创建自启动时以哪种模式启动系统盘,后续重启实例会继承创建实例设置的启动模式。

启动模式简介

ECS的启动模式包括BIOS(Legacy)和UEFI两类。

  • BIOS(Legacy)模式:BIOS是系统启动过程中的基础软件层,负责初始化硬件并提供基本的硬件服务,以支持操作系统的启动。BIOS是一种传统的固件接口标准,其功能相对有限。

  • UEFI模式:UEFI是BIOS的现代替代品,是一个更高级、模块化的固件接口标准,提供更强大、灵活和安全的启动环境。UEFI模式相对于BIOS(Legacy)模式有一些优势,具体说明如下。

    UEFI相对于BIOS(Legacy)的优势

    • 支持大容量硬盘(突破大小限制)

      传统BIOS(Legacy)采用MBR(主引导记录分区)分区表,仅支持2 TB以下的硬盘。而UEFI采用GPT(全局分区)分区表,可以支持2 TB以上的硬盘。

    • 速度和性能

      UEFI启动时只需要加载必要的驱动程序,而传统BIOS(Legacy)启动时需要扫描所有设备,因此UEFI相比于BIOS(Legacy)启动速度更快一些。

    • 安全性

      UEFI还提供安全启动功能。UEFI只允许在启动时加载真实的驱动程序和服务,以确保在实例启动时不会加载任何恶意软件。UEFI还要求驱动程序和内核具有数字签名,这使其成为打击盗版和引导扇区恶意软件的有效工具。

    • 可扩展性

      UEFI是一个可扩展的、标准化的固态接口,而BIOS(Legacy)是固定的、缺乏文档的、完全基于经验和晦涩约定的一个事实标准。

    • 使用方式

      UEFI是32位或64位高级语言程序(C语言),突破实模式限制,可以达到要求的最大寻址。而BIOS(Legacy)是16位的汇编语言程序,只能运行在16位实模式,可访问的内存也只有1 MB。

ECS实例的启动模式

ECS实例的启动模式(下表第3列)由实例规格的启动模式(下表第1列)和镜像的启动模式(下表第2列)共同决定。

实例规格的启动模式

镜像的启动模式

ECS实例的启动模式

UEFI

UEFI

UEFI

UEFI

UEFI-Preferred

UEFI

BIOS(Legacy)

BIOS(Legacy)

BIOS(Legacy)

BIOS(Legacy)

UEFI-Preferred

BIOS(Legacy)

同时支持BIOS(Legacy)和UEFI

UEFI

UEFI

同时支持BIOS(Legacy)和UEFI

BIOS(Legacy)

BIOS(Legacy)

同时支持BIOS(Legacy)和UEFI

UEFI-Preferred

UEFI

说明

:镜像的启动模式为UEFI-Preferred时,表示同时支持BIOS(Legacy)模式和UEFI模式。如果实例规格同时支持BIOS(Legacy)和UEFI,镜像启动模式为UEFI-Preferred时,则创建ECS时启动模式为UEFI。

实例规格的启动模式

ECS实例规格支持的启动模式包括UEFI和BIOS(Legacy),或者同时支持UEFI和BIOS(Legacy),不可修改。您可以通过DescribeInstanceTypes接口返回值中的SupportedBootModes参数值判断实例规格的启动模式。

在创建ECS实例过程中,选择的实例规格启动模式会约束可选择的镜像版本。例如您选择了仅支持UEFI启动模式的安全增强型实例规格,则仅能选择UEFI版本的镜像。示例如下图所示:

image..png

镜像的启动模式

公共镜像的启动模式(系统定义)

不同版本的公共镜像默认支持的启动模式说明如下:

  • UEFI版本的公共镜像:默认支持UEFI启动模式。

    例如Alibaba Cloud Linux 2.1903 64位UEFI版、Ubuntu 18.04 64位UEFI版、Debian 11.6 64位UEFI版等操作系统名称带UEFI的公共镜像的启动模式是UEFI。

  • Arm版本的公共镜像:默认支持UEFI启动模式。

    例如Ubuntu 20.04 64位Arm版、CentOS 8.4 64位Arm版等操作系统名称带Arm的公共镜像的启动模式是UEFI。

  • 其他公共镜像:默认支持BIOS(Legacy)启动模式、UEFI-Preferred启动模式。

自定义镜像的启动模式(用户自定义)

指定自定义镜像的启动模式

您可以通过ECS控制台和API接口两种方式,指定自定义镜像的启动模式。

  • 方式一:ECS控制台

    控制台目前仅支持在导入自定义镜像时指定镜像的启动模式。如下图所示,Arm架构默认UEFI启动模式,非Arm架构可以根据需要选择合适的启动模式。更多信息,请参见导入自定义镜像

    image

  • 方式二:OpenAPI

    您可以在使用ImportImage接口导入自定义镜像或者CreateImage接口创建自定义镜像时,通过BootMode参数值指定自定义镜像的启动模式。

    • BootMode=BIOS:启动模式为BIOS(Legacy)

    • BootMode=UEFI:启动模式为UEFI

    • BootMode=UEFI-Preferred:同时支持BIOS(Legacy)模式和UEFI模式

      说明

      导入自定义镜像暂不支持指定UEFI-Preferred启动模式。

修改自定义镜像的启动模式

公共镜像的启动模式不支持修改,您可以基于以下场景修改自定义镜像的启动模式。

  • 如果您修改了ECS实例系统盘的引导分区配置,并希望基于该实例新创建的自定义镜像能够按照新的启动模式引导,则需要修改自定义镜像的启动模式。

  • 您创建或导入自定义镜像时误选启动模式,希望后期修改。

    重要
    • 如果自定义镜像已创建实例,则不允许修改自定义镜像的启动模式。

    • 修改启动模式后,必须与实例规格和镜像本身支持的启动模式匹配,实例才能正常启动。

您可以通过ECS控制台和API接口两种方式修改自定义镜像的启动模式。

  • 方式一:ECS控制台

    您可以在ECS控制台的镜像详情页面,修改镜像的启动模式。具体操作,请参见修改自定义镜像的属性信息

  • 方式二:OpenAPI

    您可以通过ModifyImageAttribute接口修改BootMode参数值来修改镜像的启动模式。

    BootMode=BIOS:启动模式为BIOS(Legacy)

    BootMode=UEFI:启动模式为UEFI

    BootMode=UEFI-Preferred:同时支持BIOS(Legacy)模式和UEFI模式

查看镜像的启动模式

  • 方式一:ECS控制台

    您可以在ECS控制台的镜像详情页面查看镜像的启动模式。

    image

  • 方式二:OpenAPI

    您可以通过DescribeImages接口返回值中的BootMode参数值判断镜像的启动模式。

    • BootMode=BIOS:启动模式为BIOS(Legacy)

    • BootMode=UEFI:启动模式为UEFI

    • BootMode=UEFI-Preferred:同时支持BIOS(Legacy)模式和UEFI模式

相关文档

  • 如果您在创建或导入自定义镜像时配置了镜像检测能力,镜像检测功能也会检测镜像的启动模式。更多信息,请参见镜像检测概述

  • 您在本地制作镜像文件时,也可以指定BIOS(Legacy)或UEFI模式来安装操作系统。更多信息,请参见制作Linux镜像文件制作Windows镜像文件