当前位置:首页 > 帮助中心 > 在Linux中为KVM虚拟机启用UEFI支持

在Linux中为KVM虚拟机启用UEFI支持

发布时间:2020/7/20 10:13:28    来源: A5数据

本文介绍了什么是UEFI,以及如何在Linux中为KVM虚拟机启用UEFI支持。UEFI是Unified Extensible Firmware Interface的缩写,是传统BIOS的新替代品。与BIOS不同,UEFI是一个微小的操作系统,它位于计算机的硬件和固件之上。记住BIOS是存储在固件中的。UEFI可以比BIOS做得更多。我们可以把它存储在主板上的闪存中,也可以存储在硬盘上,甚至是网络共享上。

用UEFI取代传统BIOS的最初动机是在上世纪90年代中期第一批Intel-HP Itanium系统的早期开发过程中产生的。由于BIOS对大型服务器平台的限制,英特尔在1998年开始着手 "英特尔启动计划"。后来被称为 "可扩展固件接口"(EFI)。

苹果公司在其基于英特尔的Mac系统中采用了EFI,惠普公司在其Itanium 2服务器中采用了EFI。然而,其他芯片厂商对采用英特尔的EFI兴趣不大。2005年,由AMD、American Megatrends、ARM、Apple、Dell、Hewlett Packard Enterprise、HP Inc.、IBM、Insyde Software、Intel、Lenovo、Microsoft和Phoenix Technologies等一群领先的技术公司成立了一个名为Unified EFI Forum的非营利组织。

UEFI论坛的董事会成员包括这13家公司的代表。UEFI论坛以EFI 1.10规范为出发点,接手开发,并从2.0版本开始改名为统一EFI。他们一致认为UEFI是BIOS的通用替代品,并负责UEFI规范的管理和推广。

与传统的BIOS相比,UEFI规范提供了许多显著的优势。以下是几个显著的特点。

支持大于2.2TB或更大的硬盘分区。

UEFI 以 GPT 分区取代 MBR,因此您现在可以在一个硬盘上拥有四个以上的主要分区。

UEFI安全启动功能有助于在操作系统加载前抵御恶意软件攻击。

更快的启动时间。

时尚的用户界面,包括图形和鼠标光标支持。

高效的电源和系统管理。

强大的可靠性和故障管理。

向后和向前兼容。

请注意,您不能在现有的硬件中用UEFI替换BIOS。您需要购买一个支持并包含UEFI的硬件。UEFI规范是独立于平台的,支持多种平台和架构。希望你对UEFI有了基本的了解。现在让我们看看如何为KVM虚拟机启用UEFI支持。

在Linux中为KVM虚拟机启用UEFI支持

我假设您已经在系统上安装了KVM。如果尚未安装,请先安装。

在创建虚拟机之前,我们需要在KVM主机系统上安装OVMF软件包。OVMF是Intel Tianocore固件到KVM/QEMU虚拟机的端口。它包含适用于KVM和QEMU的样本UEFI固件。这样可以轻松调试和试验UEFI固件,以测试虚拟机或使用(随附的)EFI Shell。

安装KVM时,UEFI可能已作为依赖项安装。万一没有安装,可以如下所示安装。

如果您的KVM主机与CentOS / RHEL一起运行,请运行以安装虚拟机UEFI固件:

$ sudo dnf install edk2-ovmf

如果您的服务器系统是Ubuntu,请运行:

$ sudo apt install ovmf

我们刚刚启用了UEFI支持。让我们创建一个具有UEFI支持的虚拟机。

使用UEFI引导虚拟机

如果您喜欢命令行模式,请在创建新的虚拟机时添加“–boot uefi”选项:

$ virt-install --name centos8 --ram=2048 --vcpus=1 --cpu host --hvm --disk path=/var/lib/libvirt/images/centos8-vm1,size=10 --location /home/ostechnix/centos8.iso --network bridge=br0 --graphics vnc --boot uefi

您也可以使用Virt-manager GUI应用程序创建新的客户机。对于新手来说非常容易。

打开Virt-manager应用程序并创建一个新的虚拟机:

选择KVM guest虚拟机的安装文件或ISO文件位置:

选择KVM guest虚拟机的内存和cpu核心:

为KVM guest虚拟机创建磁盘映像:

选中“Customize configuration before install”安装前自定义配置框,然后单击完成按钮:

现在应该可以看到虚拟机的硬件细节。在概览部分,从固件下拉框中选择“UEFI X86_64…”选项。

单击Apply按钮,然后单击顶部的“Begin Installation”开始安装按钮,继续安装KVM guest虚拟机。

现在,您应该在初始启动时看到TianoCore初始屏幕:

继续并照常完成安装。

UEFI设置界面

对于传统的BIOS,必须在启动菜单出现之前按适当的功能键才能进入BIOS并修改任何BIOS设置。在UEFI中,这不是必需的。您可以直接从Grub引导菜单访问UEFI设置屏幕。

如果在KVM上启用了UEFI支持,则应该在Grub引导菜单中看到“系统设置”菜单项:

进入系统设置程序以查看UEFI设置界面的外观。

您可能会在物理系统上看到具有不同功能的其他UEFI界面。许多PC仍带有文本模式UEFI设置界面,其外观和工作方式类似于旧的BIOS设置屏幕,如下所示。

在您的PC固件中进行任何更改后,选择“Continue”继续,然后按Enter以返回到引导菜单。