Important differences in Ubuntu Karmic, and how to fix them if everything goes haywire

Of all the Ubuntu releases of late, 9.10 “Karmic Koala” is perhaps the most radical yet with changes under the hood, as well as the visual refreshes on top.  Most of these are centred around improving performance at boot and overall, and transitioning away from older technologies (such as the HAL hardware abstraction layer being replaced by udev and DeviceKit) to newer, more robust systems.

This means that a lot of the “old” fixes, workarounds and bail-out plans will no longer work. There’s no panic, though: most of them have equally simple (if not better) workarounds.

Dealing with the new GRUB

Karmic Koala replaces the old GRUB bootloader, which is being deprecated in favour of GRUB 2. This brings about various changes: for example, GRUB 2 does not have a menu.lst file, instead generating its configuration file using a variety of editable scripts, most of which you probably won’t even have to touch.

GRUB will almost always automatically detect other OSes, so most of the time you can simply run

sudo update-grub2

and everything will be updated accordingly.

You should NOT, repeat NOT, edit grub.cfg manually under most circumstances.

Help, how do I access the GRUB menu!?

The GRUB menu is turned off by default, but you can access it again by holding SHIFT when the system is booting.

I need to reinstall GRUB, for whatever reason

  1. Boot from a Live CD. Here, I’m assuming your Ubuntu installation is on /dev/sda1 and you want to install GRUB on the MBR of that drive.
  2. Create a directory to mount your Ubuntu installation under: I’d recommend something simple, like /mount. Also, create subdirectories within this directory for /dev and /proc. So, the command you’d run would be sudo mkdir /mount /mount/dev /mount/proc
  3. Mount your Ubuntu installation under the mount point you created earlier, e.g. sudo mount /dev/sda1 /mount
  4. Mount, using the bind option, the /dev and /proc directories. e.g.sudo mount --bind /dev /mount/dev
    sudo mount --bind /proc /mount/proc
  5. Change root in to the Ubuntu installation using chroot. e.g. sudo chroot /mount
  6. You are now acting as root within your Ubuntu installation. Run the following command to reinstall GRUB: sudo grub-install /dev/sda.
  7. If you receive errors, run sudo grub-install --recheck /dev/sda.
  8. You’re done! It’s worth running update-grub2 while you’re here to make double sure that you can boot into Ubuntu, but it’s not compulsory, and if you do you should certainly run it again when you’re back in your installation.
  9. If you’re feeling particularly obsessive-compulsive, you can exit the chroot shell and unmount the drives before rebooting.

My system won’t boot, complaining of an “invalid environment block”

The reason for this error is, as yet, unclear: however, it’s easy enough to work around.

Use a Live CD and mount your Ubuntu partition, then edit /boot/grub/grub.cfg on that disk as the superuser. Look for the first occurrence of this line:

save_env recordfail

Delete it, and reboot. Things should now be working, but you should run

$ sudo update-grub2

as soon as possible.

DVD playback

At the time of writing (11 October 2009), DVD playback is still incredibly dodgy on Karmic, even after installing ubuntu-restricted-extras.

The solution to this issue is to add the Medibuntu repository to your software sources list using the Software Sources applet under System/Administration. Then install libdvdcss2 after running apt-get update.

Installing Pidgin

Empathy is Ubuntu Karmic’s default IM client, and although it’s a fine piece of software and will certainly be mature enough to replace Pidgin in the future, at the moment it comes across as being very feature-incomplete. (For example, the /nick command doesn’t wok on IRC.)

Pidgin, however, can easily be installed to work alongside Empathy or to replace it completely if you choose. To do this, I recommend using the Ubuntu Software Center, the new apt front-end in Karmic.

It can be accessed in the Applications menu, and, when open, will provide you with an iTunes-like overview of categories available. Pidgin is in the Internet “department”.

The new GDM

The old GDM (GNOME’s login manager) has been done away with in Karmic in the interests of making the boot sequence more slick and seamless. The new GDM is more generic, and there are very few configuration options available at the moment.

GDM freezes when I enable an accessibility feature

When the new GDM starts, it runs all the launchers in /usr/share/gdm/autostart/LoginWindow. Simply navigate to this folder with the method of your choice (booting into recovery mode or from a Live CD) and move the offending launchers out of the way.

You might need to move these launchers out of the way again when GDM is updated.

Starting and Stopping Services

The new way to start and stop services is super-easy. The command to stop a service is
$ stop servicename
and to start a service, it’s
$ start servicename

For example, you’d use this to restart GDM:
$ sudo stop gdm && sudo start gdm

If Ubuntu One doesn’t work

Making a debut in Karmic is tight integration with the Ubuntu One cloud storage service, that is in no way similar to Apple’s MobileMe or Windows Live SkyDrive/Mesh. The most immediate difference between the former and the latter two services is that Ubuntu One has a nasty habit of not working at all.

The most common issue is that Ubuntu One won’t authorise your computer properly, and will therefore continue trying to add your computer to the list of authorised machines in an infinite loop. Mercifully, the problem is easy enough to fix, by removing the client software completely and then reinstalling it.

Quit the Ubuntu One client, then remove the authentication token from Passwords and Encryption Keys. (It’s also a good idea to move the Ubuntu One folder in your home folder out of the way.) The run the following commands:

$ sudo rm -rf ~/.share/local/ubuntuone
$ rm -rf ~/.cache/ubuntuone
$ rm -rf ~/.config/ubuntuone
$ sudo apt-get purge ubuntuone-client* python-ubuntuone-storage*
$ sudo apt-get install ubuntuone-client* python-ubuntuone-storage*

Everything should be working now: once you restart the Ubuntu One client, it should authorise the computer successfully.

(These instructions were adapted from this question at Launchpad.)

The last update to this page was on 1 November, 2009

One response to “Important differences in Ubuntu Karmic, and how to fix them if everything goes haywire

  1. Pingback: Differences in Ubuntu Karmic You Should Know About