OK, maybe that title is dramatic. It did ruin the last two work weeks for me, though. Over Memorial Day weekend, I upgraded my work laptop from Kubuntu Hardy Heron to Jaunty Jackalope. That was a maneuver I instantly regretted when I got to work on Tuesday and my second monitor would not work no matter what I tried. As it turned out, this Kubuntu release had some known really bad problems for those poor souls (like me) that have the Intel video cards. My 3 year old Dell Inspiron 9400 has the Intel 945 GM. From Dapper Drake through Hardy Heron, this laptop has been a champ and even being 3 years old I like it just as much as the day I got it and have no particular desire to get a new one. With Jaunty though it sucked so bad it made me wish I had Windows on there.
As the weeks went by, the depth of problems grew worse. The response of everything was sluggish, from changing virtual desktops to changing windows. When Kopete popped up notifications of incoming IMs, they would never go away. Basically, everything about my job got harder and the productivity hit is measurable in my bug fixing velocity. Last Friday was the worst yet and I got so frustrated that given half a chance I’d have thrown this laptop out the window. I made the executive decision that no matter what, I was taking it home for the weekend and I was not bringing Jaunty back to work.
I downgraded to Kubuntu Intrepid, it didn’t appear to be that much better than Jaunty on my video card and I immediately rolled back to Hardy, the version that was on there 2 weeks ago. However, I couldn’t find my install CD so I just downloaded it again and burned a new CD. Because of a misclick, I realized 30 seconds after starting the installer that I had downloaded mainline Hardy, not the Kubuntu version. At this point I said “Screw it, let it ride.” I got up this morning, ran the package update to get the few hundred packages with updates since the ISO version and went to work. I moved my backed up home directory back to /home and logged out and in, and voila! All of my gnome preferences from a year ago when I left Gnome came right back. At this point I’m back in business and delighted to be able to span my external monitor.
Now, here’s the lesson I learned from the whole painful ordeal and how I’m going to go forward with it. This is a mission critical box for me, in that when it has problems the way I make my living has problems. I don’t want downtime on it and I don’t want to spend my weekdays putzing with it. I need rollbacks to be very quick operations. I supposed I could ghost and image and do things like that, but I thought of another way that I’m going to use.
This has an 80 G hard drive, which is plenty for what I use it for. Since most of my work involves logging into remote servers this laptop is really a fancy thin client. The next time I upgrade, I’m going to wipe the drive and repartion with this kind of scheme:
Partition | Size in GB | Mountpoint |
---|---|---|
#1 | 18 | /home |
#2 | 2 | /boot |
#3 | 20 | / |
#4 | 20 | /last_os_version |
#5 | 20 | /second_to_last_os_version |
Now, suppose I had Hardy on Partition #3 and Gutsy on #4 and Feisty on #5 before my recent upgrade. I would have installed Jaunty on Partition #5 and changed all the mount points accordingly. Then, when the upgrade went poorly I would have downgraded by changing all the mount points back to what I have listed above, changed the default kernel to the matching one and gone back on my merry way. I never have to worry about /home or /boot because they are on their own partitions. If my thought experiments hold true, then rolling back in the worst case is an easy couple minute process, not the multi-day ordeal I went through just now. Cool, no?
Dave:
You can accomplish exactly what you propose; Andrew in the FF comments mentions how to do it. You basically install your various Ubuntu fauna versions into individual disk partitions. If Ubuntu uses GRUB as a bootloader, it then becomes easy to tweak up /boot/grub/grub.conf to boot from a menu into whichever Ubuntu flavor you wish. Then, you can upgrade/downgrade simply by rebooting, and choosing an alternate OS.
One other observation; if Ubuntu is in any way Fedora-like, the /boot partition can be drastically reduced, say to 100-200MB or so. The only thing that’s there is various initrd and vmlinuz files for the kernels you have installed, along with grub.conf, and some smallish other files.
I’d also suggest rounding up a master list of items that should go into /etc for all the partitions, stuff like networking settings and such. Those items are needed to make a system, well, a system.
I’m also having a facepalm moment for not doing this with my Fedora systems. Ahh, a weekend project. Bleeding edge, back to stability when needed.
-k-
The low level tweak I mentioned is using UUID for the partition mounting – you can even use it via kernel parameters. The root partition of my MythBuntu box has moved from sda1 all the way to sde1 since I installed it, and the kernel still boots perfectly thanks to UUID references instead of /dev/xxx.
Using UUID makes moving partitions around seamless 🙂
I’m chugging along on Hardy Heron, and occasionally fantasize about updating, but then stories like this snap me back. No thanks, I’ll stick with the LTS releases, which unfortunately means waiting nearly another year, but time is money, you know?
I’ve had /home and /boot in separate partitions since Day 1 with Linux. Three separate partitions for the OS seems like overkill — shouldn’t two be plenty? I dunno, I just wipe clean and reinstall the OS with every LTS release and keep the /home partition chugging along.
No disrespect to Ken Nelson, but DO NOT UNDERSIZE /BOOT like he said. Maybe Ubuntu has fixed this, but a while back I found that Ubuntu happily downloaded and prepped updates without warning you about partitions filling up. Kernel updates pile up in there, and Very Bad Things happen when you do a routine security update and fill up the boot partition. Give it a gig or two like you said.
I stick with GNOME, since that’s basically the native environment of Ubuntu. I’ll admit to not knowing a damn thing about KDE or even caring all that much, and I can understand that once you’re used to one it’s tough being with the other. But from what I understand, KDE and Ubuntu seem to be slightly repellent of each other.
Ken, I specifically don’t want to have /etc as a separate partition. In the Kubuntu, for example, when KDE 4 came in the format of the config file changed. I want the /etc files to match the rest of the OS. Worst case if I need something from another one, I mount it and can copy it over.
Andrew, that’s a good tip. I’m not using UUID and I really should. Thanks!
Chris, this laptop has an 80 GB hard drive and after 3 years I’m using about 30 total. I don’t need to preserve space here, and if anything I might go the other way. If I had 4 OS versions, then I’d always have one LTS release in there. The management cost between having 2, 3 and 4 is almost nil. You install one new OS in one partition, and change the boot parameters. There is probably a one minute difference in time, and the space is inconsequential to me. KDE is slicker and the apps are generally better but after going back to Gnome a week ago, I feel happier and more productive. I think I’ll stay with Gnome for the duration.
Chris: I should have highlighted more strongly that I use Fedora and RHEL. Both of those are perfectly happy with miniscule /boot partitions. Ubuntu’s requirements may very well be different; in any event, 2GB is not nearly as much as it was in days of yore. And I remember days of yore.
Dave: Perhaps I was vague; /etc should definitely *not* be on its own partition. Some files from /etc are portable across OS versions, however; for example; /etc/wpa_supplicant/wpa_supplicant.conf. That, at least on Fedora’s older releases, contained the WPA key for my home wireless network; this is definitely portable across OS version boundaries(at least the value of the key), and should be archived off and copied to various OS installs wherever needed. It was items such as that that I was suggesting be squirreled away, not the entire partition. Oh, and welcome back to the Land of Gnome! I don’t intend to strike up desktop/Linux Distro holy wars, but I welcome you to the Gnome brotherhood.
Andrew: the uuid is magic indeed. Device persistence is a Good Thing. I use Fedora, and I really need a scheme to go from bleeding edge to stable with minimal hand-wringing on my home systems. Thanks for the nudge!
-k-
I switched my circa 2004 Dell laptop to Jaunty Jackalope in May after a series of misadventures that didn’t have much to do with Ubuntu per se. And since I only use that laptop for surfing and productivity, I much prefer my new OS to the Windows XP that used to run it.
But the experience of acquiring and running Ubuntu, coupled with horror stories like this one, is convincing me that the Open Source movement REALLY needs to recruit a community of users who are NOT in the top 2 percent of computer-savviness. If we’re REALLY serious about spreading Ubuntu and other Open Source tools (and I think we should be), then we need to make the experience MUCH more intuitive. Hence the non-savvy community I’m talking about: Ubuntu needs these people to help create a better / easier user experience.
Right now, you read ANYTHING to do with Ubuntu / Kubuntu / Mint and it’s ALL written by Linux geeks for Linux geeks. It’s a great product, but it’s y’all’s private playground. Which is fine if that’s what the community wants, but the community always seems to be TALKING about serving the larger world by spreading the technology and giving people better tools.
You can do this — but you’ve got to start by addressing the user experience for a general audience. There are trade-offs — you’ll lose some OS efficiency by replacing command line control with GUI options and wizards — but here’s what you’ll get in return: The larger your user base, the more support you’ll get for open source drivers for video cards, etc., etc. Right now it’s a geek ghetto. Bring in another 20 million users and you’re a force.