So, I’m creating a home network out of old spare computers. I have two old laptops and one old tower. I will be installing various servers on each.
Currently, my tower has Xubuntu Hardy Heron installed. One laptop I can’t touch till I find a way to get into and save the files. The other laptop is problematic because it doesn’t have a working screen or CD drive.
I decided to install Xubuntu Hardy Heron onto the problematic laptop with a thumb drive. My personal laptop is running Intrepid Ibex and its got that “Create a USB Startup disk” option. Problem solved? Wrong!
Did you know that some thumb drives just cannot be booted from? Well, I have one of those thumb drives…
I had two options at that point: I could buy another thumb drive or I could install a PXE server onto my tower and install Xubuntu over the net.
I took the free option…
What is a PXE Server?
PXE stands for Preboot eXecution Environment. That means you can create a server that boots anything over the network. I would be able to essentially boot the install disc from over the network!
Since open source software is awesome, I knew I could google ‘hardy heron pxe server’ and find the tutorials I needed! That proved to be true. There were lots of tutorials, but none of them worked for me. I combined several and got it nearly working. I would get timeout errors, but I knew the server was up and running. I later found an obscure article with a comment that solved the problem!
I’m writing this so you won’t have to go through what I did just to install an OS! Here we go!
Stuff you need
- a server pc (this will be your PXE)
- a client pc (this is what you’re installing on)
- a LAN
Install some stuff
sudo apt-get install dhcp3-server tftpd-hpa tftp-hpa inetutils-inetd
Download some stuff
You have to download netboot.tar.gz
wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-X/current/images/netboot/netboot.tar.gz
Make sure to change the X in installer-X to your appropriate chip architecture which should be either amd64 or i386.
Extraction and folder prep
sudo tar xvzf netboot.tar.gz -C /var/lib/tftpboot/ sudo chown -R nobody:nogroup /var/lib/tftpboot sudo chmod -R 777 /var/lib/tftpboot
Configure your DHCP server
You have to edit dhcpd.conf
sudo vim /etc/dhcp3/dhcpd.conf
Change the contents of the file to be:
ddns-update-style none;
default-lease-time 8600;
max-lease-time 74000;
subnet 192.168.1.0 netmask 255.255.255.0{
range 192.168.1.0 192.168.1.100;
filename "pxelinux.0"
}
This part is a little weird. I’m running this over a LAN so I just used 192.168. Run
sudo ifconfig
to find out your IP address. You may need to change this file to reflect your network’s setup.
Configure TFTP server
Edit tftpd-hpa
sudo vim /etc/default/tftpd-hpa
The contents of the file should be:
#Defaults for tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
Configure inetutils-inetd
Edit inetd.conf
sudo vim /etc/inetd.conf
The contents of the file should be:
tftp dgram udp4 wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
The third parameter must be udp4! This is what was messing up my setup before. Apparently, Ubuntu versions starting with Hardy need udp4. Older versions can get away with udp.
Restart DHCP server and TFTP server
sudo /etc/init.d/dhcp3-server restart; sudo /etc/init.d/inetutils-inetd restart
If your servers didn’t fail to start, you can move on to the next step.
Check the syslog to help you pinpoint any problems.
tail /var/log/syslog
Installation time
Make sure your server and client are connected to the LAN. Boot up your client and change the BIOS settings. You should put PXE, Broadcom, or whatever network sounding think to the top.
If everything is working, it should be up like an install disc. Be sure to change the BIOS settings on the client after install.
Still having issues?
- Is port 69 blocked?

