linux_wiki:os_install_pxe_boot

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux_wiki:os_install_pxe_boot [2016/02/02 22:34]
billdozor [TFTP Server]
linux_wiki:os_install_pxe_boot [2019/05/25 23:50] (current)
Line 5: Line 5:
 In order to install an OS via PXE boot, a TFTP and DHCP server are required.\\ 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.  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** **Checklist**
-  * Distro: Enterprise Linux 7 +  * Distro(s): Enterprise Linux 7 
-  * Installation Server Created (NFS/HTTP/FTP) that is hosting the install DVD and kickstart file+  * 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]]
  
 ---- ----
Line 26: Line 29:
   * Allow through firewall (if enabled)<code bash>firewall-cmd --permanent --add-service=tftp   * Allow through firewall (if enabled)<code bash>firewall-cmd --permanent --add-service=tftp
 firewall-cmd --reload</code> 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.1454470489.txt.gz
  • Last modified: 2019/05/25 23:50
  • (external edit)