Surprise, surprise! Today we have a topic very different from what I guessed it to be. I’m going to write about the process of updating an old Linux system (which is in fact rather challenging due to the fact that so many things changed in the time that has passed).
Updating an old Linux system can be quite adventurous (seriously!). If you’ve never done it there’s quite a bit you can learn from the process. This post is in fact more or less just an introduction. It describes installing the system (ConnochaetOS) and making some preparations.
This would probably have remained a little personal experiment but I wanted to dedicate this post to the memory of ConnochaetOS – an Arch-based GNU/Linux-libre distro with eglibc which was made with older PCs (i586) in mind. It has been a great distro but has been inactive for a long time. A few month ago the maintainer finally decided to shut down the project. While this didn’t really come unexpected, it still is a pity.
Well, there’s one very important sentence in Haary’s post: Of course everyone is welcome to overtake and to fork.
The ConnochaetOS logo
So far it doesn’t look like somebody will do this, though. I would consider to take it over – but then again I don’t feel that I have the knowledge needed for such a project just yet. Also there’s EERIE/ELDER to work on and while it’s going in a somewhat similar direction there are of course quite a few differences in design. Still I’d like to show how a system like ConnOS can be (partly) updated to become a more modern Linux system.
Installing the system
Currently all the files from the project are still accessible but will be removed at the end of the year. You can download the ISO directly from SF.
ConnochaetOS comes with a very simple but friendly installer. It lets you choose how to install and then simply does the rest of the show.
Unlike Arch, ConnOS never was a rolling-release distro. For that reason the system packages are not downloaded from the net but installed from cd. This is actually a good thing since it enables you to install the system on old machines without access to the internet, too.
Once the installer is done, just reboot and you should be able to log into your “new” ConnOS system!
Starting and updating
ConnochaetOS is a desktop distribution so you will be greeted by a graphical display manager. After the login ConnOS provides us with a simple, light-weight wm (iceWM) which is quite nice.
First it’s of course a good idea to install any updates available from the distro’s repositories. Since there’s no sudo installed we have to do this the old-fashioned way and use su to become root. Now we have the chance to start updating.
There are not too many updates available (and these are pretty old, too, but installing them surely doesn’t hurt).
While ConnOS 0.9.1 comes with a 2.6.32 (lts) kernel it also has a 3.2 (“current”) kernel available. Of course we’re going to uninstall the 2.6 one and replace it with the 3.2 kernel!
Following the kernel update we’re left with a broken system for the moment. This means that rebooting now would be a bad idea. For that reason we’re going to edit /boot/grub/menu.lst and point the boot manager to the new kernel image.
This is as far as we can update the system with already existing binary packages. We’ll have to do the rest by hand! To be able to do so we first need to install the development tools.
One of the big things that happened after ConnOS fell dormant was a change of the filesystem layout in Arch. Since all current package recipes are expecting the system to follow the new way, we’re converting our system to the new standard.
As this involves moving important system executables it cannot be done while the system is running. We’ll have to use an external live system to be able to manipulate our ConnOS installation according to what we’re up to. Unfortunately I have not been able to get this done with ConnOS’s own installation image. But pretty much any live distro should do the trick.
I’ve booted into an Arch install system. Doing the changes is actually pretty simple:
- we need to mount the system partition
- we move all the files from lib to usr/lib
- we move all the files from bin and sbin to usr/bin
- we remove the directories lib, bin and sbin
- we create new symlinks instead which point to the new locations
- we modify GRUB’s menu.lst again, appending init=/usr/bin/init to the kernel line
So far for our preparations. Now at this point we have a ConnOS system which is ready to receive some manual updating!
Part two of the updating example will deal with building packages to update a few important system components and building an up-to-date toolchain (for compiling even more updated packages ;)).