step by step configure pxe boot server in Centos 7 | PXE network boot server | pxe boot

Linuxtopic
2


PXE stand for Preboot eXecution Environment it works on Client-Server architecture and allows unattended or automated OS installation over the Network



Point to be noted :


This PXE Boot server configuration in Ubuntu 16.4,  

PXE network boot server with Configure dnsmasq with DHCP and dnsmasq without dhcp,

pxe boot server we add centos 7 boot entry in default pxelinux.cfg directory via NFS and http, 

We configure pxe boot with clonezilla iso and zip

CentOS iso pxeboot entry, Installing CentOS, Debian using network booting





Server IP = 172.17.20.100


Host name = pxe.linuxtopic.com


OS = CentOS 7




Step 1:





Install required packages




yum install tftp-server syslinux dnsmasq




configure pxe boot server, clonezilla, pxeboot server, network boot, network booting, pxe, boot from network, boot on network, network boot linux, network boot server, network boot windows 10, network boot ubuntu, network boot windows 7, network boot windows 7 diskless, how does pxe boot work, pxe boot server windows






Step 2:




Configure dnsmasq


cp /etc/dnsmasq.conf /etc/dnsmasq.conf-bk


Option 1 :  Configure dnsmasq as existing dhcp on network




vi /etc/dnsmasq.conf




# DNS Options


port=0


interface=eth0,lo






# DHCP Options


dhcp-range=172.17.0.1,proxy


dhcp-option=vendor:PXEClient,6,2b


dhcp-no-override






# PXE


dhcp-boot=pxelinux.0






#pxe-prompt="Press F8 for menu.", 10


pxe-service=X86PC, "www.linuxtopic.com", pxelinux






# TFTP Options


enable-tftp


tftp-root=/var/lib/tftpboot




configure pxe boot server, clonezilla, pxeboot server, network boot, network booting, pxe, boot from network, boot on network, network boot linux, network boot server, network boot windows 10, network boot ubuntu, network boot windows 7, network boot windows 7 diskless, how does pxe boot work, pxe boot server windows




Option 2 :  Configure dnsmasq with dhcp server




# DNS Options


port=0


interface=eth0,lo






# DHCP range-leases


dhcp-range= eth0,172.17.20.200,172.17.20.250,255.255.0.0,1h


# Gateway


dhcp-option=3,172.17.20.100


# DNS


dhcp-option=6,172.17.120.100, 8.8.8.8


# Broadcast Address


dhcp-option=28,172.17.255.255


# NTP Server


dhcp-option=42,0.0.0.0






# PXE


dhcp-boot=pxelinux.0


pxe-service=x86PC, "Linuxtopic.com", pxelinux






# Enable TFTP


enable-tftp


tftp-root=/var/lib/tftpboot




configure pxe boot server, clonezilla, pxeboot server, network boot, network booting, pxe, boot from network, boot on network, network boot linux, network boot server, network boot windows 10, network boot ubuntu, network boot windows 7, network boot windows 7 diskless, how does pxe boot work, pxe boot server windows




Explain :






port=0   -  disable dns


interface=eth0,lo   - Interfaces that the server should listen and provide services






dhcp-rang=172.17.20.100,proxy   -  existing dhcp server ip  


OR


dhcp-range= eth0,172.17.199.200,172.17.199.250,255.255.0.0,1h  - Dhcp IP Range


dhcp-option=3,172.17.199.199  - define gateway


dhcp-option=6,172.17.199.199, 8.8.8.8  - Define DNS


dhcp-option=28,172.17.255.255  - Broadcast Address


dhcp-option=42,0.0.0.0 - NTP Server






dhcp-option=vendor:PXEClient,6,2b    - download the boot file immediately by disable multicast and broadcast discovery.


dhcp-boot=pxelinux.0    -


pxe-service=X86PC, "www.linuxtopic.com", pxelinux    -  Use x86PC for 32-bit/64-bit architectures and enter a menu description prompt under string quotes. Other values types can be: Intel_Lean_Client, IA32_EFI, _EFI, Alpha, Arc_x86, BC_EFI, Xscale_EFI and X86-64_EFI, PC98, IA64


enable-tftp    -  Enables the build-in TFTP server.


tftp-root=/var/lib/tftpboot   -  the location for all netbooting files.



Video Tutorial In Hindi 







Video Tutorial In Hindi 












Step 3:  





Create directory and copy required file




mkdir /var/lib/tftpboot/pxelinux.cfg




cp -v /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot




cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot




cp -v /usr/share/syslinux/memdisk /var/lib/tftpboot




cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot




cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot




cp -v /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/




ls -l /var/lib/tftpboot/








Step 4:





Create default  file and add menu entry




vi /var/lib/tftpboot/pxelinux.cfg/default




default vesamenu.c32


prompt 0


timeout 50






# Local Hard Disk pxelinux.cfg default entry


LABEL 1


   MENU LABEL ^1) Boot local hard drive


   MENU AUTOBOOT


   MENU DEFAULT


   LOCALBOOT 0




configure pxe boot server, clonezilla, pxeboot server, network boot, network booting, pxe, boot from network, boot on network, network boot linux, network boot server, network boot windows 10, network boot ubuntu, network boot windows 7, network boot windows 7 diskless, how does pxe boot work, pxe boot server windows




Step 5:  





Download Clonezilla zip File from official website and extract




https://clonezilla.org/downloads/download.php?branch=stable












Create Directory and Copy clonezilla zip




mkdir /var/lib/tftpboot/clonezilla
cd  /var/lib/tftpboot/clonezilla
unzip clonezilla-live-2.5.5-38-amd64.zip



Add  Clonezilla menu entry in  pxelinux.cfg/defalut




vi /var/lib/tftpboot/pxelinux.cfg/default




# Clonezilla pxelinux.cfg default entry


LABEL 2


   MENU LABEL ^2) Clonezilla Live


   KERNEL clonezilla/live/vmlinuz


   APPEND ramdisk_size=32768 initrd=clonezilla/live/initrd.img boot=live union=overlay username=user config components noswap edd=on nomodeset noeject locales=en_US.UTF-8 keyboard-layouts=NONE net.ifnames=0 ocs_live_extra_param="" ocs_live_keymap="NONE" ocs_live_batch="yes" ocs_lang="en_US.UTF-8" vga=788 ip=frommedia nosplash  fetch=tftp://172.17.20.100/clonezilla/live/filesystem.squashfs




Centos 7 pxelinux.cfg default boot entry




Download / Copy CentOS 7 ISO in pxe boot server  and mount on /mnt:




mount -o loop /tmp/CentOS-7-x86_64-Minimal-1708.iso /mnt/




Create Folder




mkdir /var/lib/tftpboot/data/centos7_64Bit




Note: If you want to install CentOS 32 bit edition, make a relevant directory called centos7_32Bit (Ex. /var/lib/tftpboot/data/centos7_32Bit).




Copy the ISO file contents to /var/lib/tftpboot/data/centos7_64Bit




cp -fr /mnt/* /var/lib/tftpboot/data/centos7_64Bit/




Set the proper permissions to the above directory.




chmod -R 755 /var/lib/tftpboot/data




Access data for Installation :




Option 1 : NFS Server




yum install nfs-server




echo "/var/lib/tftpboot/data  *(rw)" >> /etc/exports








restart service




systemctl restart nfs-serversystemctl enable nfs-server




Check nfsmount




showmount -e 172.17.20.100








Option 2 : HTTP Server




yum install httpd





Create a apache configuration file for PXE server under /etc/httpd/conf.d/ directory:




cat > /tmp/pxeboot.conf << EOFAlias /pxeboot /var/lib/tftpboot/data<Directory /var/lib/tftpboot/data>Options Indexes FollowSymLinksRequire all granted</Directory>EOF









systemctl disable firewalldsystemctl stop firewalld


setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux


systemctl restart httpdsystemctl enable  httpd







Now test http by access url











Add  Centos 7  menu entry in  pxelinux.cfg/defalut




vi /var/lib/tftpboot/pxelinux.cfg/default




# CentOS 7 pxelinux.cfg default entry


LABEL 3


   MENU LABEL ^3) Install CentOS 7 - NFS


   kernel data/centos7_64Bit/images/pxeboot/vmlinuz


   append initrd=data/centos7_64Bit/images/pxeboot/initrd.img inst.stage2=nfs:172.17.20.100:/var/lib/tftpboot/data/centos7_64Bit quiet






# CentOS 7 pxelinux.cfg default entry


LABEL 4


   MENU LABEL ^4) Install CentOS 7 - HTTP


   KERNEL data/centos7_64Bit/images/pxeboot/vmlinuz


   APPEND initrd=data/centos7_64Bit/images/pxeboot/initrd.img method=http://172.17.20.100/pxeboot/centos7_64Bit devfs=nomount




configure pxe boot server, clonezilla, pxeboot server, network boot, network booting, pxe, boot from network, boot on network, network boot linux, network boot server, network boot windows 10, network boot ubuntu, network boot windows 7, network boot windows 7 diskless, how does pxe boot work, pxe boot server windows




Restart DNSMASQ




systemctl restart dnsmasqsystemctl enable dnsmasq



Option 3: FTP Server




yum install vsftpd

Configure vsftpd


vi /etc/vsftpd/vsftpd.conf

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=YES

#

# Uncomment this to allow local users to log in.

# When SELinux is enforcing check for SE bool ftp_home_dir

local_enable=NO

#

# Uncomment this to enable any form of FTP write command.

write_enable=NO






# Activate logging of uploads/downloads.


xferlog_enable=YES





# When "listen" directive is enabled, vsftpd runs in standalone mode and

# listens on IPv4 sockets. This directive cannot be used in conjunction

# with the listen_ipv6 directive.

listen=NO



# Add This in bottom

anon_root=/var/lib/tftpboot/data

anon_max_rate=2048000





systemctl restart vsftpdsystemctl enable vsftpd


Add  Centos 7  menu entry in  pxelinux.cfg/defalut




vi /var/lib/tftpboot/pxelinux.cfg/default



# CentOS 7 pxelinux.cfg default entry

LABEL 5

MENU LABEL ^5) Install CentOS 7 - FTP

KERNEL data/centos7_64Bit/images/pxeboot/vmlinuz

APPEND initrd=data/centos7_64Bit/images/pxeboot/initrd.img  inst.repo=ftp://172.17.20.100:/centos7_64Bit 



 configure pxe boot server, clonezilla, pxeboot server, network boot, network booting, pxe, boot from network, boot on network, network boot linux, network boot server, network boot windows 10, network boot ubuntu, network boot windows 7, network boot windows 7 diskless, how does pxe boot work, pxe boot server windows





Now PXE Boot Server is Ready - Go to client side and Select first boot device "Network" in BIOS setting





Post a Comment

2Comments

  1. I definitely enjoying every little bit of it. It is a great website and nice share. I want to thank you. Good job! You guys do a great blog, and have some great contents. Keep up the good work. https://serverbrowse.com/

    ReplyDelete
  2. dnsmasq-tftp[1372]: file /var/lib/tftpboot/3 not found

    ReplyDelete
Post a Comment

#buttons=(Ok, Go it!) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Ok, Go it!