I recently was able to procure a rather old IBM Thinkpad X40, without a CDROM or hard drive – this post is an overview of the steps I followed to bring it to Linux-friendly function.

Since the laptop lacked a disk drive, my first step was to stop at a cheap used computer parts spot in downtown Toronto, where I was able to source a compatible used hard drive (30 GB) relatively cheaply. After opening up the laptop and installing it, I then had the task of getting Ubuntu on the machine.

Lacking a CDROM made the process a little more involved; rather than doing the install via an external drive or media, I elected to use a network install via PXE (since a network boot agent is available in most modern BIOS releases).

The first step was to enable my main Ubuntu desktop as a dhcp server, specifically to serve up an IP address to the X40. I installed the standard dhcp server and pxe network packages on my system using apt-get:

# sudo apt-get install tftpd-hpa dhcp3-server netkit-inetd

which automatically updated my /etc/inetd.conf to include the line

tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot

at the end of the file. The /var/lib/tftpboot directory was also automatically created.

I then updated the /etc/dhcp3/dhcpd.conf file, which defines the address that will be served, as well as the bootp file that will be delivered (if any). The entry below was added to the file:

subnet netmask {
filename “pxelinux.0”;

The next step was to set up the netboot files that would be delivered via the pxe setup to my X40. There are some odd issues with using the netboot files from some of the later Ubuntu releases, causing the install to take a very long time, up to 12 hours. However, your experience may differ. To avoid this, I downloaded the Ubuntu Edgy Eft netboot files as my base (see below), and executed the cp command to copy the netboot files to the /var/lib/tftpboot directory.

# lftp -c “open http://archive.ubuntu.com/ubuntu/dists/edgy/main/installer-i386/current/images/; mirror netboot/”
# cp -a netboot/* /var/lib/tftpboot

Finally, I enabled the dhcp server  on my desktop machine (I disabled my main dhcp server which normally provides addresses on my network – in most cases, this will be your main internet router).

#  /etc/init.d/dhcp3-server start
* Starting DHCP server dhcpd3                                           [ OK ]

On the X40, I enabled the alternate boot up using PCI network (i.e., the PXE or BOOTP agent), which immediately detected the available netboot installation files, and brought up the Ubuntu startup screen – effortless! The process then was exactly the same as installing from ‘hard’ media; take note, that when asked to provide the IP address and gateway, you should make sure that you use the IP served by your PXE DHCP server and the actual internet gateway/DNS for yor network.

Once my Edgy Eft Ubuntu install completed, I elected to immediately upgrade to the latest Gutsy Gibbon (7.10), which had no issues. All in all, this is a great way to quickly and easily setup a new diskless workstation, when alternate media aren’t available.