Pxe

From Kyle Anderson - Notebook - xKyle.com

Jump to:navigation, search

These instructions are for setting up PXE on Linux (Ubuntu). If you are on a different distro, replace apt-get with whatever is appropriate. All tftp stuff here is in /var/lib/tftpboot/ but you my have it in a different place. If desired you can check out my File:Pxe.pdf, and then head on to the commands and code.

Contents

Server Side Setup

Dhcp

The first step in PXE booting is having the client make a DHCP request, so you need a DHCP server. Any normal one will do, the extra part you need is the part of the DHCP configuration to send a tftp server and a filename.

Running Your Own

It is also assumed that you already have the ip address configured for your dhcp server, and that it is in the range of your address pool:

apt-get install dhcp3-server
vi /etc/dhcp3/dhcpd.conf

#Edit at will, you need to specify your tftp server ip and file to grab:
subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.70 192.168.0.100;
        filename "pxelinux.0";
        next-server 192.168.0.1;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.0.255;
        option routers 192.168.0.1;
}

/etc/init.d/dhcp3-server restart

Note: There are lots of dhcp servers out there, each with their own configuration oddities. I do know that dhcp3-server works.

Using DD-WRT for DHCP

So you don't want to run your own dhcp server? Let your DD-WRT Router do it for you!
Make sure you have "Use DNSMasq for DHCP" Checked Instead of 192.168.3.33, use the ip of your DHCP server

Tftp

#apt-get -y install inetutils-inetd tftpd-hpa
apt-get -y install tftpd-hpa
service tftpd-hpa start

pxelinux Initial Setup

cd /var/lib/tftpboot/
wget http://mirrors.tummy.com/pub/ftp.ubuntulinux.org/ubuntu/dists/lucid/main/installer-i386/current/images/netboot/ubuntu-installer/i386/pxelinux.0
mkdir pxelinux.cfg
touch pxelinux.cfg/default

Extras

Memtest86+

cd /var/lib/tftpboot/
wget http://www.memtest.org/download/4.10/memtest86+-4.10.bin.gz
gunzip memtest86+-4.10.bin.gz
mv memtest86+-4.10.bin memtest  #For me, I couldnt have it end in .bin otherwise I got continuous "0104"s on my screen
echo "LABEL memtest
KERNEL memtest" >> pxelinux.cfg/default

Ubuntu

Take these instructions with a grain of salt, they just do Lucid (10.04) Server edition. Look at the different options in here to add different install options.

cd /var/lib/tftpboot/
mkdir ubuntu-lucid-32
wget http://mirrors.tummy.com/pub/ftp.ubuntulinux.org/ubuntu/dists/lucid/main/installer-i386/current/images/netboot/ubuntu-installer/i386/linux -O ubuntu-lucid-32/linux
wget http://mirrors.tummy.com/pub/ftp.ubuntulinux.org/ubuntu/dists/lucid/main/installer-i386/current/images/netboot/ubuntu-installer/i386/initrd.gz ubuntu-lucid-32/initrd.gz

echo "
LABEL lucid32
KERNEL ubuntu-lucid-32/linux
APPEND tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=normal initrd=ubuntu-lucid-32/initrd.gz -- quiet " >> pxelinux.cfg/default

Rip

RIPLinux is a nice, small, PXE bootable linux distro. I also have easy instructions for remastering it to fit your needs.

cd /tmp
wget http://www.tux.org/pub/people/kent-robotti/looplinux/rip/RIPLinuX-9.9.PXE.zip
md5sum RIPLinuX-9.9.PXE.zip   #Should be b08004097c8cdd660306497ecc4455ee 
unzip RIPLinuX-9.9.PXE.zip
mkdir /var/lib/tftpboot/rip
cp tftpboot/rootfs.cgz /var/lib/tftpboot/rip/
cp tftpboot/kernel32 /var/lib/tftpboot/rip/
echo "
LABEL rip
   KERNEL rip/kernel32
   APPEND nokeymap initrd=rip/rootfs.cgz root=/dev/ram0 rw" >> /var/lib/tftpboot/pxelinux.cfg/default


#If you are satisfied you got everything you want
rm RIPLinuX-9.9.PXE.zip
rm -rf /tmp/tftpboot

Display File for Reference

Although setting up the LABEL directive in your default file enables a particular PXE booting option, who can remember what you have available? You can create a simple text file to help you remember what you have.

PROMPT 1
DISPLAY banner.txt

And put something in your banner.txt:

Welcome to PXE boot!
Options:
memtest      Memtest86+
lucid32      Install Ubuntu 10.04 Server
rip          Recovery Is Possible Linux

Don't forget, this is just a map, it is not the territory. Just because you have something in this text file doesn't mean it is enabled in your pxelinux.cfg.

PXE Knife

PXE Knife is a kind of Ultimate Boot CD but in PXE form. I have not tried it.

Retrieved from "http://wiki.xkyle.com/Pxe"
Projects
Toolbox
Meta