I've got a legacy PXE server that does everything we need at my company, and entries that boot to a (custom) CentOS 7 livecd, again, in legacy PXE.
I'd like to get these things working under EFI PXE.
So far, depending on what .efi file I specify in my dhcpd.conf
, I can get different things to appear on the EFI PXE booting system's screen for different loads; basically, I know that EFI PXE booting works on my network.
The trouble I'm having is which .efi image to use that will fulfill the functionality I need; ideally I'd have all the functionality of my legacy PXE menu just in EFI instead, but primarily I'm interested in getting my CentOS 7 Livecd to boot from EFI PXE.
Working with this forum post and grubx64.efi
, I was able to get as far as having the EFI PXE booting system to load grub and the contents in the grub.cfg
file.
Within the grub.cfg
from the forum post, I modified the menu entry to match the same parameters I pass with my legacy PXE menu entry (note that the commented line is the original "linuxefi" line from the post):
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
Both the vmlinuz
and initrd.img
files that work with legacy PXE are present and permissions are set such that anyone can read.
What I get out of this is an error:
"Error: unable to load initrd"
But I'm not sure how to remedy this. The initrd is in the path specified both in the kernel parameters and in the initrdefi
line entry.
Has anyone done this before?
How does one administrate a PXE EFI server in general - management of menus, sub menus, OS installs, etc?