对于迁移上云或自定义镜像导入等场景,为避免实例规格与镜像文件不兼容导致启动失败,需检查并配置镜像启动模式,从而确保云服务器正常启动并稳定运行。
启动模式类型
ECS实例支持BIOS和UEFI两种启动模式。
BIOS :传统的固件接口,用于初始化硬件并加载操作系统,主要用于兼容旧操作系统(如 CentOS 6、Windows XP 及更早版本)。
UEFI : BIOS 的现代化替代方案,支持安全启动(Secure Boot)。
启动模式生效规则
ECS实例的最终启动模式,由实例规格和镜像两者共同支持的启动模式决定。实例规格决定了硬件层面的物理限制,而镜像决定了软件层面的引导方式。
实例规格的启动模式:由阿里云定义,不可更改。分为
UEFI、BIOS及同时支持两种模式(UEFI & BIOS)。镜像的启动模式:公共镜像的启动模式由系统定义;自定义镜像的启动模式可在创建后、导入时进行修改,分为
UEFI、BIOS及UEFI-Preferred(表示镜像同时支持两种模式,但优先尝试以UEFI模式启动)。
实例规格和镜像启动模式存在匹配关系,若实例规格与镜像启动模式不匹配(例如UEFI规格使用了BIOS镜像),实例可能无法正常启动。
实例规格的启动模式 | 镜像的启动模式 | 实例最终启动模式 |
|
|
|
|
|
|
|
| 跟随镜像启动模式。 镜像启动模式为 镜像启动模式为 |
|
|
配置启动模式
阿里云在导入自定义镜像时只能识别镜像的元数据,无法深入检测和修改镜像内部的引导配置。配置自定义镜像启动模式前,请确保镜像文件内部已正确配置对应引导加载程序(如UEFI下的EFI System Partition或BIOS下的MBR),错误的配置将导致实例无法识别系统盘,造成启动失败。
导入自定义镜像时指定启动模式
控制台
前往ECS控制台-镜像,在顶部菜单栏处,选择目标ECS实例所在地域。
在镜像页面右上角,选择导入镜像。

在导入镜像窗口中,完成必要参数填写后,选择启动模式。
镜像导入时不支持指定为UEFI-Preferred,如需设为UEFI-Preferred,请在镜像导入成功后修改。

单击确定导入。
API
使用ImportImage接口导入自定义镜像时,通过BootMode参数指定自定义镜像的启动模式。
修改已有自定义镜像的启动模式
为了保证已创建实例的稳定性和一致性,自定义镜像用于创建实例后,镜像的启动模式将无法修改。
控制台
前往ECS控制台-镜像,在顶部菜单栏处,选择目标ECS实例所在地域。
单击目标镜像ID,进入镜像详情页面。
在基本信息区域,单击启动模式右侧的
图标。在设置启动模式窗口,选择启动模式之后,单击确定。
API
调用ModifyImageAttribute接口,通过BootMode参数来修改镜像的启动模式。
常见问题
为什么在控制台创建ECS实例时,我看不到或无法选择某些版本的镜像?
在控制台创建ECS实例过程中,选择的实例规格启动模式会约束可选择的镜像版本。例如选择仅支持UEFI启动模式的安全增强型实例规格,控制台将过滤掉仅支持BIOS模式的镜像。
如何查看实例规格支持的启动模式?
控制台
前往ECS控制台-自定义购买。
在实例页面中选择全部规格页签,单击查看更多规格参数。

勾选支持的启动模式,单击确定。

输入目标实例规格,即可查询支持的启动模式。

API
通过DescribeInstanceTypes接口进行查询,返回结果中的SupportedBootModes即为实例规格的启动模式。
在
InstanceTypeFamily或InstanceTypes参数中,填入需要查询的实例规格或规格族。单击发起调用。
在返回结果的
SupportedBootModes字段中,即可查看该规格支持的启动模式。
如何查看镜像的启动模式?
控制台
前往ECS控制台-镜像,在顶部菜单栏处,选择目标ECS实例所在地域。
单击目标镜像ID,进入镜像详情页面。
在基本信息区域,查看镜像的启动模式。

API
调用DescribeImages接口,通过返回值中的BootMode参数查看镜像的启动模式。
如何检查我的自定义镜像内部是BIOS还是UEFI引导?
需要在制作镜像的源服务器或由该镜像创建的临时实例上进行检查:
Linux系统:检查是否存在
/sys/firmware/efi目录。如果存在,表示为UEFI引导。Windows系统:检查系统盘的分区表类型。以管理身份打开PowerShell,执行
Get-Disk命令。在返回结果中,查看PartitionStyle列显示的磁盘分区表类型,GPT分区表对应UEFI引导,而MBR分区表对应BIOS引导。