Archive

Archive for May 5th, 2007

PXE Linux install from Windows (Ubuntu/Debian)

May 5th, 2007

Hmmm, haven’t quite managed to blog as much as I’d hoped due to work commitments (hard work getting back into working a full day after 4 months of i can tell you) and a couple of interesting side projects (setting up a media center pc and one I can’t tell you about).

Anyway on with the point of this blog… I’ve finally found time to put my little linux server back together. I decided to pull the harddrive out of my old backup server and put both drives in the more powerful box. This seemed like a sensible point to reinstall (it was running an ancient Debian install).

The first big logistical challenge I ran into is that I don’t have a spare CD drive kicking about and I’m way to lazy to pull one out of my other computers. So this leaves me with trying a USB memory key install, trying to find my USB floppy drive (and hoping my mini-itx mobo will boot from it) or PXE. Since my iPod shuffle died and the low probability I could persuade my machine to boot from USB I decided to try PXE again.

My intitial run in with PXE was several years back and there was a lot of tutorials on how to set it up onlinux but almost nothing about how to get it working on a Windows machine. This time a quick visit to google turned up Ubuntu PXE install via Windows. A quick download of an ftp client (Smart FTP, very impressive bit of software by the way) and grabbing the ubuntu installs and I had a directory looking like this

 Directory of C:tftp 

04/05/2007  04:34 PM    <DIR>          .
04/05/2007  04:34 PM    <DIR>          ..
20/10/2006  05:42 PM         8,315,725 boot.img.gz
20/10/2006  05:42 PM         8,849,408 mini.iso
20/10/2006  05:42 PM         8,381,337 netboot.tar.gz
20/10/2006  05:44 PM            13,156 pxelinux.0
04/05/2007  02:48 PM    <DIR>          pxelinux.cfg
22/04/2007  02:53 AM           192,512 tftpd32.exe
04/05/2007  02:42 PM    <DIR>          ubuntu-installer
               5 File(s)     25,752,138 bytes 

 Directory of C:tftppxelinux.cfg 

04/05/2007  02:48 PM    <DIR>          .
04/05/2007  02:48 PM    <DIR>          ..
20/10/2006  05:42 PM             1,799 default
               1 File(s)          1,799 bytes 

 Directory of C:tftpubuntu-installer 

04/05/2007  02:42 PM    <DIR>          .
04/05/2007  02:42 PM    <DIR>          ..
04/05/2007  02:46 PM    <DIR>          i386
               0 File(s)              0 bytes 

 Directory of C:tftpubuntu-installeri386 

04/05/2007  02:46 PM    <DIR>          .
04/05/2007  02:46 PM    <DIR>          ..
04/05/2007  02:46 PM    <DIR>          boot-screens
20/10/2006  05:42 PM         6,850,004 initrd.gz
20/10/2006  05:43 PM         1,574,481 linux
20/10/2006  05:44 PM            13,156 pxelinux.0
04/05/2007  02:46 PM    <DIR>          pxelinux.cfg
               3 File(s)      8,437,641 bytes 

 Directory of C:tftpubuntu-installeri386boot-screens 

04/05/2007  02:46 PM    <DIR>          .
04/05/2007  02:46 PM    <DIR>          ..
20/10/2006  05:42 PM               301 boot.txt
20/10/2006  05:44 PM               880 f1.txt
20/10/2006  05:44 PM               723 f10.txt
20/10/2006  05:44 PM               740 f2.txt
20/10/2006  05:44 PM               807 f3.txt
20/10/2006  05:44 PM               416 f4.txt
20/10/2006  05:44 PM               806 f5.txt
20/10/2006  05:44 PM             1,004 f6.txt
20/10/2006  05:44 PM               916 f7.txt
20/10/2006  05:44 PM             1,066 f8.txt
20/10/2006  05:44 PM               766 f9.txt
20/10/2006  05:44 PM             8,023 splash.rle
              12 File(s)         16,448 bytes 

 Directory of C:tftpubuntu-installeri386pxelinux.cfg 

04/05/2007  02:46 PM    <DIR>          .
04/05/2007  02:46 PM    <DIR>          ..
20/10/2006  05:42 PM             1,799 default
               1 File(s)          1,799 bytes

A quick change of the bios settings to persuade it to boot from the LAN and … nothing. It took a fair amount of fiddling with the settings in tftp to get it to work. This is what I ended up with
TFTP
The important bit seemed to be the “ping before assignation”

If all is well you should end up with something like this in the tftp log window

Rcvd DHCP Discover Msg for IP 0.0.0.0, Mac 00:40:63:C9:E7:70 [05/05 08:37:28.716]
Client requested address 0.68.101.74 [05/05 08:37:28.716]
DHCP: proposed address 192.168.0.15 [05/05 08:37:28.716]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:40:63:C9:E7:70 [05/05 08:37:30.700]
Previously allocated address 192.168.0.15 acked [05/05 08:37:30.700]
Connection received from 192.168.0.15 on port 2070 [05/05 08:37:30.708]
Read request for file <pxelinux.0>. Mode octet [05/05 08:37:30.708]
Using local port 49564 [05/05 08:37:30.708]
<pxelinux.0>: sent 26 blks, 13156 bytes in 0 s. 0 blk resent [05/05 08:37:30.752]
Connection received from 192.168.0.15 on port 57089 [05/05 08:37:30.768]
Read request for file <ubuntu-installer/i386/boot-screens/boot.txt>. Mode octet [05/05 08:37:30.817]
OACK: <tsize=301,> [05/05 08:37:30.817]
Using local port 49575 [05/05 08:37:30.817]
<ubuntu-installeri386boot-screensboot.txt>: sent 1 blk, 301 bytes in 0 s. 0 blk resent [05/05 08:37:30.820]
Connection received from 192.168.0.15 on port 57100 [05/05 08:37:30.821]
Read request for file <ubuntu-installer/i386/boot-screens/splash.rle>. Mode octet [05/05 08:37:30.821]
OACK: <tsize=8023,> [05/05 08:37:30.822]
Using local port 49576 [05/05 08:37:30.822]
<ubuntu-installeri386boot-screenssplash.rle>: sent 16 blks, 8023 bytes in 0 s. 0 blk resent [05/05 08:37:30.883]
Connection received from 192.168.0.15 on port 57101 [05/05 08:38:02.012]
Read request for file <ubuntu-installer/i386/linux>. Mode octet [05/05 08:38:02.013]
OACK: <tsize=1574481,> [05/05 08:38:02.030]
Using local port 49577 [05/05 08:38:02.030]
Connection received from 192.168.0.15 on port 57102 [05/05 08:38:05.132]
<ubuntu-installeri386linux>: sent 3076 blks, 1574481 bytes in 3 s. 0 blk resent [05/05 08:38:05.132]
Read request for file <ubuntu-installer/i386/initrd.gz>. Mode octet [05/05 08:38:05.132]
OACK: <tsize=6850004,> [05/05 08:38:05.132]
Using local port 49578 [05/05 08:38:05.132]
<ubuntu-installeri386initrd.gz>: sent 13379 blks, 6850004 bytes in 13 s. 0 blk resent [05/05 08:38:18.362]

/Technology