editor
username: password: login

PXE Server and Kickstart Installation

lighttpd 

Introduction 

This document describes how to set up a PXE server for kickstart installation of Fedora Core 6, this also apply to earlier version of FC and Redhat releases.

The PXE (Pre-Execute Environment) network boot is a specification defining how to boot a computer through network without using floppy or CD.
Kickstart installation is to utilize the PXE boot, specify the configuration of installation, and achieve unattened installation of linux system.

With the PXE server and kickstart configuration, you can install handrads of linux computers at the same time unattendedly.  

Case Study

I have an old compaq deskpro, I need to boot fedora core 6 from PXE network boot server without my attendance.

The compaq deskpro NIC MAC is 00:08:C7:AA:D1:EA, The PXE boot server is a redhat 8.0, which runs

tftp-server-0.29-3
DHCPD
apache httpd

I document here how I setup and trouble shoot the PXE booting and kickstart install.

DHCP config:

/etc/dhcpd.conf has this

   ...
        host sun{
                hardware ethernet 00:08:C7:AA:D1:EA;
                fixed-address 10.28.43.187;
                option host-name "sun";
                filename "pxelinux.0";
        }
   ... 

TFTP setup:

all fedora core install CDs are located in /svn/tftpboot/fc6

# ls /svn/tftpboot
fc6  initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz

#gethostip 10.28.43.187
10.28.43.187 10.28.43.187 0A1C2BBB 

#ls pxelinux.cfg
bootfc6
0A1C2BEB -> bootfc6   # another computer also boot through PXE
0A1C2BBB -> bootfc6
default 

bootfc6 file is

prompt 1
default fc6
timeout 100

label fc6
kernel vmlinuz
append ksdevice=eth0 console=tty0 load_ramdisk=1 initrd=initrd.img ramdisk_size=9216 ks=nfs:build.ralise.com:/svn/tftpboot/fc6/ksfc6.cfg noapic acpi=off

default file is

default local
label local
        localboot 0

/svn/tftpboot/fc6/ksfc6.cfg

 

/etc/xinetd.d/tftp

service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -r blksize -s /svn/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
}

note: server_args shows server source folder is /svn/tftpboot

Issue and trouble shooting:

before I added -r blksize to tftp file, I encountered boot client problem,

Issue 1: start desckpro, F10 to set boot order, the network boot goes first, Plug and Play Device boot
when computer boots up, DHCP got IP correctly, but then shows this error

PXE-EA1: No PXE server found, using standard boot file
IP ADDR: 10.28.43.187
TFTP.....
PXE-E32: TFTP open timeout


verified tftp server is working
tftp serverIP
get pxelinux.0


After google around, then did this, ref: http://www.redhat.ru/archives/k12osn/2004-February/msg00733.html

disable path MTU discovery on the boot server by changing the content of /proc/sys/net/ipv4/ip_no_pmtu_disc from 0 to 1.
To do this. as root, run echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc  from the command line. If you ever reboot your server you will have to rerun this command.
and add -r blksize to /etc/xinetd.d/tftp, restart xinetd

Issue 2: boot client, keep getting error of

Could not find kernel image: linux

I used to check packets: tcpdump -i eth0 -nXxSx 0 host 10.28.43.187
and found the pxelinux.0 did download to client
09:39:00.188711 10.28.43.187.57217 > 10.28.43.3.tftp:  [udp sum ok] 38 RRQ "pxelinux.cfg/0A1C2BBB" (ttl 20, id 23, len 66)

finally figured out the 0A1C2BBB file matched, but the file is empty file (initially I touch that file to create the empty file), I expect the default file will be return, but since 0A1C2BBB matched, the default file will not be returned. so I need add linux kernel image instruction to the file 0A1C2BBB. Actually, I wrote bootfc6 file above, and use softlink to link 0A1C2BBB to bootfc6.

Reference:

http://www.stanford.edu/~alfw/PXE-Kickstart/PXE-Kickstart.html#toc4


comment: how to add picture to comment?
close
on the picture from a website, 
right click mouse => properties, 
you will see Address(URL): http://...
copy the url

paste into double quotes "" of 
following html code

	<img src=""/>

then copy the resulting string 
into comment box, submit.
for example, submit something like

<img src="http://flickr.com/146
/344623583_490a03aff9_t.jpg"/>


anonymous
Fri Feb 13 11:48:23 -0500 2009
null