Saturday, May 9, 2009

Linux (in this case Fedora) is still not what I would call "user friendly"

OK, so it happened, I knew it would. The PSU in my main desktop Linux box broke down (it has been noisy and unreliable lately). It was completely dead. I subsequently went out to get a new one, and once home, started the process of removing the old PSU from the case, which was an Antec Sonata II. This is not a bad case, but I was surprised that the PSU had broken down, as this was not a low-end PSU (it was an acclaimed Hiper PSU. Next time I'll go cheap again).

Now, getting the old Hiper out of the Sonata was turned more difficult than I expected, as the CPU cooler was in teh way of getting the PSU out. I tried any trick I could think of, but in the end, I had to remove the CPU cooler. That finished, I could now replace the PSU with the new (and cheap 500W noname). That done, I now had to replace the CPU cooler. Without looking (big mistake) I just placed the CPU cooler on the CPU and fastened it (with screws, this was an AMD 754 socket CPU).

Booting time. Nothing happened, indications of CPU problems, and nothing comes up on the screen. "Maybe something went amiss when I mounted the CPU cooler" I think. So I remove the CPU cooler, and now I see what I had missed last time: The CPU is fixed to the CPU cooler with thermal grease, and when I remounted the CPU cooler last, I just pushed the whole thing, CPU and all, onto the socket. Needless to say, CPU pins were bent and it was a mess. I tried to fix it, but gave up.

So, here is the fun part then. This was an old mobo and CPU anyway, so I decided for a major upgrade. I went out and got myself a new Asus mobo and a Quad-core AMD Phenom and 4 new fresh gigs of RAM. Oh, how sweet it is!

So, I came home, changed the Mobo and all that, and remounted the disks and what have you. This was a DeLuxe Mobo with all bells and whistles. Once HW is up again, I try booting. This puppy is running Fedora 6 right now (I know that is a bit old, but it has worked so far).

When booting Linux now, grub gives me errors on missing partitions (LogVol etc. yes, I am using LVM), a missing target to copy to etc. Yes, I sort-of understand what is happening, the LVM is dead, and as I have LVM on my boot partition, booting fails. But why?

Linux, in the shape of Grub, gives me all sorts of errors, that would make many users scared stiff ("kernel panic" for example). I am sort of used to this though, and although not being a Linux guru, I can usually figure things out, given time.

In this case, Grub had all sorts of problems with disk partitions, LVM, "/dev no such file" etc. I started Googling on one of my other machines. At first I found nothing. But then I added "motherboard" to my search. Frankly, although it was the Mobo that was changed, I wasn't expecting this to be the issue, and Grub said nothing of the kind, rather Grub had problems with disks and LVM and stuff.

But actually, this WAS the problem. This is how it works: When you install Fedora (I don't know if other Linux distros do this, but if they do, this is stupid) it collects a list of drivers needed to boot the system and makes those drivers, and only those, available at boot-time. Someone it trying to be economical here or something. In this case, the SATA device was different, as I had a new mobo. Once I had booted into rescue mode, fixed up grub.conf and rebooted, things were OK. What annoys me here though are three things:
  1. Why can't Grub give me an error message on a missing driver for booting? Hey, it KNOW this is needed, right. So why can't it tell me that, instead of letting the boot process spew out numerous weirdo messages, that has very little do do with the real problem? The reason is started booting at all I guess is because it handles the MBR as IDE.
  2. Why doesn't Fedora (or any other Linux distro, I don't know), add a few more than just the basic SATA driver. In this case, the new Mobo used AHCI, which is used all over the place these days. The old one had a VIA SATA-I interface.
  3. Now, why can't Grub be smart enough to allow itself to test for drivers, and allow me to modify it? Just give me a warning at boot time if a required driver is missing, and allow me to load another one? Or even allow me to ask Grub to test another one? As for myself, I do not mind booting in rescue mode and editing a file with vi and then issue a bunch of weirdo commands, but I don't think the general population would buy into this.
All this said, I don't hate Linux. Fact is, I don't even dislike it. But I don't dislike or "hate" Windows or OS/X or Solaris either. (Frankly, my list of things I hate contains much more despicable things that stuff that deals with computers at all). But I have done many hardware upgrades of many kinds on my Windows boxes over the years, and nearly always it has worked out OK (when it hasn't, it was usually the driver in question being bad, and not the way Windows handles it).

Linux is cool, and my box is running fine now, faster than ever. But this took a fair while to figure out. For a while, I contemplated upgrading to Fedora 10, so I downloaded a Fedora 10 live CD. I booted into this, and tried to make up upgrade my Fedora 6 installation. It refused to do do. It didn't like my partitions, and it insisted on having to reformat my partitions if I installed on them, despite these being perfectly normal ext3 on LVM2. I could mount the partitions, in the usual manner from the commandline, but the installer didn't like it. I don't know why.

And it might be Fedora that is the problem here. I wouldn't be surprised, actually. The reason I have Fedora on this box is that I try to have a few different Linuxes running, and I already have SuSE, Debian, Gentoo and Ubuntu installed on other machines.

Packing up the screwdrivers, soldering irons, wrenches and other HW stuff to get back to proper software engineering again


mjc said...

All kernel drivers are built into the initrd and loaded at boot time.

On the other hand, grub's specific setup numbers your drives based on the order they are seen by the BIOS (hd0) (hd1), etc. if this order is different in your new board, then you have to update it. The only way as far as I can tell that you could fix this is by using GUID labels for your partitions. afaik, newer distros do this. I wouldn't be surprised if FC6 didn't have that or if yours was set up differently.

You can always set up your grub boot line dynamically at boot time by hitting E.

Karlsson said...

As I said, I fid´xed it, and it was not a very big deal to fix it for me. What I am saying that in moist cases when I did this kind of thing with Windows, no fixing was needed. And in the cases fixing WAS needed, I was told so.
Also in this case, the problem wasn't wioth the order of the drives. The problem was that Grub wasn't loading the AHCI driver at all, only the VIA SATA driver. Once I had fixed that, having found this post: I was OK.

pepello said...

You said 'still not usable' but you are using *still* Fedora 6, released three years ago.

As mjc said, newer distros always use GUID for identifying parts, there's no more that problem.

Karlsson said...

Yepp, I agree on that. I just didn't want the latest and greatest, I was after something stable. I'm about to try to upgrade to FC10.