[CentOS] EFI netboot to kickstart install

Gordon Messmer gordon.messmer at gmail.com
Thu Oct 22 20:57:38 UTC 2015


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.x86_64.rpm 

wget 
http://centos.s.uw.edu/centos/7/os/x86_64/Packages/grub2-efi-2.02-0.16.el7.centos.x86_64.rpm 


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
}
---



More information about the CentOS mailing list