I recently updated my home computer from openSuse 11.4 to version 12.1. In this post I’d like to recount the steps, pitfalls and successes I had in the process. Maybe someone will find this helpful.
I’ve been with Suse Linux since version 5.x. In the past an installation would usually take me a week to get everything setup the way I wanted. Ethernet, graphics, printer and many other things required a lot of searching and this took a lot of time in the pre-google era. In the meantime the install process goes very smoothly. However, the last few updates I did were always from scratch. That is, I would reformat my root partition where the system files were located and leave my home partition the way it was (with a backup of course). This time I wanted to do a straight upgrade without cleaning up. Since the last few installations and upgrades went so smoothly I assumed this one would be a piece of cake. I had kept my 11.4 distribution up to date and was pretty much one leap away from the new 12.1 distribution.
This forum thread pointed me to two explanations of how to go forward with and upgrade: SDB:System upgrade and Chapter 15. Upgrading the System and System Changes. I chose to first try the SBD:System upgrade. I did the steps under Prepare your installation and Running the Upgrade. At the step issuing the command “zypper ref” things started to go bad. Sorry but I can’t remember the exact error message but I think it had something to do with the RPM library. I was hoping to do a pure internet upgrade (i.e. no need to burn an installation DVD) but that hope died with the errors coming from the zypper command. So I began doing the other approach (Chapter 15. Upgrading the System and System Changes) and started an ISO Download heeding the warning about Persistent Device Names by changing my fstab entries via Yast to mount using a label. The original 11.4 system was still working after this change so I thought everything was OK. After a few hours I gave the install DVD a try as per the instructions. I got to the point where I instructed the installer to do an update rather than a complete install. At this point the installer would go no further. And the error message was disturbingly windows like: something involving the RPM package library and continuing the message “unknown error.”
RPM Package Library
I discovered that my RPM package library file /var/lib/rpm/Packages was corrupted. I was unsure how and when this occurred but I strongly suspect that the aforementioned zypper command was the culprit. Somehow I’ve had better luck with Yast and am still a littler uneasy with the zypper command. Anyway, I was stuck trying to find a way to re-create the Packages file. After several unsuccessful attempts using rpm to rebuild the file, I discovered that openSuse makes backups of the rpm Package library. They can be found in /var/adm/backup/rpmdb. As I understand it the rebuild function is not a recreation but simply a reparation of a corrupted file. If I didn’t have a backup i’m not sure what I could have done. Probably do a clean installation instead of an update. Anyway, once I cleanup up my RPM package library the update via DVD worked just fine. Until it came time to reboot into the second phase.
When attempting the reboot GRUB was not able to boot the system. Due to my previous experiences installing Suse I knew that this was not a major problem, just bothersome. I had to figure out how to convince GRUB to boot into the system which I was confidant was properly installed. I dove into the GRUB command line editor and began playing around and reading the help. By a stroke of luck I happened to find an “easy” solution. The GRUB entries for the boot disk and the initrd referenced my hard-drive as (hd0). However, my hard drive has three paritions and the boot disk is in the second one. I manually changed the prefix to be (hd0,1) [1 indicates the second partition as the first is 0]. After this the newly installed system booted into its second round and every went without a hitch. All the vital components seemed to be working. I was glad I was able to get over two major hurdles. But things were not finished yet.
I have an ATI-Radeon graphics card which runs quite well with the open source drivers, but I do notice the proprietary drivers do run a tad faster. I notice this when the mouse cursor moves over areas where a pop-up box is displayed. It works but it’s slow enough to be irritating. The native ATI driver can be installed easily and after a reboot things are working quite well. The downside of this is that using tumbleweed in this constellation is not recommended. I’m still debating this one.
Another irritating thing is that was quite irritating was the lack of audio. I spent several hours looking at pulse-audio and also settings to no avail. In Yast my sound card was recognized and even played a test sound. But within KDE itself no sound. The pulse audio setup, kmix and so forth showed only a dummy sound sink. The solution was very simple. The user must be added to the audio group. After I did this everything worked like a charm. An easy solution but bothersome because this was not required before.
The final problem was a real pain and caused me much anxiety. Kmail (now kmail2) is unable to migrate all my Kontact data: mail, contacs, calender etc. This was quite unnerving. I quickly found several forums on the openSuse site where frustrated users were ranting about the major KMAIL FAIL. I shared their concerns and was equally displeased. I have several hundred emails and rely heavily on my calender. I was not looking forward to digging through my old files and backups to restore my data to a usable state. BTW, the kmail/kontact data locations can be found here.
I considered going to Thunderbird or even using Claws but I really wanted to stick with Kmail if it were possible. I spent a few days fiddling around trying to see if the other software could do what I need and most of all if they could import the mail data, which was still intact. What I eventually realized is that I had panicked. I just needed to get acquainted with the new setup, in particular how to manage the new akonadi, and kontact/kmail worked just fine. Akonadi just needs to know where the data is and it works just fine. Once i got that set up correctly, kmail2 was able to read my old mail directories without a problem. At first I saw my old mail directory tree but everything was empty. I though they had all been erased but it was simply a matter of telling kmail2 to do an update of the directories. After that everything was there.
The thing that helped me get that all cleaned up is to realize a few new tings about the kontact/akonadi architecture. Akonadi is a data layer between kontact and the hard-drive (I’m still using vcard and ical files). Once I got the data sources in akonadi cleared up kontact worked just fine. Because the initial migration failed and I tried several manual attempts akonadi was full of entries which pointed to nothing useful. After looking more closely I deleted all the extraneous entries and recreated those for my calendar, email directory and contacts list. That was a scary situation but in the end everything is working well.