{{tag>[linux uefi pxe]}} =====CentOS 7 - UEFI PXE server===== Installs a UEFI PXE server with Arch Linux installer and UEFI shell boot options. * Install prerequisites:yum install tftp-server dhcp xinetd grub2-efi grub2-efi-modules * Configure DHCPd ''/etc/dhcp/dhcpd.conf'' subnet 10.10.10.0 netmask 255.255.255.0 { range 10.10.10.200 10.10.10.250; option domain-name ""; option domain-name-servers , ; option ntp-servers , ; option routers 10.10.10.1; next-server ; filename "/boot/grub/x86_64-efi/core.efi"; default-lease-time 600; max-lease-time 7200; } * Enable and start DHCPd:systemctl enable dhcpd systemctl start dhcpd * Configure the firewall: firewall-cmd --zone public --add-service=dhcp --permanent firewall-cmd --zone public --add-service=tftp --permanent firewall-cmd --zone public --add-service=http --permanent firewall-cmd --reload * Configure xinetd ''/etc/xinetd.d/tftp'' disable = no * Enable and start xinetd:systemctl enable xinetd systemctl start xinetd * Create grub configuration, this is een Arch linux install example: mkdir -p /var/lib/tftpboot/boot/grub/ vi /var/lib/tftpboot/boot/grub/grub.cfgset timeout=5 menuentry 'archlinux-2017.07.01-x86_64' --class os { insmod all_video echo 'Network config:' net_ls_cards net_ls_addr net_ls_routes set root=http, echo 'Loading Linux...' linuxefi /arch/boot/x86_64/vmlinuz archisobasedir=arch archiso_http_srv=http:/// archisobasedir=arch ip=:::::eth0:dhcp echo 'Loading Intel micro code, initrd...' initrdefi /arch/boot/intel_ucode.img /arch/boot/x86_64/archiso.img } menuentry 'UEFI Shell' { chainloader ($root)/boot/uefishell/Shell.efi } * Create network bootable grub:grub2-mknetdir --net-directory=/var/lib/tftpboot --subdir=/boot/grub -d /usr/lib/grub/x86_64-efi/ * Add Arch ISO:curl -O http://ftp.nluug.nl/os/Linux/distr/archlinux/iso/2017.07.01/archlinux-2017.07.01-x86_64.iso mount archlinux-2017.07.01-x86_64.iso /mnt cp -R /mnt/* /var/www/html * Add UEFI Shell: mkdir -p /var/lib/tftpboot/boot/uefishell curl -OL https://github.com/tianocore/edk2/raw/master/ShellBinPkg/UefiShell/X64/Shell.efi