When I started at F5 Networks, I fully expected that I would be plunked down in front of a Windows 2000 ™ workstation, relatively unsuited to my regular tasks as a (primarily) UNIX developer/Linux user, as I have been at practically every other job I’ve held. The general “excuse” given for this seemingly incongruous arrangement is sometimes the need for corporate standards, but more likely that the entire company runs Outlook/Exchange and uses Word and Excel in a way that would shatter in OpenOffice. Which, for many corporate environments, is actually true.
Of course, in those workplaces, I’ve never really toiled with just plain ol’ Windows, pristine as the day the gold master was burned in Redmond. No, a geek’s gotta have his toys, and a UNIX geek even more so. Of course, any Windows system I’ve run immediately gets Cygwin, LiteStep, XEmacs, Miranda, and pstools. By the time I get down to work, it’s at least as useful as most Linux systems.
So, imagine my surprise when, on the very first day of work, I saw that my workstation was already installed with Fedora Core 3. We had discussed that I use Gentoo Linux on my home system during the interview process and they thought that I’d be thrilled to work on a Linux system (which about half the company does). And I was.
Now, a couple of friends had been pressuring me to try out Fedora for a couple of years. It’s much better than Red Hat ever was, they claimed, much easier and much more frequently updated. While some Linux enthusiasts change distributions like changing their socks (actually, probably more often) and love to get into distro wars (“Man, I can’t beleive it took me only 3 hours to install Slackware!”) — I’m really not in that camp. I’ve only run Red Hat and Gentoo, and used Knoppix as a rescue/interim system. My goal is to get 1 system configured and tweaked exactly the way I want, not to flit between different versions of someone else’s Good Idea of a Starting Point. Also, the whole reason that I abandoned Red Hat at home was RPM Hell, and as far as I knew, the situation had not changed all that much when Red Hat became Fedora.
In short, this was the perfect opportunity to give Fedora/Red Hat another chance without messing around with my home machine. I quickly discovered various sites describing how to tweak my yum settings in order to install the packages that Red Hat couldn’t bear to be involved with, such as the Flash plugin and the MP3 plugin for XMMS (do they really still think that Fraunhofer is going come after them?!). But some packages weren’t listed in my yum-connected databases, and I found that some binary packages claiming to be compiled for FC3 (don’t ask me which) refused to install due to — you guessed it — failed dependencies. It didn’t really matter — some of the packages that did install, like mplayer, were tuned for IPv6.
The final straw came when I tried to upgrade to KDE 3.4 and none of the methods worked — not the KDE install script, not the packages, not up2date. I had never had these problems with my Gentoo system at home. In fact, after the initial installation, installing packages on Gentoo is easier than on Red Hat/Fedora.
So I set out to install Gentoo on my workstation. Being a cautious sysadmin (for a programmer), I always try to leave myself with a working system at all times. Upgrades may take longer, with all the scaffolding and detours to build, but they’re worth it. Besides, you can always rollback to the existing system if worse comes to worst. The first step is re-partitioning the hard drive to make room for the new / root directory. To my shock, I found the entire hard drive had been consumed in a single partition. Not only that, the Fedora crew had decided that, by default, installation should be done in a single LVM2 partition.
I am absolutely shocked at such a phenomenal degree of hubris. Setting aside for the moment the relative benefits or detriments of LVM, the only way to resize this bloated partition is to boot off of some sort rescue disk or LiveCD, but only one that understands LVM. No Knoppix, no Tom’s RootBoot. I finally found Insert and booted off the CD.
Now we come to the point of arrogance run amuck. LVM logical volumes have filesystems sitting on top of them, such as ext2 or ext3. e2fsprogs provide all tools for the regular care and feeding of ext2 filesystems, including resize2fs. When I tried to resize Fedora’s filesystem, I was stunned to get the following message:
fsck.ext3: Filesystem has unsupported feature(s)
e2fsck: Get a newer version of e2fsck!
I mounted the filesystem and quickly checked — yes, both FC3′s version of resize2fs and Insert’s were version 1.35. It took some searching until I found that FC3 has a incompatible patched version of e2fsprogs 1.35, which introduced some nasty bugs itself. Despite the fact that this version claimed to be 1.35, it had produced a filesystem that could not be adjusted (or even checked!) by other e2fsprogs.
Keeping my wits about me, I managed to find a way out of the mess. The /boot partition was still a normal ext2 partition, so it was simply a matter of copying Fedora’s version of resize2fs there. That done, I unmounted the soon-to-be-former root partition and shrunk it down to a reasonable size. While I was at it, I created another LVM volume for /home and moved that over, too.
The only remaining challange at this point was installing Gentoo on a LVM-based system. With the excellent documentation and forums that
I’ve come to expect from the Gentoo community, I was still pleasantly suprised to see that Gentoo has an official guide for Gentoo LVM-based systems, in which they clearly warn that basing your root partition on LVM is a Bad Idea. Nonetheless, since I was already stuck with a huge LVM installation, I found clear, comprehensive instructions on installing Gentoo with root inside LVM.
This really sums up the distinction between the two distributions and their communities. Fedora seems to be inclining more and more towards a Cathedral, where the maintainers know What’s Best for You and select default installations and packages that will only lock you into their worldview. Gentoo, on the other hand, is built around letting the user choose themselves, even when it’s something they recommend against.
Which world would you rather live in? I thought so.