Image of the glider from the Game of Life by John Conway
Skip to content

Server Migration From Ubuntu 8.04 To Debian 5.0

Last night, I spent a few hours migrating this production server from Ubuntu 8.04 "Hardy Heron" to Debian 5.0 "Lenny". Many have asked me online and in person why I would make the switch, especially being a heavy Ubuntu advocate. I hope I can explain that in a clear manner in this post. But first, let me make it crystal clear that I've in no way abandoned Ubuntu or its ideals. I am running Ubuntu in VirtualBox on my work laptop, Ubuntu on my personal laptop and Ubuntu on the home desktop. I am only running Debian as servers.

So, why migrate from Ubuntu to Debian on the server? Surely, Ubuntu isn't that bad of a server platform. You're correct. It isn't. In fact, it's been "good enough" for me since installing it, which actually has an interesting history. This server came from a repossession when I used to work for a major home furnishings company in Utah. It was a home HP desktop computer that was old enough, my employer wasn't interested in reselling it, so I asked if I could have it, and brought it home for $20.

This was back in 2005, so I put Ubuntu 5.04 on it as a desktop with XFCE as the window manager, as it's only a Pentium 700 with at the time 128MB of RAM and a 10GB HDD. I've since beefed up the RAM and disk space. It was updated from 5.04 to 5.10, and it was at this time, I realised that I could ditch my then running Windows Server 2003 for Linux. So, Ubuntu 5.10 became a server, hosting my blog and a couple other web sites. When Ubuntu 6.06 LTS was released, it was running full time as my production server, and I became convinced of the LTS releases, determined to keep this server on LTS versions only. Also, I realised that it was running headless, so there was no reason to have X11 installed any longer, so I went through the pain of removing every last package that I didn't need for a headless server. This was done for security as well as resource management.

It stayed on 6.06 LTS until 8.04 LTS released, at which point I upgraded the server yet again. So, from roughly May of 2005 to Feb 2009, it had been a desktop and a server spanning four upgrades. Not a big deal really. Upgrading servers and desktops is getting easier and easier these days, with less headaches being encountered. I would keep it on 8.04 LTS waiting for the next LTS release, and upgrade again if I hadn't decided to change operating systems to Debian.

During the path of an Ubuntu server, it's had some rough spots, as some of my friends can attest to, none of which were Ubuntu's fault at all, but the system administrator hacking it (me). For example, when I wanted to host my web site on it, I needed to know how to make that happen. I found a HOWTO on howtoforge for installing Apache, as well as ISPConfig, and a number of other packages that I realise now were not necessary. In fact, I ended up removing ISPConnfig a couple years later, as it was causing problems with logs, consuming a large amount of RAM, and just getting in the way. Then I wanted to run my own email server. Not knowing how to set an email server up, I fiddled with Exim, Sendmail, Postfix and others, failing at every pass, and further causing havoc on the filesystem and DPKG database. Eventually, I found the help I needed from a friend, and was able to get a Postfix server up and running as an external MTA. There were many other services I messed with from time to time, testing this out or the other, slowly filling the filesystem with pointless stuff. In a nutshell, what I'm trying to say, is the Ubuntu 8.04 install, while functional, was no longer pretty. It was hackish at best.

This prompted me to do a reinstall of Ubuntu 8.04 LTS. I wanted a fresh, clean install, restoring the needed data from backup (yes, I actually run backups). However, as I began thinking about it, I realised that I didn't trust the build quality of the LTS releases as much as I trusted the build quality of Debian stable releases. Thinking about it further, I was having a hard time convincing myself to run an Ubuntu server. The reason being the way packages are tested in the Debian repositories. Consider for example a package that's uploaded to the unstable repository. Before that package can reach the testing repository, it much meet certain criteria:

  • After the package has been in unstable for a given length of time, it can qualify for migration to testing. This depends on each package, and the urgency of the migration.
  • The package can only enter testing if no new release critical bugs exist. This means, that the package must have fewer release critical bugs than the current package in testing.
  • All dependencies needed for the package must be satisfiable in the current testing repository. If not, those packages must be brought in at the time the current package is, and they must meet the same criteria related to time in unstable and the number of release critical bugs.
  • The package migrating to testing must not break any other packages currently in testing.
  • It must be compiled for all release architectures it claims to support, and all architecture specific packages must be brought in as well, meeting the same criteria as mentioned.

The above criteria for packages entering the testing repository ensure that packages are reaching a bug-free state for the next stable release. The goal is to have the number of release critical bugs drop and drop and drop approaching zero. Of course, bugs are only brought about by an active community reporting them, then decided on whether or not the bug is critical enough to be labelled a release critical bug. After the packages in testing have reached sufficient maturity and have few enough bugs to qualify a release, the testing repository is brought to stable. The current stable becomes "old stable", and the current testing is reprepared for the next stable release. So, in theory, the stable distribution is STABLE. Rock sold stable. Anyone who's anyone in the Linux world knows that Debian stable is just about as stable as you can get for an operating system.

Another nice thing with Debian stable, is it releases when it's ready. The Debian community has taken some flack for this, with 2-3 years at times between releases. However, Debian stable is the operating system that is high production quality. While most end users tend to run testing or unstable on their desktops or laptops, many prefer stable for their production server.

Now, I ask the Ubuntu community, what are we doing to ensure the same build quality for the LTS releases? I would think that each 6 month release would hold the some criteria as Debian, namely that packages can't enter that release unless it has fewer RC bugs than current. This way, as we approach the LTS release, we're slowly but consistently stabilising the operating system. Unfortunately, this would mean that Ubuntu wouldn't be as bleeding edge as it is currently. Many packages would stay rather old, due to having less RC bugs than the current release. But then, the LTS releases would be much more stable.

Now, with that said, I personally have never had any problems with my LTS server, either Dapper 6.06 or Hardy 8.04. But do I want to risk it? Should I chance it? While nothing may ever happen that causes critical concern for me with an LTS release, I feel more comfortable putting my trust in Debian stable than I do Ubuntu LTS. However, I want to see Ubuntu LTS succeed in the server arena. I was ecstatic to find that Wikimedia moved all their servers, or are moving, to Ubuntu LTS. I've heard other success stories of migrations to Ubuntu LTS. I think this is good, and the larger the community gets, hopefully, the more bugs will be reported, the more patches will be submitted, and more work will be done upstream to Debian. There's no reason why Ubuntu can't learn from Debian, and vice versa, creating a solid symbiotic relationship.

So, in a nutshell, I've put my faith behind Debian stable for any production servers personally, and Ubuntu for any desktops and laptops that can afford a little wiggle room in relation to stability. This is my opinion with my hardware, and your mileage will probably vary. That's what makes our community as a whole so great. I want to see Debian succeed on the desktop, laptop and netbook arena, and I want to see Ubuntu succeed in the server / Big Iron arena, and I'll do what I can to make that happen. But for now, I am where I am.

Any questions or comments of course, please populate the comment form below.

{ 19 } Comments

  1. papapep | February 19, 2009 at 2:38 pm | Permalink

    It seems you are not alone in your thoughts, as I follow the same logic in which distro I use for servers (at home and at work), and which I use in desktops and laptops. Probably Ubuntu is not bad at servers, but first has to make me feel the same confidence as Debian does.

  2. Omari | February 19, 2009 at 3:46 pm | Permalink

    Kind of a side point, but...

    "...havoc on the filesystem and DPKG database..."

    I don't see how you messed up your dpkg database. As for filesystem havoc, try aptitude purge. You can also write up quick little scripts to check for orphaned files and kill those off if you want.

    I just avoid reinstalling operating systems if I can help it. Reinstall is a lot of trouble to get something "fresh and clean" that you could get just by using the purge tools in the package manager. Heck, avoiding reinstalls is a big reason I use Debian. But if it floats your boat, cool.

  3. Aaron | February 19, 2009 at 7:56 pm | Permalink

    To be honest, I don't know what happened. I do know that I spent several hours repairing the dpkg database.

    Also, I'm aware of aptitude purge. I've been using aptitude since I discovered it. Unfortunately, it's not perfect, and doesn't clean up everything. And while I could do a better job at maintaining my filesystem, fact is, I didn't. So, it was a mess.

  4. gnufs | February 19, 2009 at 5:40 pm | Permalink

    Debian also works fine as a desktop system (except for the nonfree bits in the default installation.)

    I recently got a Thinkpad X200s and gNewSense 2.1 (based on Ubuntu 8.04) didn't run very well due to the newer graphics support requirements. So, I gave Debian 5.0 a try (where I replaced Linux with Linux-libre and IceWeasel with IceCat) and I have to say I'm much happier than I've ever been on an Ubuntu-based setup. I started using GNU/Linux with Debian and now re-living how much fun it is again to play with a system with cleaner workflow and more stable applications.

  5. calc | February 20, 2009 at 7:25 pm | Permalink

    Yes, Ubuntu 8.10 is too old to run on a ThinkPad x200 (I just bought one)... but there will probably be at least 4 new Ubuntu releases before there will be a new Debian release, so many new pieces of hardware will work on Ubuntu better than Debian during that timeframe. In this case Debian was just lucky to have proper hardware support for the ThinkPad which Ubuntu didn't since it was released 4 months earlier.

  6. miksuh | February 21, 2009 at 12:00 pm | Permalink

    There will be LennyAndAHalf release like there was EtchAndAHalf. LennyAndAHalf will bring new hardware support to Lenny. Do also remember that Debian has repository which contains backported packages for the stable (Lenny) and oldstable

    Eg. Etch was released with kernel 2.6.18, EtchAndAHalf was released with kernel 2.6.24. There is also kernels 2.6.25 and 2,6.26 for the Etch in the repository.

    Same will happen with Lenny, there will be LennyAndAHalf release with will bring support for the new hardware and some other updates to Lenny. There will also be newer backported packages for the Lenny in the

    Debian Squeeze will most likely be released before end of 2010, so LennyAndAHalf and are more than enough to keep Lenny well uptodate.

    And who cares about latest most buggy software versions? Atleast i want to work with my computer, i don't want to waste my time on solving problems and fighting with broklen software. That's why I use Debian and not eg. ubuntu.

    I ahve been using Debian stable on desktop and on server since 1998 and I have been wery happy with it.

  7. gobo el oscuro | February 19, 2009 at 6:44 pm | Permalink

    The ubuntu-users are full of prejudices. open your eyes and ears: debian can be much better than ubuntu desktop.

  8. Aaron | February 19, 2009 at 7:57 pm | Permalink

    Except I've run Debian on desktops and laptops for years. Ubuntu has the upper hand in that area. They just do.

  9. miksuh | February 21, 2009 at 12:10 pm | Permalink

    Not really. Please give atleast one example?

    When Etch was released Debian was already almost as easy as ubuntu. And now when Lenny is release3d there really is not any difference anymore.

  10. miksuh | February 21, 2009 at 12:18 pm | Permalink

    And remember that if something is not installed by default, it does not mean it does not exist in Debian. Many Ubuntu users seem to whine that Debian does not have this and this helpful tool. I suggest that you use Synaptic or Add/Remore Applications tool in Lenny and search for the package. Sure there is still some tools which are in the Ubuntu, but not in the Debian. But most of the tools are in the Debian.

  11. Aaron | February 21, 2009 at 9:10 pm | Permalink

    Ubuntu and Debian are vastly different Linux operating systems. They aren't related much, other than using the APT and DPKG toolkits. Ubuntu's repositories become more and more different than Debian's. Many packages exist in Ubuntu that aren't in Debian, and vice versa. While I understand your point that some software is enabled in Ubuntu that you have to install manually in Debian, many Ubuntu software titles don't even exist in the Debian repositories.

  12. Aaron | February 21, 2009 at 9:08 pm | Permalink

    I'll give you three examples, how about that?

    1) When I started with Debian unstable in 2003, wireless didn't work on my laptop. It worked fine in SuSE and Mandrake, but Debian was a no go. Even now, 6 years later, Debian still refuses to work with my wireless card. Reason? My hardware requires non-free firmware that Debian doesn't ship. Ubuntu on the other hand, worked with my wireless card since the release of 5.04, and still works.

    2) I still don't know what plagues me here, but Debian wants to choose a massive dots per square inch on my laptop. So, when I set my resolution to native 1680x1050, it feels like 1280x800. Ubuntu has nailed it every time.

    3) Debian still doesn't have a graphical boot. If Debian wishes to compete on the desktop market, they need a graphical boot. Watching text roll by on the screen is reminiscent of the 1980s. It's just silly at this point. While I'm aware packages exist to create one, it should be default.

    Ubuntu is just a polished Debian on the desktop. The Ubuntu crew has taken great care to polish the operating system, and make desktop and laptop users want to use it. They've created value that no other distribution has been able to do.

  13. pansz | February 19, 2009 at 7:26 pm | Permalink

    I'm more interested in "How" rather than "Why".

    Re-installing the OS of a production server takes huge effort and I doubt how you achieve it the simplest way.

    I'm running several 8.04LTS servers and do want to upgrade them to debian stable, but before that, I'd ask, if it is possible to upgrade the existing 8.04lts system to debian stable simply by changing /etc/apt/sources.list ?

    Or is there any migration tools for that?

  14. Aaron | February 19, 2009 at 8:00 pm | Permalink

    I’d ask, if it is possible to upgrade the existing 8.04lts system to debian stable simply by changing /etc/apt/sources.list ?

    Most definitely not. The Debian repositories are not compatible with the Ubuntu packages, and vice versa. You would hose your system horribly if you did that.

    No, if you want to switch to a new operating system, you have to do a fresh install. Also, it's not that big of an undertaking. If you already have your configs in place, then installing the packages, restoring the configs and then restoring the data might be time consuming, but trivial. I was able to do my reinstall with DNS, DHCP, SMTP, Jabber, HTTP, SSH and others in under 3 hours.

  15. Gerard Braad | February 22, 2009 at 4:04 pm | Permalink

    Although Ubuntu is based on Debian, it is not compatible with the packages. This is also what most people say about Fedora and derivatives (like RHEL and CentOS). It is not completely true... As you can see in this post: a live migration is possible from Fedora Core to CentOS, but it is not advisable ;-).

  16. Aaron | February 25, 2009 at 10:59 am | Permalink


  17. foo | February 25, 2009 at 11:01 am | Permalink

    testing reply

  18. piju | June 28, 2009 at 9:28 pm | Permalink

    ok fine,
    ubuntu for desktops/laptops and debian for servers
    dont think like other peoples think. think in our way of thinking.

  19. Dean | March 13, 2011 at 1:55 pm | Permalink

    Debian seems more stable than Ubuntu and seems to have longer support, but the issue I'm having currently is that I can't make KVM work properly in Debian 6, while it works in Ubuntu and even Linux MInt (which is better than Ubuntu, by the way, more polished, better built, using same sources). So that makes me wondering, why in Debian we have a bug, while ubuntu just works out of th box.
    Maybe you wonder why I wanna use KVM with GUI, wellc ause is faster and becuase we all like interfaced, son't we ?! for a host OS, I guess there's not a big deal but ..debian just doesn't work for some reason as it should righjt now. They should fix these bugs before release as this is a Debian 5 bug, in 6.

{ 1 } Trackback

  1. [...] me online and in person why I would make the switch, especially being a heavy Ubuntu advocate. More here So, in a nutshell, I’ve put my faith behind Debian stable for any production servers personally, [...]

Post a Comment

Your email is never published nor shared.