Ubuntu server for PXE environment (tested on Jaunty 9.04 server).On the Ubuntu server:
Wired network.
PXE boot capable network card on target machine.
Login as root or sudo su -
Create the following directory structure:
/pxeDownload syslinux from here:
/pxe/images
/pxe/images/ubuntu
/pxe/pxelinux.cfg
http://www.kernel.org/pub/linux/utils/boot/syslinux/
Extract the files.
Find menu.c32 & pxelinux.0 & copy them to the /pxe directory.
The other syslinux files & zip are no longer needed and can be deleted.
create a file /pxe/pxelinux.cfg/default & paste in the following:
DEFAULT menu.c32Copy the contents of the Ubuntu live CD into /pxe/images/ubuntu
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
TIMEOUT 600
MENU TITLE PXE Boot Menu
LABEL Ubuntu Jaunty Live Desktop
kernel images/ubuntu/casper/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.1.101:/pxe/images/ubuntu initrd=images/ubuntu/casper/initrd.gz -- splash
LABEL Ubuntu Jaunty Live Install
kernel images/ubuntu/casper/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.1.101:/pxe/images/ubuntu initrd=images/ubuntu/casper/initrd.gz -- splash only-ubiquity
Now install dnsmasq & nfs-kernel-server
apt-get install dnsmasq nfs-kernel-serveredit /etc/dnsmasq.conf & replace all text with:
no-hostsMake sure you replace the ip addresses with ones suitable for your network.
server=/localnet/192.168.1.1
dhcp-range=192.168.1.40,192.168.1.50,2h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/pxe
resolv-file=/etc/nameservers
dhcp-option=3,192.168.1.1
edit /etc/exports & replace all text with:
/pxe/images *(ro,sync,subtree_check)Add your DNS nameservers by creating the new file (this example is for opendns):
nano /etc/nameservers
nameserver 208.67.222.222Reboot your server (or restart dnsmasq & nfs-kernel-server).
nameserver 208.67.220.220
You should now be able to boot your target client machine to Ubuntu if it has a pxeboot enabled network card (usually accessed by pressing F12 at boot).