Pxe
From Kyle Anderson - Notebook - xKyle.com
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!
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.