PXE Boot server on CentOS
This post will be helpful for linux admins who frequently installs diff linux os. PXE boot is one of the best option to start linux installation & for rescue of the other failed systems. we are using CentOS as pxe boot server.
Install tftp-server
#yum install tftp-server -y
Enable tftp server
#vi /etc/xinetd.d/tftp
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s -vv /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }Start tftp server and mark it for system startup
#service xinetd restart
#chkconfig --level 35 xinetd on
We have to download the latest version of syslinux and build the rpm cause there are some bugs in the existing version that ships with centos.
#cd /root
#wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.86.tar.gz
#tar -zxvf syslinux-3.86.tar.gz
#cp syslinux-3.86/syslinux.spec /usr/src/redhat/SPECS/
#cd ..
#cp syslinux-3.86.tar.gz /usr/src/redhat/SOURCES
Now building the rpm
#cd /usr/src/redhat/SPECS
#rpmbuild -ba syslinux.spec
Installing rpm
#cd /usr/src/redhat/RPMS/i386
#rpm -ivh syslinux-3.86-1.i386.rpm
Copy needed files from syslinux to the tftpboot directory
#cp /usr/share/syslinux/pxelinux.0 /tftpboot
#cp /usr/share/syslinux/menu.c32 /tftpboot
#cp /usr/share/syslinux/memdisk /tftpboot
#cp /usr/share/syslinux/mboot.c32 /tftpboot
#cp /usr/share/syslinux/chain.c32 /tftpboot
Create a base directory for images. Create directories for each CentOS release you are supporting.
#mkdir -p /tftpboot/images/centos/i386/5.4
#cp /tmp/dvd-centos-54/images/pxeboot/vmlinuz /tftpboot/images/centos/i386/5.4/
#cp /tmp/dvd-centos-54/images/pxeboot/initrd.img /tftpboot/images/centos/i386/5.4/
Configure dhcp-server.
Add this to your existing or new /etc/dhcpd.conf.
Note: xxx.xxx.xxx.xxx is the IP address of your PXE server
Configuring dhcp server on centos
allow booting; allow bootp; next-server xxx.xxx.xxx.xxx; # IP of my PXE server filename "/pxelinux.0";#service dhcpd restart
Create the directory for your PXE menus
#mkdir /tftpboot/pxelinux.cfg
My sample config file
#vi /tftpboot/pxelinux.cfg/default
default menu.c32 prompt 0 timeout 50 ONTIMEOUT localboot MENU TITLE PXE Menu LABEL localboot MENU LABEL Boot From Hard Disk LOCALBOOT 0 LABEL CentoS 5.4 i386 Installer MENU LABEL CentOS 5.4 i386 Installer KERNEL images/centos/i386/5.4/vmlinuz append vga=normal initrd=images/centos/i386/5.4/initrd.img ramdisk_size=32768Now start the client machine, boot it from lan, it should get a DHCP lease, and start booting successfully from the network
For troubleshooting check /var/log/messages
Credits
Labels: CentOS, centos pxe boot installation, centos pxe boot server, configure pxe boot server, configure pxeboot, dhcp server, pxe, tftp
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home