BIOS 初始化硬件并将操作系统加载到内存中。 在现代硬件中,BIOS 被 UEFI 取代。 本指南解释了什么是 UEFI 以及如何在 Linux 中为 KVM 虚拟机启用 UEFI 支持。
内容
什么是 UEFI?
欧足联, 短缺 你化 乙可扩展的 F固件 一世界面,是传统BIOS的全新替代品。
与 BIOS 不同,UEFI 是一个位于计算机硬件和固件顶部的微型操作系统。 请记住,BIOS 存储在固件中。
UEFI 可以做的不仅仅是 BIOS。 我们可以将其存储在主板上的闪存中,也可以存储在硬盘驱动器上,甚至可以存储在网络共享中。
用 UEFI 取代传统 BIOS 的最初动机是在 1990 年代中期第一批 Intel-HP Itanium 系统的早期开发过程中诞生的。
由于 BIOS 对大型服务器平台的限制,Intel 于 1998 年开始致力于“Intel Boot Initiative”. 它后来被称为可扩展固件接口 (EFI)。
Apple 为其基于 Intel 的 Mac 系统采用了 EFI,HP 为其 Itanium 2 服务器采用了 EFI。 然而,其他芯片供应商对采用英特尔的 EFI 没有太大兴趣。
2005 年,一家名为 统一 EFI 论坛 由 AMD、American Megatrends、ARM、Apple、Dell、Hewlett Packard Enterprise、HP Inc.、IBM、Insyde Software、Intel、Lenovo、Microsoft 和 Phoenix Technologies 等领先科技公司组成。
UEFI 论坛的董事会包括来自所有这 13 家公司的代表。
以 EFI 1.10 规范为起点,UEFI 论坛接管了开发,并从 2.0 版开始将其更名为 Unified EFI。
他们同意 UEFI 作为 BIOS 的通用替代品,并负责 UEFI 规范的管理和推广。
UEFI优势
UEFI 规范提供了许多优于传统 BIOS 的显着优势。 以下是一些值得注意的功能:
- 支持大于 2.2 TB 或更大的硬盘分区。
- UEFI 将 MBR 替换为 GPT 分区,因此您现在可以在一个驱动器上拥有四个以上的主分区。
- UEFI 安全启动功能有助于在操作系统加载之前防御恶意软件攻击,
- 更快的启动时间。
- 时尚的用户界面,包括图形和鼠标光标支持。
- 高效的电源和系统管理。
- 强大的可靠性和故障管理。
- 向后和向前兼容性。
请注意,您无法在现有硬件中将 BIOS 替换为 UEFI。 您需要购买支持并包含 UEFI 的硬件。
UEFI 规范独立于平台,支持多种平台和架构。 希望您对 UEFI 有了基本的了解。 现在让我们看看如何为 KVM 来宾启用 UEFI 支持。
在 Linux 中为 KVM 虚拟机启用 UEFI 支持
我假设您已经在您的系统上安装了 KVM。 如果您还没有安装,请查看以下指南:
- 在 CentOS 8 服务器中安装和配置 KVM
- 在 Ubuntu 20.04 Headless Server 中安装和配置 KVM
- 在 OpenSUSE Tumbleweed 中安装和配置 KVM
在创建虚拟机之前,我们需要安装 OVMF KVM 主机系统上的软件包。
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
或者,您可以使用 虚拟机管理器 GUI 应用程序来创建一个新的来宾。 对于新手来说非常容易。
打开 虚拟机管理器 应用程序并创建一个新的虚拟机:
为您的 KVM 来宾选择安装介质或 ISO 文件位置:
为 KVM 来宾选择内存和 CPU 核心:
为 KVM 来宾创建磁盘映像:
选中“安装前自定义配置”框,然后单击“完成”按钮:
您现在应该会看到虚拟机的硬件详细信息。 从概览部分,选择 “UEFI X86_64 …” 固件下拉框中的选项。
单击应用按钮,然后单击顶部的“开始安装”按钮继续安装 KVM 客户机。
现在您应该在初始启动时看到 TianoCore 启动画面:
继续并像往常一样完成安装。
UEFI设置界面
对于传统的 BIOS,您必须在启动菜单出现之前点击相应的功能键才能进入 BIOS 并修改任何 BIOS 设置。 在 UEFI 中,这不是必需的。 您可以直接从 Grub 启动菜单访问 UEFI 设置屏幕。
如果 KVM 上启用了 UEFI 支持,您应该会在 Grub 启动菜单中看到“系统设置”菜单项:
Enter 进入系统设置以查看 UEFI 设置界面的样子。
您可能会在物理系统上看到具有不同功能的不同 UEFI 界面。 许多 PC 仍然带有文本模式的 UEFI 设置界面,其外观和工作方式类似于此处所示的旧 BIOS 设置屏幕。
对 PC 固件进行任何更改后,选择“继续”并按 ENTER 返回启动菜单。
资源:
- UEFI论坛
基于BiosKernel的虚拟机KVMLinuxqemuTianocoreUEFI统一可扩展固件接口虚拟化