So, I’m developing Piracy Inc in Ruby on Rails version 3. Because newness is obviously better, I’m also doing this with a fully integrated IDE, in the form of Netbeans. Currently, the Debugger functionality of Netbeans doesn’t work under Windows (because it wants to compile a module, and there isn’t a compiler, and the precompiled versions don’t work, and getting a compiler working led to two hours of yak shaving that could have better been spent picking the lint out of my bellybutton).

So I decided to install Ubuntu, because there was a new version out, and because the server PInc will be running on will be a Linux server, so doing dev work on the same OS makes sense.

I have an ATI (now AMD) graphics card, a motherboard, and a complicated hard-drive setup. There’s a 1Tb drive acting as a windows/boot drive, a 30Gb SSD drive for things I want really fast access to (It used to also be the boot drive, but broke and got sent back, so the current boot drive was put in as a temporary stopgap, and I haven’t reinstalled since the SSD got returned) an SIL 3132 RAID card with 2x1Tb drives in Raid1, a USB hard drive for backups, and an HTC Desire mobile telephone.

So: Boot, SSD, Raid(Disk1,Disk2), USB, Phone.

Boot from CD. the partition manager scanning of the above takes ages.

Resize boot drive to install things onto, big partition.

No swap. Back. Wait for rescan.

Big partition. Swap drive. Install.

Tea.

Reboot.

Grub cannot find the boot device. “grub rescue>” prompt.

GoogleGoogleGoogle How do I use grub rescue?

“The grub-rescue> mode is a more restricted subset of the grub> shell. Some commands are phrased differently here for easier use. Try help to start. “

Awesome. Except help doesn’t work, and the documentation doesn’t say how the command set differs. Root and boot don’t work either. Also:

Useful tip: try to load normal mode: insmod /boot/grub/normal.mod

Ah, so your hint to how to use grub rescue is to get to grub normal. Why does grub rescue exist, then?

I assume there is documentation for grub rescue somewhere, but I couldn’t find it. Eventually I realized I still needed to care about boot drives being in the first X cylinders of the hard drive, rebooted from rescue and reinstalled.

So, Ubuntu is installed across SSD and Boot, with churning stuff on Boot (/home, /var, /tmp, /swap) and more static stuff on the SSD. SSDs have more limited write-life, so this is Good Use Of Technology.

Support for my RAID card appears to be a little broken. By a little broken, I mean that each drive attached to the RAID card is currently available as a separate block mountable device in the My Computer window, which is pretty much the exact opposite of anything I ever want to happen ever ever ever involving anything ever attached to a RAID card. Still don’t know how to fix that, got dmraid to create another device as a RAID access, and mounted that. So long as I always mount the *right* block device called “RAID” and don’t accidentally mount one of the component devices on its own or write to it and invalidate the integrity of the set, I should be fine. It’s not as if they’ve all got the same name and icon, or anything.

No, wait.

My phone was running low on battery so I plugged it in.

Okay, graphics then. Right. I have an ATI graphics card, duel head output, left side Benq FP73G mounted landscape, right side secondary Benq FP73G+ mounted portrait. Monitor Preferences would allow me to enable the second monitor in desktop extension mode, but if I attempted to rotate it would spontaneously reboot X and lose everything I was doing. So I installed the AMD non-free graphics drivers because I hate freedom and want my shit to work.

The drivers installed and I had to reboot. How quaint. Right, fine, kernel modules are complicated. Reboot.

Or, you know, not. Can’t mount /home. or /var. Nor /tmp or swap.

What?

Okay, so further research (involving command lines and fdisk) suggests that the drive referred to above as Boot is no longer /dev/sdd, but is instead /dev/sdf. Fine, some kind of updates happened. Change fstab, reboot.

X works, but it’s in mirrored display again, so I configure that to be duel head, and it tells me to reboot. It doesn’t mean reboot, it means restart X, so I press ctrl-alt-backspace, the time honoured method of “Get me out of here, X has gone crazy”. Apparently that doesn’t work either. Way to go. Ah well, give in, reboot. Take a recruiter call while it does so.

Can’t mount /home. or /var. Nor /tmp or swap.

What?

The drives are back to being /sdd again. Great.

Can you spot a running thread, readers? Do you see why the numbers are getting shuffled? Has the reason I included “an HTC Desire mobile telephone” in the list of hard drives started to make sense?

Yes, plugging my phone in and then rebooting causes the allocation of my hard-wired hard-drives to go haywire.

Awesome.

Eventually, I find out that the AMD drivers autodetect the refresh rate of my monitor wrong, causing it to give up and go black. I find that my motherboard does strictly unnecessary things that cause USB drives to mean SATA drives get renumbered, I find that my RAID card is a “FakeRAID” card, the RAID equivalent of a winmodem, except with claimed support from Linux, and I should be grateful that it works at all.

And none of this is Ubuntu’s fault, really. It’s AMD’s stupid drivers, or the motherboard, or badly made cheap RAID cards. And the later problems installing Ruby from source (because Rails3 needs 1.9.2, which isn’t packaged), having to edit a Ruby library file to get the debugger to run the right script, but I spent more time attempting to get all of the little component parts to work together than I could spend actually progressing towards actual Piracy Inc development work.

The most common FUD campaign slogan against free software is that it’s only “free” if you don’t value the time you spend faffing with it to get it to work, and that’s a lot less true than it used to be, but the time I spend faffing with the above kind of crap is still far, far too much.

So it’s not the year of the linux desktop now, either.