Monday, 21 June 2010

My Karmic Upgrade Travesty

Since I first installed Ubuntu "Feisty" on this PC, I've pretty much kept the OS current thanks to the in-place upgrade option that regularly appears in the Update Manager whenever a new version of Ubuntu is released. The nice thing about a free, downloadable operating system is that there's no risk, so you have nothing to lose by keeping it up-to-date.

Or so I thought, up until 8 months ago.

Late last October, Ubuntu 9.10 "Karmic Koala" arrived. Since I'd heard good things about it, I was more eager than ever to move on from Jaunty. Little did I know at the time that I was just one click away from about two months of hardship. Some of the changes to the OS were just a little too drastic for my aging PC.

Amongst the tragedies I had to endure:

  • Most obviously, compiz-fusion desktop effects wouldn't work for me. Actually, they did work - but at the expense of being able to see my desktop wallpaper, which was hidden behind a big black rectangle. I knew it was supposed to be there, because a tiny stripe of it was actually visible behind my semi-transparent, top GNOME panel. My best guess is that my old ATI Radeon 7000 AGP video card (a component so old and obsolete that it cannot be replaced, and if it fails will force me into completely replacing this system) was no longer supported by Karmic's kernel. Consequences: In addition to losing some striking desktop eye candy, neither dock application that I had been using, awn and Docky, would work without a compositor. Solution, take 1: I tried switching to Metacity instead of compiz. While it worked, it ran so slowly by comparison that the computer was next to unusable. Solution, take 2: I turned off compositing entirely. Apparently I had to make the choice between rotating cubes and drop shadows on the one hand, and a Doctor Who-themed desktop on the other. I opted for the latter. In place of Docky or awn, I quickly mocked up a "dock" with another GNOME panel and a bunch of launchers.
  • Crashy, crashy, crashy. Karmic's default 2.6.31 kernel locked up totally about once a day - sometimes more. Consequences: Unnecessary downtime. Endless disk integrity checks. Impatience and frustration. Solution, take 1: I tried downgrading to Jaunty's kernel, which I had not uninstalled, thank goodness. It was rock solid, which meant I could do my thing without fear of losing my work unexpectedly, although it would not play any audio. Solution, take 2: I somehow hit upon the idea of upgrading to a development kernel (at the time, 2.6.32), which worked fine for me until Karmic's normal updates got to 2.6.31-17, at which point everything seemed to be back to normal.>
  • "Broken" fonts. And when I say "broken," I mean that for some reason I never ascertained, the default UI font actually rendered with bits missing, like someone had taken a hammer to a typewriter. And the longer the PC was on, the worse the problem Got. Consequences: Over time some drop-down menus became very difficult to read. Solution: I changed the display font to Liberation Sans. No big deal; on the contrary, it was a big improvement, and something I might have done anyway if I'd known.
  • My iPod Nano was no longer recognized as a media player: Karmic mounted it like it was just a USB drive. Consequences: Most media players no longer recognized that there was an iPod mounted, and consequently would not allow me to transfer files to it. Hence I lost the use of Amarok 1.4, my preferred media player. Solution: Fortunately, gPodder and gtkpod didn't seem to care. I use and love gPodder for managing podcasts, and although gtkpod is far from perfect, at least it allows me to move music on and off the iPod.

Those were the major annoyances. Apart from those, there were a number of other irritating little quirks that eventually wore me down from thinking I could just ride it out until Lucid came along, to deciding to take the drastic step of downgrading back to Jaunty.

Now I was caught with another problem: there's no way to do an in-place downgrade. It would be impossible to install an older version of Ubuntu without completely erasing my existing Linux drive partition. And since the majority of my personal data and music were sitting on that partition, this was obviously not an option. I had to rework how my data was organized.

Fortunately, GParted allows existing partitions to be resized, so all I had to do was "walk" it from one partition to another while incrementally sizing each. This was a simple enough task but I wasn't expecting it to take two days. One resize took literally 21 hours to finish, and I was a hair's breadth away from thinking something had gone wrong. Fortunately I had a little faith left that all was going as intended, as aborting the job would probably have been catastrophic.

After that, the downgrade went just fine. There were a few things I missed: the newest versions of some of my favourite applications (such as Firefox or OpenOffice) weren't in the Jaunty repositories and it took me a little while to figure out how to upgrade those. (I actually started using regular builds of the development versions of Mozilla Thunderbird and Firefox, amusingly codenamed Shredder and Namoroka, rather than stable releases. Let's just say there's a good reason you're warned not to do that on a production system, and leave it at that.)

Lessons learned

First: don't be so quick to jump on the latest upgrades. This is Linux: the computer will not blow up if you hang on to the old version a while longer until some lingering bugs are worked out on the new one. OK, I didn't really learn this lesson. I resisted the upgrade to Lucid for two whole days. But I was a little smarter about it.

Second, don't use the option to upgrade in place. I had had no problem with this previously, but it's taken just one bad experience to change my mind. In the long run, a fresh install is probably the safer option.

Third, it pays to have your home directory stored on a separate partition from the root directory. That way, you can clear your root partition without worrying about your data, and whenever you reinstall a new OS, you can simply mount the data partition as /home. Another nifty side effect is that all the configuration files for your applications are preserved, too. Supposedly if you re-create your user accounts in the same order as the originals, even permissions will be preserved, although I have not been able to experiment with this on my single-user system.

Better yet, put your root and home partitions on completely different physical drives. That way, if the drive containing the root partition ever blows up, it won't take your home directory with it.

My Jaunty downgrade was meant to be transitional, so I didn't go all the way with these changes. But when Lucid finally came out in April, I was ready for it.

No comments:

Post a Comment