Skip to content


Ubuntu 7.10 (Gutsy Gibbon) Ubiquity Migration Assistant Errors

Recently I’ve bought another PC which I’ve started using in place of my laptop while I am at home. I’ve decided to switch my laptop back to a machine for testing. I like trying other Linux distributions and I don’t care for testing them out using virtualization. Once I get a feel for it on a actual machine it is a lot easier to test and revert to a previous state using VMware Server or VirtualBox. Since I’m using it for testing again I decided to put several distributions back on it. At one time many months ago I had installed Windows XP (with Microsoft Shared Computer Toolkit which is now called Windows SteadyState), Windows Vista, FreeBSD, CentOS, Fedora, Mandriva, OpenSuSE, Slackware and Ubuntu. That didn’t last long because I was actually using that computer and I didn’t want to make major changes to it when newer versions of the distributions came out.

This time around I’ve left out Windows Vista and FreeBSD. I don’t like Vista and it wastes 15GB of space which I’m going to use towards the home partition which is shared between all of the distributions. I decided against FreeBSD because while I do like the OS I feel that it doesn’t work well as a desktop. I’ll take a moment and side track into the reason why. I don’t like compiling from source! It is slow and it only gets worse when you have to recompile dependencies. I’m aware that they do release binary packages but you have to remove them before you can install the new version. Plus, there is no automated method (for binaries) and becomes to much of a hassle for me. I’m referring to Ports specifically since the core OS portion has freebsd-update, which works flawless. I would gladly use FreeBSD as a server without X though. I also wanted to try out Engarde for the first time. That is the only distribution that I couldn’t install since it requires to be the only OS on the disk and I got around installing it last. I should have the choice to install it regardless if there are other partitions on the disk.

Now getting back on track I’d like to point out I’m not going to go into much detail on how to multi boot. I will point out that Windows XP is a primary partition and all of the Linux partitions are on an extended partition. They all share the same swap partition and have a common home partition. Windows XP was installed first then Fedora, OpenSuSE, Ubuntu, Centos, Mandriva and finally Slackware. In this case there is no special order you have to do the installations provide you know how to reinstall grub in the MBR. Everything was going fine until I got to the installation of Ubuntu.

During the installation of Ubuntu the migration assistant ran like it always does. For some reason in this version they decided NOT to give the option to skip that step. So during the final overview screen I noticed it was trying to read the Fedora partition and import users. It displayed an error about something not existing. I noted it but was allowed to continue the installation. After all of the packages were installed during the final stages of the installation, the program just quit. There was no error message telling me that something had gone wrong. In fact I thought it completed since I wasn’t around when it happened. It was strange to me that it didn’t ask me if I wanted to reboot or continue using the live CD. I rebooted and noticed my boot menu didn’t get replaced with the one from Ubuntu. I rebooted with the CD in again and tried installing again and sure enough the same thing happened.

I started looking for others having the same problem and I found an open bug for this issue. I wondered if there was an updated image to be download or an update that I could run off of the live CD. I didn’t see anything. Next thing I tried checking was the command line options for ubiquity (Ubuntu’s installer). I was very surprised to find that there was and I tried installing again with “ubiquity –no-migration-assistant”. I noticed again that it still displayed the same error during the final confirmation screen before installation. I thought it must disable the actual import portion which is failing otherwise what would be the purpose of this command line switch? It appeared that it had made it farther than the last time but I was wrong. It failed again.

At first I thought the installer was a binary but I was surprised to learn that it was written in Python. The first thing I checked was to see if the “–no-migration-assistant” option was actually doing something. It was parsing that option and setting a variable but it must not be actually disabling it during installation. I was able to find out where it was calling the migration assistant. The migration assistant is partially a shell script and the other part is written in Python. I decided that I would just put “exit 0″ at the top of the shell scripts to prevent them from running. I had to copy the installer into the tmp directory first because it was on the CD and thus read-only. Since they used full paths to everything I had to replace them with the new location. Once I finished making the changes I tried again and this time the installation completed. There were no ugly error messages and it looked like the migration assistant didn’t run at all.

You can get the updated installer here with the migration assistant commented out. You will need that if you are installing Ubuntu on the same disk as Fedora, CentOS and probably RHEL. Just open a terminal in the live CD and run these commands.

cd /tmp
wget 'http://www.smert.net/scripts/ubiquity.tar.gz'
tar xvf ubiquity.tar.gz
./ubiquity.py

Update (May 13, 2008)

It seems that in 8.04 this issue is partially fixed. While the screen before the installation complains of errors when reading from the Fedora partition. The install completes successfully but /boot/grub/menu.lst is filled with tons of duplicate entries labeled CentOS. Even though they were all labeled the same they pointed to different kernels on each partition. Also, four of the partitions on the disk weren’t unmounted after installation (all mounted as /home).

Posted in Linux, Python.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.