1、UEFI简介
UEFI(统一可扩展固件接口,Unified Extensible Firmware Interface)是现代计算机的固件接口标准,用于替代传统的BIOS(基本输入输出系统)。
UEFI引导相比传统BIOS引导,提供了更快的启动速度、更强的兼容性、更大的存储支持、更高的安全性,并且具有更友好的用户界面。
2、UEFI与传统BIOS在PXE上的区别
在PXE(Preboot Execution Environment,预启动执行环境)引导中,UEFI与传统BIOS的区别主要体现在以下几个方面:
-
引导方式:
- 传统BIOS PXE引导:传统的BIOS模式通过网络启动时会请求一个合适的启动映像(通常是通过TFTP协议),并且这个引导映像通常是一个支持BIOS的启动文件,比如
pxelinux.0
。 - UEFI PXE引导:UEFI支持通过网络进行引导,但它要求的是符合UEFI规范的启动文件,如
bootx64.efi
(针对64位系统)。这意味着在UEFI环境下,PXE引导的文件和传统BIOS下的引导文件是不同的。
- 传统BIOS PXE引导:传统的BIOS模式通过网络启动时会请求一个合适的启动映像(通常是通过TFTP协议),并且这个引导映像通常是一个支持BIOS的启动文件,比如
-
引导镜像的差异:
- 传统BIOS:PXE引导使用的映像通常是一个专门为BIOS环境设计的启动程序(比如Linux下常见的
pxelinux.0
),该映像通过BIOS固件加载并执行。 - UEFI:UEFI PXE引导使用的是EFI启动文件(例如
bootx64.efi
),这些文件包含了UEFI启动所需的代码和驱动,且与BIOS模式下的引导文件不兼容。
- 传统BIOS:PXE引导使用的映像通常是一个专门为BIOS环境设计的启动程序(比如Linux下常见的
-
网络引导协议:
- 传统BIOS PXE:BIOS系统使用传统的网络启动协议来下载启动映像,通常通过TFTP(Trivial File Transfer Protocol)传输文件。
- UEFI PXE:UEFI也使用类似的网络启动协议,但UEFI引导使用的是UEFI网络引导协议(iPXE或UEFI内置的网络引导功能)。UEFI系统在网络引导时会使用更现代的网络协议,如HTTP,而不仅限于TFTP。
-
引导过程和支持的功能:
- 传统BIOS PXE:启动过程中,传统BIOS会通过一个较为简单的机制去加载引导文件。它的能力较为有限,比如在引导过程中不支持复杂的硬件驱动和一些高级功能。
- UEFI PXE:由于UEFI本身更强大的功能,它能够支持更复杂的引导过程,包括加载多种硬件驱动、更快的启动速度以及增强的安全性(例如支持安全启动功能)。它可以利用更强大的网络引导功能(比如支持HTTPS引导)。
-
兼容性和安全性:
- 传统BIOS PXE:传统BIOS引导没有像UEFI那样的安全启动机制,也没有固件签名验证,容易受到恶意软件的攻击。
- UEFI PXE:UEFI引导可以启用“安全启动”功能,这可以确保在网络引导时,只有经过签名的、安全的引导程序能够执行,从而增强了引导过程的安全性。
3、传统PXE环境到UEFI PXE环境的改造
Unified Extensible Firmware Interface
1) 启动文件变化
启动文件名为: BOOTX64.EFI(bootloader文件)
/etc/dhcp/dhcpd.conf
filename “BOOTX64.EFI”;
#相对路径是tftpboot下
拷贝如下文件到tftpboot目录下:
BOOTX64.EFI
、grub.cfg
、grubx64.efi
2) grub.cfg文件配置
编辑grub.cfg 修改内核驱动路径
menuentry 'Install CentOS 7' --class fedora --class gnu-linux --class gnu --class os
{
linuxefi /CentOS_7.6/vmlinuz
initrdefi /CentOS_7.6/initrd.img
inst.ks=nfs:192.168.5.254:/var/lib/tftpboot/CentOS_7.6/ks.cfg
}
3) 启动分区
启动分区用uefi特有分区/boot/efi
part /boot/efi --fstype=“efi” --ondisk=sda --size=1024 --fsoptions=“umask=0077,shortname=winnt”