Installing Ubuntu Lucid via debian-installer over wireless

I’m a huge fan of installing Debian and Ubuntu systems with debian-installer. Unlike debootstrap, which just installs a set of base packages into a directory, debian-installer does a number of nice things such as offering to do partitioning, setting /etc/fstab correctly, generating locales, installing a bootloader, etc. etc. — all things that get you an installed and working system as opposed to a pile of packages. Also, unlike Ubiquity, the standard (graphical) Ubuntu installer from the live CD, which despite reusing some d-i code works mainly by copying the live CD onto the hard disk and cleaning it up, d-i actually installs each package in turn, which allows you to customize your installs.

I can and probably will talk at length on why I love debian-installer and how I use it in another post, but this last ability was specifically important to me when reinstalling my Eee PC 900A, a machine with under 4 gigabytes of disk space, most of which I wanted free for myself and not for the operating system. What I can do is tell d-i not to install any “tasks”, thereby leaving me with a base (text-mode login!) system that I can later add packages to as I need.

Unfortunately my favorite method of doing this sort of install is via the network installer, and when I started the install process I quickly found that I was getting checksum errors from my local mirror when downloading udebs (special packages designed for the installer environment). Suspecting, at first, the mirror, I downloaded by hand all the udebs from another nearby computer, several times, and was able to verify their checksum. Switching Ethernet cables didn’t help my netbook have any more luck, nor did switching mirrors, so I’m left with the assumption that my Ethernet card is slightly bad. Since I only ever use wireless networking on my netbook, I wouldn’t care about that if I could do the install over wireless, but d-i never gave me an option to use a wireless Ethernet card, nor did one seem to be detected…

However, in the process of sanity-checking the mirror, I noticed the existence of a udeb called “wireless-tools-udeb”. I downloaded, verified, and copied that udeb (and its dependency, “libiw30-udeb”) to my disk via a live CD, and also copied the live CD’s copy of the kernel modules necessary for my particular wireless card, ath.ko and ath5k.ko. Then I restarted the installer, mounted my disk, ran “udpkg -i” on the two udebs and “insmod” on the two kernel modules, and confirmed that I started seeing a wireless device and was able to connect it to MIT’s network with iwconfig.

Much to my surprise, installing wireless-tools had two nice side effects:

  1. After I selected wlan0 as my network device to install via, it asked me what ESSID I wanted to connect to, and what WEP password (if necessary). This completely surprised me; I expected that I’d have to configure wireless networking by hand, and let the installer treat it as essentially a wired-Ethernet device.

  2. When the install completed, /etc/network/interfaces on the installed system was configured to automatically connect to the MIT network.

I was able to successfully complete the install just over wireless. Now I have a laptop that boots in approximately twelve seconds, including connecting to the network.

13 June 2010