PXE 启动 EFI Livecd - CentOS

PXE 启动 EFI Livecd - CentOS

我有一个传统的 PXE 服务器,它可以完成我们公司所需的一切,并且有可以启动到(自定义)CentOS 7 livecd 的条目,同样,也是在传统的 PXE 中。

我想让这些东西在 EFI PXE 下运行。

到目前为止,根据我在 中指定的 .efi 文件dhcpd.conf,我可以让不同的东西出现在 EFI PXE 启动系统的屏幕上以适应不同的负载;基本上,我知道 EFI PXE 启动在我的网络上运行良好。

我遇到的问题是使用哪个 .efi 映像才能实现我需要的功能;理想情况下,我应该在 EFI 中拥有旧式 PXE 菜单的所有功能,但主要是我有兴趣让我的 CentOS 7 Livecd 从 EFI PXE 启动。

与……合作此论坛帖子并且grubx64.efi,我能够让 EFI PXE 启动系统加载 grub 和文件中的内容grub.cfg

在论坛帖子中grub.cfg,我修改了菜单项以匹配我使用旧式 PXE 菜单项传递的相同参数(请注意,注释行是帖子中的原始“linuxefi”行):

menuentry 'Install CentOS 7' {
   #linuxefi /centos7-net/vmlinuz inst.repo=http://buildlogs.centos.org/centos/7/os/x86_64-latest/
   linuxefi /livecd/vmlinuz initrd=/livecd/initrd.img ksdevice=bootif lang=  root=live:/boot.iso kssendmac text  ks=http://XX.XX.24.21/cblr/svc/op/ks/profile/LiveCD
   initrdefi /livecd/initrd.img

vmlinuzinitrd.img传统 PXE 兼容的文件都存在,并且权限设置为任何人都可以读取。

我从中得到的是一个错误:

“错误:无法加载 initrd”

但我不确定如何解决这个问题。 initrd 位于内核参数和行initrdefi条目中指定的路径中。

以前有人做过这个吗?

一般来说,如何管理 PXE EFI 服务器 - 管理菜单、子菜单、操作系统安装等?

答案1

在 PXE 上,您可以通过 TFTP 加载内核和 initrd,就这样;其余部分,即实现实时发行版的大型 squahfs 文件,将通过 HTTP 或 SMB 共享(NFS 也是一个选项)移动。

那么除了无法加载 initrd 的错误之外,你也无法使用以下命令加载实时映像

root=live:/boot.iso 

没有所需的网络信息。尝试看看 Serva 是如何做到的:

https://www.vercot.com/~serva/an/NonWindowsPXE3.html

;-Serva v3.0 Non-Windows Asset Information File 
;-Boot/Install:
;  Red Hat Enterprise Linux / CentOS Linux
;-Tested on:
;  rhel-server-7.3-x86_64-dvd.iso
;  rhel-server-7.3-x86_64-boot.iso 
;  rhel-workstation-7.3-x86_64-dvd.iso
;  rhel-workstation-7.3-x86_64-boot.iso
;  rhel-client-7.3-x86_64-dvd.iso
;  rhel-client-7.3-x86_64-boot.iso
;
;  rhel-server-7.2-x86_64-dvd.iso
;  rhel-server-7.2-x86_64-boot.iso
;  rhel-workstation-7.2-x86_64-dvd.iso
;  rhel-workstation-7.2-x86_64-boot.iso
;  rhel-client-7.2-x86_64-dvd.iso
;  rhel-client-7.2-x86_64-boot.iso
;
;  rhel-atomic-installer-7.2-10.x86_64.iso
;
;  CentOS-7-x86_64-DVD-1611.iso
;  CentOS-Atomic-Host-7.1704-Installer.iso
;
;  rhel-workstation-6.5-x86_64-dvd.iso
;  rhel-server-6.5-x86_64-dvd.iso
;  CentOS-6.5-x86_64-bin-DVD1.iso
;
;-Require:
;  \SERVA_REPO\ offered as HTTP root
;-Notes:
; For KickStart
;  7.3 > Add to append  inst.ks=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/images/pxeboot/ks.cfg
;  7.2 > Add to append  ks=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/images/pxeboot/ks.cfg
[PXESERVA_MENU_ENTRY]
asset    = RHEL Server 7.3
platform = x86_64

kernel_bios    = /NWA_PXE/$HEAD_DIR$/images/pxeboot/vmlinuz
append_bios    = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img inst.repo=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/
;7.2 > append_bios    = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img root=live:http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/LiveOS/squashfs.img ksdevice=bootif repo=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/
;6.x > append_bios    = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img method=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$ noipv6 ksdevice=bootif
ipappend_bios   = 2

kernel_efi64   = /NWA_PXE/$HEAD_DIR$/images/pxeboot/vmlinuz
append_efi64   = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img inst.repo=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/
;7.2 > append_efi64   = initrd=/NWA_PXE/$HEAD_DIR$/images/pxeboot/initrd.img root=live:http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/LiveOS/squashfs.img ksdevice=bootif repo=http://$IP_BSRV$/NWA_PXE/$HEAD_DIR$/
ipappend_efi64 = 2

我与 Serva 开发有关。

相关内容