Easy fix with a livecd. But with a machine that won't boot from a cd, what do you do?
Well my boy spinach can PXE boot. He's set to do that first in his BIOS.
Spinach is fairly modern hardware he just has a flacky IDE2 channel.
So...I used to do this with a fancy schmacy setup on a fedora box I was using for study. Today I needed quick.
I have another local machine, already running 10.10, that has a static IP on my local network. Her name is turnip. It's _my network, I'll name them what I want.
Cut to Turnip
I need the netboot image, dhcpd, tftpd. But wait! I can do all this with dynmasq.
Get the netboot image; unpack; copy to boot directory
Make sure you have dynmasq installed.
sudo apt-get -s install dnsmasq
The dash s means simulate. You decide.
I installed it.
Now my router is setup to serve up DHCP addresses from xxx.xxx.x.200,xxx.xxx.x.209. I know that new hosts on my network will ask for the first available dhcpd assigned address. So I am going to make my dynmasq service start serving addresses at a lower number than my router.
I haven't covered getting the netboot image...sigh
The following is my current working dnsmasq.conf; just the lines that matter...
# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally
# a lease time. If you have more than one network, you will need to
# repeat this for each network on which you want to supply DHCP
# service.
#dhcp-range=192.168.0.50,192.168.0.150,12h
# make sure this range is lower than what is provided by your router
dhcp-range=192.168.1.151,192.168.1.155,12h
# Override the default route supplied by dnsmasq, which assumes the
# router is the same machine as the one running dnsmasq.
#dhcp-option=3,1.2.3.4
# change it to the address of your router
dhcp-option=3,192.168.1.xxx
# Set the boot filename for netboot/PXE. You will only need
# this is you want to boot machines over the network and you will need
# a TFTP server; either dnsmasq's built in TFTP server or an
# external one. (See below for how to enable the TFTP server.)
dhcp-boot=pxelinux.0
# Enable dnsmasq's built-in TFTP server
enable-tftp
# Set the root directory for files availble via FTP.
#tftp-root=/var/ftpd
# set this to where you put the unpacked and moved the netboot tarball
tftp-root=/var/lib/tftpboot
I'm missing the steps to get the netboot image.
tftp-hpa is not running
To get my netboot image I did the following...
cd /mydownloaddirectory
# example mark@flounder:~$ cd /data/downloads/isos/ubuntu/
wget -c http://archive.ubuntu.com/ubuntu/dists/maverick/main/installer-i386/current/images/netboot/netboot.tar.gz
# remember I'm in my download directory
# unpack it here
tar xzv netboot.tar.gz
# this gives me
ls -lh /mydownloaddirectory
# example
# mark@flounder:/data/downloads/isos/ubuntu$ ls -lh
# total 1.4G
# -rw-r--r-- 1 mark mark 693M 2010-10-04 10:10 maverick-desktop-i386.iso
# drwxr-xr-x 3 mark mark 4.0K 2010-09-28 08:53 netboot
# -rw-r--r-- 1 mark mark 13M 2010-09-28 09:03 netboot.tar.gz
# -rw-r--r-- 1 mark mark 673M 2010-09-10 14:16 ubuntu-10.04.1-server-i386.iso
# now I need to move the netboot directory some where that will be owned by root
# if you are using a tftp boot server this should be where it looks
# I did a bunch of rtfm today and decided on /var/lib/tftboot even though I wasn't using tftp-hpa
# again note this is issued from my download directory
sudo cp -r netboot /var/lib/tftpboot
# now I just need to restart dnsmasq
sudo service dnsmasq restart
Back to Spinach
Rebooted via PXE boot server; repaired grub2, rebooted to Maverick Meerkat
-mark