PXE Boot Server of CentOS 5 on a CentOS setup

Setting up PXE Server

Install some packages that is required for PXE server.
[root@dlp ~]# yum -y install system-config-netboot syslinux xinetd tftp-server

Run TFTP server
[root@dlp ~]# vi /etc/xinetd.d/tftp

# line 14: change
disable =no
[root@dlp ~]# /etc/rc.d/init.d/xinetd start

Starting xinetd: [ OK ]

[root@dlp ~]# chkconfig xinetd on

Install DHCP server-

yum install dhcp

configure DHCP server at- nano /etc/dhcps.conf. Sample configuration file as below-

ddns-update-style interim;
ignore client-updates;

subnet netmask {

# --- default gateway
option routers;
option subnet-mask;

option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers;
filename "/linux-install/pxelinux.0";

# option time-offset -18000; Eastern Standard Time
# option ntp-servers;
# option netbios-name-servers;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;

range dynamic-bootp;
default-lease-time 21600;
max-lease-time 43200;

# we want the nameserver to appear at a fixed address
# host ns {
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address;
# }

Basic PXE configuration is done.

Network Install Begins

[root@dlp ~]#mkdir /mnt/iso
[root@dlp ~]#mount -t iso9660 -o loop ./CentOS-5.5-x86_64-bin-DVD-1of2.iso /mnt/iso
[root@dlp ~]#cp /mnt/iso/images/pxeboot/vmlinuz /tftpboot/linux-install/
[root@dlp ~]#cp /mnt/iso/images/pxeboot/initrd.img /tftpboot/linux-install/
[root@dlp ~]#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/linux-install/
[root@dlp ~]#vi /tftpboot/linux-install/pxelinux.cfg/default

# create new

default centos5

label centos5
kernel vmlinuz
append load initrd=initrd.img devfs=nomount

A small comment- in my distribution /usr/lib/syslinux had to use /usr/share/syslinux

2] Run HTTP server. See here to install it.
[root@dlp ~]#vi /etc/httpd/conf.d/pxeboot.conf

# create new

Alias /centos5 "/mnt/iso"
<Directory /mnt/iso>
Options Indexes FollowSymLinks
Order deny,allow
Deny from all
Allow from
# IP address you allow


[root@dlp ~]#/etc/rc.d/init.d/httpd restart
Stopping httpd:[ OK ]
Starting httpd:[ OK ]

Your PXE server is ready to roll.


1. You may need to restart tftp server and it's not that easy- first use this long command to restart TFTP-

/sbin/chkconfig –level 345 xinetd on /sbin/chkconfig –level 345 tftp on

then restart xinetd by /etc/init.d/xinetd restart

2. Don't forget to stop iptables! stop it by /etc/init.d/iptables stop





Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.