Upgrading from Fedora 11 to 12: A preupgrade-cli problem

With the release of Fedora 12, I’ve started playing with the upgrade process from Fedora 11 to Fedora 12. I’m not a big fan of having to do clean installs as it also means a lot of migration work in terms of configuration files, etc. All of which takes a lot of time and effort. And, since I have a daytime job that is more about marketing Linux than using it, my time is fairly limited.

The first problem I ran into was that the /boot partition I had created at 150 MB was too small. Unfortunately, the preupgrade-cli tool failed to inform me of this until the anaconda installer started, and failed with “a not enough space” error message.

The only way to address that problem I could find was to resize the boot partition. Of course, like most “idiots”, my boot partition is the first partition on the drive, so resizing it isn’t exactly simple. Fortunately, completely by accident, I’ve got my swap partition as my 2nd partition and my / (root) partition as my 3rd partition. As a result, I could reduce the size of my swap partition and grow the /boot partition, thus alleviating the problem. However, considering how the size requirement has grown from Fedora 11 to Fedora 12 (Fedora 12 requires no less than a 300MB /boot partition – for now)

Suggestion:
When installing a Linux distribution and you’d like to use the upgrade process, it’s probably not a good idea to have a separate /boot partition.

Why do I suggest this? Simply because it seems like the “minimum required /boot partition size” for each incarnation of Fedora is growing rather significantly. Having a sizable – multi-gigabyte – root partition to boot from (and use) seems to be a bit more flexible.

Then I rebooted the system and ran:

# preupgrade-cli --clean.

The point being to restore the system to it’s pre preupgrade-cli state. Or, at least, that was the theory…

This is what happened afterwards:

# preupgrade-cli --vnc=<password> --ip=X.X.X.X --netmask=255.255.255.0
--gateway=X.X.X.X --dns=X.X.X.X "Fedora 12 (Constantine)"

/usr/lib/python2.6/site-packages/yum/__init__.py:203: UserWarning: Use .preconf instead of
passing args to _getConfig
warnings.warn('Use .preconf instead of passing args to _getConfig')
Loaded plugins: blacklist, refresh-packagekit, whiteout
Loaded plugins: refresh-packagekit

Enabling VNC mode for the upgrade.

preupgrade-main (mirrorlist)
url: http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-12&arch=$basearch
now: http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-12&arch=i386

preupgrade (mirrorlist)
url: http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/12/Fedora/$basearch/os
now: http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/releases/12/Fedora/i386/os

preupgrade-fedora (mirrorlist)
url: https://mirrors.fedoraproject.org/metalink?repo=fedora-12&arch=i386
now: https://mirrors.fedoraproject.org/metalink?repo=fedora-12&arch=i386

preupgrade-rpmfusion-free (mirrorlist)
url: http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-12&arch=i386
now: http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-12&arch=i386

preupgrade-rpmfusion-free-updates (mirrorlist)
url: http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-updates-released-12&arch=i386
now: http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-updates-released-12&arch=i386

preupgrade-rpmfusion-nonfree (mirrorlist)
url: http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-12&arch=i386
now: http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-12&arch=i386

preupgrade-rpmfusion-nonfree-updates (mirrorlist)
url: http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-12&arch=i386
now: http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-12&arch=i386

preupgrade-updates (mirrorlist)
url: https://mirrors.fedoraproject.org/metalink?repo=updates-released-f12&arch=i386
now: https://mirrors.fedoraproject.org/metalink?repo=updates-released-f12&arch=i386

Not using downloaded repomd.xml because it is older than what we have:
Current   : Mon Nov 16 01:35:45 2009
Downloaded: Fri Nov 13 21:54:23 2009

Traceback (most recent call last):
File "/usr/share/preupgrade/preupgrade-cli.py", line 305, in <module>
pu.main(myrelease)
File "/usr/share/preupgrade/preupgrade-cli.py", line 175, in main
self.setup(myrelease)
File "/usr/lib/python2.6/site-packages/preupgrade/__init__.py", line 130, in setup
self.complete_repo_setup()
File "/usr/lib/python2.6/site-packages/preupgrade/__init__.py", line 328, in complete_repo_setup
repo._grabfunc.opts.user_agent = __user_agent__
AttributeError: 'NoneType' object has no attribute 'opts'

Turns out, the key to this stack trace is the following message:

Not using downloaded repomd.xml because it is older than what we have:
Current   : Mon Nov 16 01:35:45 2009
Downloaded: Fri Nov 13 21:54:23 2009

Basically, the easiest way to fix this is to remove the cached data for the preupgrade related repositories:

# rm -rf /var/cache/yum/preupgrade*
# rm -rf /var/cache/yum/anaconda*

And now preupgrade-cli ran to completion.

There are no comments yet. Be the first and leave a response!

Leave a Reply

Wanting to leave an <em>phasis on your comment?

Trackback URL http://linux.sjolshagen.net/2009/11/18/upgrading-from-fedora-11-to-12-a-preupgrade-cli-problem/trackback/