In this installment we are going to cover the planning phase of the upgrade process. Good planning is often the difference between a good upgrade experience experience and a bad one. As a computing environment becomes more complex, planning becomes more essential. My environment is fairly complex so I have to plan.
The first element to any good plan (and not just for OS upgrades) is a clear objective. That is, in the broadest terms, what do we hope to accomplish? In my case, I want to install Ubuntu 10.04 on two computers (my main desktop system and my laptop) currently running Ubuntu 8.04 while maintaining all of the application set (and capabilities), network integration, and user data.
Notice that I said install and not upgrade. I have learned through many years of experience that upgrades don't really work. They kind of work sometimes, but they never really work. Often, an OS upgrade is not able to apply every new feature in the new version. For example, converting an existing file system to a new file system type is often impossible. Also, I don't want to reuse my existing configuration and settings files. I want to reconfigure based on the new default configuration, again to take advantage of everything the new release has to offer.
I know (from scanning the forums) that a lot of people are content to just pop in an installation CD and push the upgrade button and hope for the best. Then those same people start crying because they get a black screen when they reboot, or their wireless stops working, or their sound is busted, etc., etc., etc.
Since our objective states that we have to maintain the application set, network integration and user data, we better figure out what that is. We do that by performing an inventory of our existing system Here are some things to keep an eye on:
- Required Applications. When performing your system survey, go through the application menus and list everything you rely on. In an upcoming installment we will write a script that will prepare a package list to compare against the new installation to ensure that we reinstall all the apps that we care about. If you use Firefox, pay special attention to bookmarks, stored passwords, and add-ons.
- Network Services. My workstations mount file systems on NFSv4 and Samba shares. I also use an LDAP database to manage my address book.
- Hardware Features. We will want to make sure that all of our hardware is working. During the testing phase we will cover video, sound, wired and wireless networking, CD/DVD reading and writing, printing, scanners/cameras, and USB devices
This is also a good time to do some system maintenance. Between cleanings, computers get a lot of application and data buildup. I have added many applications to my base system, some of which I use and others which I don't. It's good to make a list and decide what you really want on your "new" computer and what you can live without. The same goes for data. Do you really need all those video files? See if you can clear a few gigabytes off that disk. It will make things easier later.
We're going to get involved with Ubuntu 10.04 starting with the Beta 1 release scheduled for release on March 18. I have a test computer prepared where I will attempt to build approximations of the finished systems. In doing so, I will be able to see what, if anything, blocks my desired configuration. It also provides a chance to look at the new features in this release, as well as alternate applications. We will also use live CDs to test the hardware support on the real systems.
Once the final release of Ubuntu 10.04 occurs on or about April 29, we should be ready to install. We'll make our installation media, create and verify our final system backup, perform the installation, and restore any additional applications.
The final phase of the project is adjusting the configuration of the new system to our liking. This will involve recreating accounts and application settings. We will also restore the user data from our backups.
After everything is restored and configured we will verify that everything is in order. The very last step is to re-enable the system backups and begin using the systems for production use.
Other installments in this series: 1 2 3 4 4a 5