UEFI平台支持

 

    坑太多,反正红帽官方的文档在centos上没部署成功。几经波折,架×××找到一篇帖子才豁然开朗。很难想象节奏这么快的IT行业,UEFI的支持还很难找到文档。同时也佩服国外的同行,在同一个问题上能死磕2年多,不断尝试,不曾放弃。想起《冬吴相对论》里讨论俄罗斯人,有时候他们就像熊一样笨拙,碰到问题,直面,而不是绕过。有些人看起来很轴,但就是这些不妥协的人在一步步推动着世界的发展。

    此方法最大的优势在于可以重用原来BIOS平台的文件和配置,只需修改DHCP选项把nbp指向syslinux.efi和拷贝几个文件。

解压缩syslinux文件

[root@localhost backup]# tar xzvf /var/lib/tftpboot/syslinux-6.03.tar.gz    

拷贝必需的文件到tftp目录

[root@localhost backup]# cp ./syslinux-6.03/efi64/efi/syslinux.efi /var/lib/tftpboot/

[root@localhost backup]# cp ./syslinux-6.03/efi64/com32/elflink/ldlinux/ldlinx.e64 /var/lib/tftpboot/

[root@localhost backup]# cp ./syslinux-6.03/efi64/com32/lib/libcom32.c32 /var/lib/tftpboot/

[root@localhost backup]# cp ./syslinux-6.03/efi64/com32/libutil/libutil.c32 /var/lib/tftpboot/

[root@localhost backup]# cp ./syslinux-6.03/efi64/com32/menu/vesamenu.c32 

/var/lib/tftpboot/


编辑DHCP选项 /etc/dnsmasq.conf

# PXE      
dhcp-boot=pxe/syslinux.efi,pxeserver,192.168.1.200        
重新启动dnsmasq服务

[root@localhost efi64]# systemctl restart dnsmasq      
测试,看日志排错

[root@localhost efi64]# journalctl -lf      
从日志我们能看出详细的一个启动过程,此方法在物理机和ESX上测试通过,HyperV失败

 

sent /var/lib/tftpboot/pxe/syslinux.efi to 192.168.1.140        
sent /var/lib/tftpboot/pxe/ldlinux.e64 to 192.168.1.140
       
file /var/lib/tftpboot/pxe/pxelinux.cfg/54435dd3-6eb6-e311-8638-20f3e0531700 not found        
file /var/lib/tftpboot/pxe/pxelinux.cfg/01-f8-0f-41-b4-01-34 not found        
file /var/lib/tftpboot/pxe/pxelinux.cfg/C0A8018C not found        
file /var/lib/tftpboot/pxe/pxelinux.cfg/C0A8018 not found        
file /var/lib/tftpboot/pxe/pxelinux.cfg/C0A801 not found        
file /var/lib/tftpboot/pxe/pxelinux.cfg/C0A80 not found        
file /var/lib/tftpboot/pxe/pxelinux.cfg/C0A8 not found        
file /var/lib/tftpboot/pxe/pxelinux.cfg/C0A not found        
file /var/lib/tftpboot/pxe/pxelinux.cfg/C0 not found        
file /var/lib/tftpboot/pxe/pxelinux.cfg/C not found        
sent /var/lib/tftpboot/pxe/pxelinux.cfg/default to 192.168.1.140        
file /var/lib/tftpboot/pxe/boot.msg not found        
sent /var/lib/tftpboot/pxe/vesamenu.c32 to 192.168.1.140        
sent /var/lib/tftpboot/pxe/libcom32.c32 to 192.168.1.140        
sent /var/lib/tftpboot/pxe/libutil.c32 to 192.168.1.140
       
sent /var/lib/tftpboot/pxe/pxelinux.cfg/default


原作请参考

https://www.system-rescue-cd.org/forums/viewtopic.php?f=18&t=5085

另附dell一位工程师在德州linux节的一个ppt供大家欣赏

http://down.51cto.com/data/2195683

其中用到的最新的syslinux

https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.gz