Hello All
Up until now we have been using standard PXE boot to do kick start installs of centos boxes. With recent machines however they come by default as EFI boot. We can set them to legacy but I would like to solve this before this option goes away.
Just wondering if anyone has any experience setting up a net boot server that can be used to kickstart EFI machines?
Thanks
Grant
On 22/10/2015 03:25, Grant Street wrote:
Hello All
Up until now we have been using standard PXE boot to do kick start installs of centos boxes. With recent machines however they come by default as EFI boot. We can set them to legacy but I would like to solve this before this option goes away.
Just wondering if anyone has any experience setting up a net boot server that can be used to kickstart EFI machines?
Thanks
Grant
Hi Grant,
As a guess it is due to the partition scheme you are using in your kickstart (this was the issue for me at least) Try something like
part /boot --fstype="xfs" --fsoptions="nodev,noexec,nosuid" --size=500 --ondisk=sda part /boot/efi --fstype="efi" --size=200 --ondisk=sda
Along with your other mount points etc.
Tris
************************************************************* This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify postmaster@bgfl.org
The views expressed within this email are those of the individual, and not necessarily those of the organisation *************************************************************
On Thu, Oct 22, 2015 at 02:25:21AM +0000, Grant Street wrote:
Hello All Up until now we have been using standard PXE boot to do kick start installs of centos boxes. With recent machines however they come by default as EFI boot. We can set them to legacy but I would like to solve this before this option goes away.
Just wondering if anyone has any experience setting up a net boot server that can be used to kickstart EFI machines?
In my experience, getting our HP workstations to PXE boot from the UEFI ipv4 network boot took some extra work. I have dnsmasq installed on the PXE/TFTP server.
Our PXE server is not the DHCP server for the environment. The central DHCP system is configured to have our PXE server's IP as the "next-server", and the file name as "/uefi/bootx64.efi". I set up TFTP to serve out the bootx64.efi (which is just the GRUB2 EFI executable).
The tricky part is that for whatever reason, our UEFI PXE boot firmware requires that the next-server that handles the TFTP requests also answer Proxy DHCP requests. I ended up having a dnsmasq configuration that looked like this:
# Limit DHCP server to only handle proxy-dhcp dhcp-range=<IP OF THIS SERVER>,proxy dhcp-alternate-port=4011,4011 log-dhcp dhcp-boot=pxelinux.0 dhcp-match=set:efi-x86_64,option:client-arch,7 dhcp-boot=tag:efi-x86_64,/uefi/bootx64.efi #disable DNS port=0
Then I have a /grub/grub.cfg installed at the root of my TFTP directory, which the bootx64.efi reads from once it has been downloaded and executed.
I'm not certain *why* uefi requires proxy-dhcp, it might be an artifact of how our DHCP service runs or it might be a requirement for UEFI netbooting on our hardware. Also, in my experience, it doesn't actually care what my dnsmasq server says for dhcp-boot (I've tried alternate executables), because it uses the filename from the original DHCP request. But it wouldn't boot without getting an answer from the proxy-dhcp server.
On 10/21/2015 07:25 PM, Grant Street wrote:
Just wondering if anyone has any experience setting up a net boot server that can be used to kickstart EFI machines?
Yep.
In ISC dhcpd.conf, use:
next-server config.example.com; if option architecture-type = 00:07 { filename "shim.efi"; } else { filename "pxelinux.0"; }
Then, in your tftp server you'll need 3 files from the shim and grub2-efi packages. I used this script:
--- #!/bin/sh
wget http://centos.s.uw.edu/centos/7/os/x86_64/Packages/shim-0.7-5.2.el7.centos.2...
wget http://centos.s.uw.edu/centos/7/os/x86_64/Packages/grub2-efi-2.02-0.16.el7.c...
mkdir tmp
rpm2cpio shim-0.7-5.2.el7.centos.2.x86_64.rpm | (cd tmp && cpio -ivd) rpm2cpio grub2-efi-2.02-0.16.el7.centos.x86_64.rpm | (cd tmp && cpio -ivd)
cp tmp/boot/efi/EFI/centos/shim.efi ../ cp tmp/boot/efi/EFI/centos/grubx64.efi ../ cp tmp/boot/efi/EFI/centos/fonts/unicode.pf2 ../grub/fonts/
rm tmp -rf ---
Configuration files are in EFI/centos (relative to the TFTP root) rather than pxelinux.cfg. They're named grub.cfg-01-<mac>, and use grub syntax rather than isolinux syntax.
A simple example:
--- set timeout=600 set default=0
menuentry "localboot" { insmod chain set root=(hd0) chainloader +1 }
menuentry "c7" { linuxefi /c7/vmlinuz ks=http://config.example.com/kickstart/c7s ksdevice=eth0 net.ifnames=0 biosdevname=0 initrdefi /c7/initrd.img } ---
----- Original Message ----- | Hello All | | | Up until now we have been using standard PXE boot to do kick start installs | of centos boxes. With recent machines however they come by default as EFI | boot. We can set them to legacy but I would like to solve this before this | option goes away. | | | Just wondering if anyone has any experience setting up a net boot server that | can be used to kickstart EFI machines? | | | Thanks | | | Grant
We use iPXE to boot the kernel and initrd files directly from our mirror. It was pretty much dead simple to do too. No need for unpacking RPMS or placing files on our TFTP server (other than iPXE)