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/01 00:19]
billdozor [OS Install PXE Boot]
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 14: Line 17:
 ====== TFTP Server ====== ====== TFTP Server ======
  
-  * Install the required package<code bash>yum install tftp-server</code> +  * 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.1454303991.txt.gz
  • Last modified: 2019/05/25 23:50
  • (external edit)