You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
镜像
Linux自定义镜像启动方式由BIOS转换为UEFI
复制全文
下载 pdf
Linux自定义镜像启动方式由BIOS转换为UEFI
本文主要介绍如何在云上环境,将操作系统的启动模式由BIOS转换为UEFI。​
操作场景​
由于部分火山引擎平台云服务器实例仅支持UEFI启动模式,当您需要使用的自定义镜像为BIOS模式时,无法选用此类规格。您可以根据本文指引将目标自定义镜像的启动模式转化为UEFI。​
前提条件​
  • 您已将启动模式为BIOS的Linux镜像导入火山引擎平台,操作详情可查看导入自定义镜像。​
  • 本操作可能影响数据安全,建议您提前通过复制镜像等操作进行备份,保障数据安全。​
操作步骤​
  1. 登录镜像控制台。​
  1. 在顶部导航栏选择目标自定义镜像所在地域与项目。​
  1. 单击目镜像右侧“操作”列的“创建实例”按钮,使用该镜像创建一个临时实例。​
您可以选用该镜像可创建的最低规格实例,例如:ecs.g2i.large。​
  1. 在临时实例中执行如下命令,检查实例系统盘是否有可用于创建efi分区的空闲空间。​
  • ​
    parted /dev/vda print free​
    ​
  • 若回显如下所示无空闲空间或空闲空间不足1GB,需自行扩容系统盘(增加约1GB空间),操作详情可查看扩容云盘(Linux)。​
  • ​​​
  • 若回显如下所示,有不低于1GB的空闲空间,请跳过本步骤。​
  • ​​​
  1. 使用GPT fdisk工具,将空闲空间进行分区。​
  1. 执行gdisk /dev/vda命令,增加BIOS boot partition与EFI System两个分区。​
  • ​​​
  1. 输入n,根据指引增加BIOS boot partition分区并按回车键。​
注意​
first sector值必须为34。​
  • ​​​
  1. 输入n,根据指引增加EFI System分区并按回车键。​
说明​
分区大小仅需200MB即可。​
  • ​​​
  1. 输入w,并输入y确认并完成分区。​
  • ​​​
  1. 执行如下命令,读取分区表并更新分区信息。​
  • ​
    partprobe /dev/vda​
    ​
  1. 执行如下命令,可以查看新增加BIOS boot partition分区和EFI System分区信息。​
  • ​
    parted -l​
    lsblk -l​
    ​
  • 回显示例:​
  • ​​​
  1. 挂载UEFI分区。​
  1. 执行如下命令,格式化ESP。​
说明​
  • 若执行时无法找到命令,请执行yum install dosfstools命令安装工具。​
  • 请将vda3中的数字3替换为上文步骤6.2中EFI分区的Partition number。​
  • ​
    mkfs.vfat /dev/vda3​
    ​
  • 回显示例:​
  • ​​​
  1. 执行如下命令,挂载UEFI分区至/boot/efi目录。​
若/boot/efi目录不存在,请执行mkdir /boot/efi命令创建。​
  • ​
    mount /dev/vda3 /boot/efi​
    ​
  1. 执行如下命令,确认是否挂载成功。​
  • ​
    lsblk​
    ​
  • 回显示例:​
  • ​​​
  1. 将UEFI分区挂载信息写入fstab文件。​
  1. 执行如下命令,查看UEFI分区的UUID。​
本实践中,UEFI分区/dev/vda3的UUID为F6BA-62E7。​
  • ​
    blkid​
    ​
  • 回显示例:​
  • ​​​
  1. 执行如下命令,编辑fstab文件。​
  • ​
    vim /etc/fstab​
    ​
  1. 按i键进入插入模式,将UEFI分区的UUID添加到文件中。​
  • ​
    UUID=F6BA-62E7 /boot/efi vfat umask=0077 0 1​
    ​
  1. 按esc键退出编辑,并输入:wq按回车键,保存并退出文件。​
  1. 重新安装BootLoader​
  1. 执行如下命令,更新软件包列表。​
  • CentOS镜像​
  • ​
    yum makecache​
    ​
  • Debian/Ubuntu镜像​
  • ​
    apt-get update​
    ​
  1. 执行如下命令,安装efibootmgr。​
  • CentOS镜像​
  • ​
    yum install efibootmgr​
    ​
  • Debian/Ubuntu镜像​
  • ​
    apt install efibootmgr​
    ​
  1. 执行如下命令,安装shim。​
  • CentOS镜像​
  • ​
    yum install shim​
    ​
  • Debian/Ubuntu镜像​
  • ​
    apt install shim​
    ​
  1. 执行如下命令,安装grub2-efi。​
  • CentOS镜像​
  • ​
    yum install grub2-efi-x64 && yum install grub2-efi-x64-modules​
    ​
  • Debian/Ubuntu镜像​
  • ​
    apt install --reinstall grub-common grub-efi-amd64​
    ​
  1. 执行如下命令,以UEFI为引导重装grub。​
  • CentOS镜像​
  • ​
    grub2-install --target=x86_64-efi --removable --efi-directory=/boot/efi --bootloader-id=GRUB​
    ​
  • Debian/Ubuntu镜像​
  • ​
    grub-install --target=x86_64-efi --removable --efi-directory=/boot/efi --bootloader-id=GRUB​
    ​
  1. 执行如下命令,重新生成grub2-config文件。​
注意​
重新生成grub2-config文件将覆盖原有配置,建议您提前备份。​
  • CentOS镜像​
  • ​
    grub2-mkconfig -o /boot/grub2/grub.cfg​
    ​
  • Debian/Ubuntu镜像​
  • ​
    grub-mkconfig -o /boot/grub/grub.cfg​
    ​
  1. 执行如下命令,修改grub2-mkconfig文件配置。​
Debian、Ubuntu镜像请跳过本步骤。​
  • ​
    sed -i 's/linux16/linuxefi/g' /boot/grub2/grub.cfg​
    sed -i 's/initrd16/initrdefi/g' /boot/grub2/grub.cfg​
    ​
  1. 为确保您可以正常使用火山引擎平台提供实例规格,请根据安装Virtio1.1驱动指引,安装Virtio1.1驱动。​
  1. 将临时实例操作系统制作为新的自定义镜像,操作详情可查看通过实例创建自定义镜像(Linux)。​
  1. 至此,您得到的UEFI模式启动的自定义镜像。后续,您可以根据需求自行释放临时实例、云盘、公网IP等云资源;还可以使用新自定义镜像购买新实例或作为已有实例的操作系统,操作详情可查看通过自定义镜像购买实例或更换操作系统。​
  • 您还可以在使用该镜像创建的实例中执行如下命令,验证是否修改成功。​
  • ​
    df -h​
    efibootmgr​
    ​
  • 回显示例:​
如下所示,新镜像为UEFI启动模式。​
  • ​​​
常见问题​
为什么在镜像控制台查看新制作的镜像信息,其“启动方式”依旧是BIOS?​
​​​
  • 问题原因:​
  • 由于镜像控制台的镜像“启动方式”,是沿用了创建该镜像的临时实例的启动模式(BIOS),因此得到的新镜像在控制台其启动方式也是BIOS,您需要修改控制台展示的“启动方式”为UEFI,才能不影响镜像使用。​
  • 解决方案:​
使用新制作的镜像的创建实例,为什么通过VNC登录时显示花屏。​
​​​
  • 问题原因:​
  • 该问题可能是由于您的镜像中没有安装相应内核版本的Cirrus显卡驱动,导致通过VNC登录时显示异常。​
  • 解决方案:​
  1. 使用SSH登录目标实例。​
  1. 执行如下命令,查看操作系统中是否安装了Cirrus显卡驱动。​
  • ​
    modinfo cirrus​
    ​
  • 若已安装驱动,请提交工单获取技术支持。​
  • 若未安装,请执行如下命令,安装相应内核版本的Cirrus显卡驱动。​
  • CentOS镜像​
  • ​
    yum makecache​
    install linux-modules-extra-$(uname -r) -y​
    ​
  • Debian/Ubuntu镜像​
  • ​
    apt-get update​
    apt-get install linux-modules-extra-$(uname -r) -y​
    ​
​
最近更新时间:2026.10.14 17:52:03
这个页面对您有帮助吗?
有用
有用
无用
无用