I ended up spending 15 hours at work today, rather than the usual 6 or 7, thanks hda on our firewall box deciding it’d had enough. I/O errors on /tmp, which both getty and ssh require to do logins properly, for some reason. Fun stuff.
So, had to make a call to the boss to ensure I’d get re-imbursed, and then it was off to Best Buy to purchase a new drive (you can get a 60G 7200 RPM Maxtor for $45 around here), and rush back. The resident hardware hacker (who gets a kick out of frankenstein-esque wiring jobs, like one involving an IEEE 1284 [parallel port] connector, a 4-pin HDD power supply, and a radio module ripped from a dead stereo amplifier), ripped out the hard drives (/ and /var) and connected them to some more funky cabling and a CD drive in an open lab machine we had. Then I booted the ubuntu warty installation CD and got to the “Execute a shell” option, mounted the drives and began copying files.
Some problems exist with the ubuntu warty (and probably most other) install CDs, though. Firstly, devfs sucks at the shell. I’m not even talking about the race issues or the screwy module loading thing; just having to type /dev/ide/host0/bus0/target0/lun0/partX for everything is a total PITA, and if you need a shell in the installer, you almost certainly want it to do things in /dev. Which brings me to problem #2: The combination of a C.UTF-8 locale and the BusyBox stuff means that shell editing is messed up. So if you hit the UpArrow key to get the last command, then go back into it to change some char or something, it totally screws up the buffer with the command in it. I get the same thing with bash and UTF-8 characters in $PS1 here, BTW (according to mariano, it’s because the shell isn’t being run from a UTF-8 locale). This means that you either have to be good at blind editing or re-type the whole /dev/... path every time. Which brings me to problem #3: Often, but not always, hitting CTRL+C from within the BusyBox shell will screw up the framebuffer and start randomly doing stuff. What exactly it’s doing, I couldn’t say, since the screen was munged before it started doing it. This meant about a half-dozen reboots while I broke myself of the habit of using CTRL+C in the shell. Which meant re-mounting those partitions a half-dozen times. Which meant re-typing those huge devfs paths a couple dozen times. There’s also no fsck.xfs or just-plain mkfs (useful for the -c option) executable either, which is kinda lame. But hey, it’s an install CD, not a rescue disk, so I’ll take what I can get.
Anyhow, we eventually got the box back together, installed the woody backport of the smartmontools package, and were on our merry way.
I should also probably mention that our total downtime was only around 10 minutes or so, because Linux (at least Linux with the in-use stuff monolithically compiled in—I wouldn’t want to try this with a lot of modules) kept on filtering our internet connection, even after we physically removed both the hard drives while it was still powered on. (We did shut it down before plugging the new one in, though.) 
Try that on Windows.
- My cynical side is drearily waiting for this paragraph to end up in some Apple-esque advert for Linux—or some magazine article to the same effect. It just has that gushing quality to it.