Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== OS Install: PXE Boot ====== **General Information** In order to install an OS via PXE boot, a TFTP and DHCP server are required.\\ Using PXE allows for clients to begin a network installation without any net-install ISO. * Reference Source: http://www.tecmint.com/install-pxe-network-boot-server-in-centos-7/ **Checklist** * Distro(s): Enterprise Linux 7 * Other: Installation Server Created (NFS/HTTP/FTP) that is hosting the install DVD and kickstart file * Example: Using [[linux_wiki:os_install_bare_metal#netinstall_iso_prep|NFS as an Installation Server]] ---- ====== TFTP Server ====== * Install the required packages<code bash>yum install tftp-server xinetd</code> * Allow TFTP access (set disable = no)<code bash>vim /etc/xinetd.d/tftp service tftp { ....some other variables... disable = no ....some other variables... }</code> * Start and Enable xinetd<code bash>systemctl start xinetd systemctl enable xinetd</code> * Allow through firewall (if enabled)<code bash>firewall-cmd --permanent --add-service=tftp firewall-cmd --reload</code> ---- ====== DHCP Server ====== * Install required package<code bash>yum install dhcp</code> * Edit DHCP config and customize per your network<code bash>vim /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254 ; range 192.168.1.240 192.168.1.250 ; next-server 192.168.1.150 ; filename "pxelinux.0" ; } </code> * subnet => specify the network * netmask => mask for your network * option routers => gateway for the network * range => start and ending IP to hand out via DHCP * next-server => IP of the TFTP server * filename => file that should be offered to systems doing PXE boot (relative to the TFTP server's root) * Start and enable DHCP<code bash>systemctl start dhcp systemctl enable dhcp</code> ---- ====== Create PXE Content ====== Now that both required services are setup, it is time to create the PXE boot content to be handed out over TFTP. * Install a required package<code bash>yum install syslinux</code> * Create the PXE Linux directory structure<code bash>mkdir -p /var/lib/tftpboot/pxelinux.cfg mkdir /var/lib/tftpboot/centos7/</code> * Copy the pxelinux.0 data file<code bash>cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/</code> * Create the PXE Linux default config file (replace '<nfs-ip>' with actual NFS server IP<code bash>vim /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 prompt 0 timeout 600 menu title ########## PXE Boot Menu ########## label 1 menu label ^1) Install CentOS 7.2 x86-64 kernel centos7/vmlinuz append initrd=centos7/initrd.img method=nfs:<nfs-ip>:/iso/centos7.2-dvd/ </code> * PXE Boot Menu Reference Source: https://wiki.centos.org/HowTos/PXE/PXE_Setup/Menus * To include a splash image when doing PXE, copy the image from the local system<code bash>cp /boot/grub/splash.xpm.gz /var/lib/tftpboot/</code> * Copy the files (images/pxeboot/vmlinuz and initrd.img) from the install disk to /var/lib/tftpboot/centos7/<code bash>mount -t iso9660 -o loop CentOS-7-x86_64-DVD-1511.iso /mnt cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/ cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/</code> * Restart dhcpd and xinetd<code bash>systemctl restart dhcpd systemctl restart xinetd</code> \\ **The system is now ready to accept incoming PXE boot requests.** /var/lib/tftpboot/ contains: * centos7 (directory) * pxelinux.0 (data file) * pxelinux.cfg (directory) * splash.xpm.gz (splash image) /var/lib/tftpboot/centos7 contains: * initrd.img (centos 7 initrd) * vmlinuz (centos 7 boot kernel) /var/lib/tftpboot/pxelinux.cfg contains: * default (config file) ---- linux_wiki/os_install_pxe_boot.txt Last modified: 2019/05/25 23:50(external edit)