OpenSUSE 12.3 upgradation guide – tips, tricks and tight corners

-By Vaibhav Kaushal

OpenSUSE 12.3 KDE Desktop - Irresistibly beautifulIt has been 8 years now that I have been using Linux. Got my first computer in the beginning of 2005 and of course, the first thing I installed was Windows XP. Then in August I tried out with a CD image of SUSE 9.1 which came with one of the tech magazines I used to buy then; and that was the first Linux that touched my P4 system. Ever since, I have been a hardcore fan of Linux, especially OpenSUSE (as it is called now). My humble suggestion is that you do not ask an OpenSUSE fan his reasons for being one, unless you are eager and ready to listen the word awesome a few hundred times. Oh, and by the way, if you want to know what you are gonna get after upgrading to OpenSUSE 12.3, here is the OpenSUSE 12.3 (Dartmouth) review.

OpenSUSE 12.3 is a recent release and packs with itself the regular goodies – new kernel, some performance improvements and latest packages all packed in a neat, clean and green package. The OpenSUSE distribution does not support automated over-the-network distro upgrade (for good reasons) even if it is possible. I call it good because I have used Ubuntu for about an year and a half and I hated how distribution upgrades slowed down my computer each time I ran them. I had to eventually remove it and come back to OpenSUSE.

Now, the way you run distribution upgrades in OpenSUSE is by popping in the DVD of the new release into the tray (I prefer USB drives) and run the installer. After accepting the license (which no one cares enough about, obviously) you are presented the option to upgrade. Though it might looks real easy, it can be a little difficult. I have been lucky to face quite a number of them and this post tells you how I went through the upgrade. In this post, I would tell how to deal with problems and what you can do to avoid them in the first place (and have better experience than me)!

Run the installer

Upgrading to OpenSUSE 12.3 from OpenSUSE 12.2When My ISO got downloaded, I ran the MD5 check twice to ensure that the package was clean. Once confirmed, I just transferred the image to USB and prepared for the boot. Up came the boot menu, then the license and then the option to choose from new installation and upgrade. I guess you know what I selected.

The wizard detected the installations and asked me to choose the installation to upgrade. There was only one and so I had to decide on nothing. Next it detected the partitions and warned me that my current installation was mounting some partitions using kernel device names and asked me to correct that. I was too enthusiastic to ignore that and continued, only to realize later that it was a mistake (I have covered that later). The installer then showed me a screen to let me keep my old software repositories if I wished; the installer removes all of them by default. Since the only 2 extra repositories I have are those of VLC media player and Google Chrome, I chose to remove all in the list (both these have updated the repos for the new version of OpenSUSE).

An overview came next and there was almost nothing needed to be changed. Anyways, I proceeded. About 30 long minutes later, the installation was over and I was ready to feast my eyes.

Who said names don't matter?

The first boot is the most decisive one. For an enthusiast like me who has a lot of data on disk and one single mistake by the installer could have destroyed my entire collections, it was more like 7 minutes of terror of the rover touchdown on mars than like an OS upgrade. Regardless, the first boot failed.

OpenSUSE warning about the kernel device names while upgradingI was greeted by the emergency prompt. This was strange because the installer had not run into any problem. And then I remembered that warning about the device naming in /etc/fstab file. However, that one was unlikely to cause any problem because the root (/), home (/home) and swap partitions were all on the same disk and that disk was mounted by device ID name. The only thing that should have failed was the mounting of other partitions on the second drive. Anyways, I went to /etc/fstab and (painstakingly) changed the kernel device names to device ID names and rebooted. Voila! I was no more getting the emergency prompt.

The reason it happened was that when I had installed the OS the first time, there was only one disk attached to the system. I had later added a secondary disk and used the kernel device named (like /dev/sdb1 and /dev/sdb2) for mounting the partitions. Since I upgraded using a USB drive, the kernel shuffled the device names around and that broke the mounting process. Anyways, I corrected that and it worked. If you have a secondary disk which is getting mounted via kernel device name, change it and use the /dev/disk/by-id/ style device names for mounting them. There are two ways for that. The first is to use YaST's Partitioner module and the second is to edit the file by hand. The way is to start the module and select the desired partition and right click it and select 'Edit'. YaST would present the options for the partition. Under the 'Mounting Options' section, click on the 'Fstab options'. A new window will open. Click on the 'Device ID' option and save the settings. You need to repeat this for all the volumnes which are mounted using kernel device names!

Since I had already run the upgrade, the only option left with me was that of editing the file manually. Here is a sample of how a line for mounting devices by ID would look in /etc/fstab:

/dev/disk/by-id/ata-WDC_WD3200BEVT-75ZCT2_WD-WXE1A9033884-part3 /home  ext4  defaults 1 2

Unfortunately, the only way to know what the ‘by-id’ device names would be, is to go to /dev/disk/by-id directory (as root) and run the ls command. However, if you have not added or removed disks since the last installation, this should not trouble you at all!

X failed to start

Strange enough, all I got was a green Plymouth screen. I kept waiting and waiting and waiting and wondering. Nothing happened. In the end, I pressed the [Esc] key to see what the problem was and there was no error. The only thing that I saw had failed was the loading of VirtualBox module but that was unlikely to cause trouble (but I was not so sure this time because my last prediction was wrong). The system seemed to halt after printing a line like (I don’t remember it completely): “Reached Graphical User Interface checkpoint”.

It gave me a gut feeling that X11 server was failing. But I had no way to know. Thankfully, I was no longer in the single user mode. So I ran ‘startx’ and it gave me an output and failed and all could do was curse it! I got desperate and pressed various function keys with Alt+Ctrl pressed and then I accidentally pressed Alt+Ctrl+F10. Strange enough, it had a lot of logs. From whatever was displayed on screen, it looked like KDM was getting confused about which theme to use. The file was /usr/share/kde4/config/kdm/kdmrc. I opened it and found no such thing. Whatever it was, I was sure that it was somewhere the problem of X. Pressed Alt+Ctrl+Del to reboot and re-analyze the logs.

Be careful about NVidia drivers on LinuxThis time I found in the logs that the problem was occurring while inserting the nvidia module to the kernel. Sure as hell I had forgot that I was using NVidia’s closed source drivers. One phrase that came to mind (thanks to Mr. Linus Torvalds): Fuck you, NVidia! Anywas, I remembered that I had the old driver installation file on disk. I tried to execute it and it said that it needed to uninstall the old installation. I asked the wizard to proceed and it just failed (!) with an awkward message which indicated that I did not have kernel sources installed, which I was sure were installed. Now, that was frustrating because I did not have enough experience of configuring X and I did not know how to prioritize nouveau drivers over nvidia. And then I thought – what if I just tried to download and install a newer version of driver? But how? All I had was command line and links was not the best browser and people do not create webpages keeping the links browser in mind.

Luckily enough, the NVidia driver installer file comes with a handy option --update which automatically connects to the internet, downloads the latest version of the driver and runs it! Since I had my router connected to the internet and the PC connected to router via Ethernet, I used the same options and this time, luck was on my side - installation went perfect and I rebooted and reached the graphical login screen! I wonder how bad it would have been if I were on a laptop and a wireless connection – connecting to a Wi-Fi network over command line is no easy job!

Points to be noted:

  • Download and store the latest version of your graphics card drivers; you might need them.
  • Best to be using Ethernet with DHCP when upgrading (for the ‘just-in-case’ times).
  • Just because a log entry says that KDM has gone berserk, it does not mean that it has. KDE is usually less faulty than closed source drivers.
  • Alt+Ctrl+F10 would open a non-interactive terminal which is a good place to see some detailed logs which can indicate what failed the booting procedure.
  • The driver version that the NVidia’s installer downloaded was 310.40. You can keep it handy because I could not locate it later. It might have gone to /tmp or somewhere I don’t care enough to peek.

NOTE: Since writing this post, I have updated 3 other systems from OpenSUSE 12.2 (Mantis) to OpenSUSE 12.3 (Dartmouth) and the one thing which I found was: if you do not have the NVidia propriety drivers installed, the X11 subsystem does not misbehave (not at all). 

Where the hell is my furniture anyway?

Windows OSThough Windows is a brilliant OS and has got some good uses, capabilities and software that make it useful enough for people who like hell, I fondly like to call it a ‘furniture’ when I compare Linux to it. Whatever be the case, I needed the Windows installation to be there because of a few apps and games. Strange enough, it was now that I realized that the Windows was missing from the boot menu. However, since the partition was there, I was sure; grub had missed to detect it.

It took a little bit of searching and I found out the way to get it back. You need to login as root (just do a ‘su’) and issue the command grub2-mkconfig. This will output the configuration on screen. Of the cryptic looking output, there would be a menu entry for Windows too. It would look something like this:

menuentry 'Windows 7 (loader) (on /dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-chain-028A4DFA8A4DEAAD' {

        insmod part_msdos

        insmod ntfs

        set root='hd1,msdos1'

        if [ x$feature_platform_search_hint = xy ]; then

          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1  028A4DFA8A4DEAAD

        else

          search --no-floppy --fs-uuid --set=root 028A4DFA8A4DEAAD

        fi

        drivemap -s (hd0) ${root}

        chainloader +1

}

All you need to do is to copy that part  and paste it in /boot/grub2/grub.cfg file. Better still you can just run these commands:

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old

grub2-mkconfig > /boot/grub2/grub.cfg

This will backup your old grub.cfg file in the /boot/grub2/ directory with the name grub.cfg.old and update the actual file with new configuration which would contain the Windows menu entry as well.

Post Drama, Post Trauma

After a good couple of hours my heartbeat came back to normal, sweating stopped and it was time to fix things which were not broken. I installed Google Chrome and VLC media player once again and rebooted to Windows to make sure that things were working the way I expected them to! All was well! A review of the beautiful looking new OpenSUSE 12.3 is in process and you can come back a couple of days later to read about it!

Posted on Mar 16, 2013 01:44 PM
comments powered by Disqus