Saturday, January 28, 2006

Microsoft's Incompetence

I think it may be time to move to Linux.

Two weeks ago, I turned on my Windows 2000 computer and was greeted by a blue screen saying the "registry could not load the hive (file)". The usual startup modes like Safe Mode and Last Known Good gave the same error, and I was locked out of Windows.

40 hours' work and a new motherboard later, I cannot emphasize enough how moronic Microsoft is. Windows has amazingly little tolerance for failure or hardware changes.

There were at least three showstopping problems I encountered. Firstly, I had a perfectly good Windows 2000 installation on a broken computer; I tried to boot from this hard disk, but got INACCESSIBLE_BOOT_DEVICE error early in the startup process. Some research revealed that Windows keeps only a single hard disk driver installed. Because of this, if you change to a different kind of motherboard, or move a hard drive from one computer to another, Windows 2000 will be unable to access the hard drive from which it was booted. Of course, it would have been extremely easy for the Windows development team to avoid this problem, by loading a generic IDE driver to use as a fallback in case the regular driver doesn't work. By the way, there is a way to install multiple drivers, but it can only be done before changing to a new motherboard. Here you can see Microsoft's unhelpful instructions:
"Although Microsoft does not support this method, you can import or merge the required registry entries, and copy the drivers beforehand to support all IDE controllers that are natively supported by Windows XP."
It never seems to have crossed their minds that "copying the drivers beforehand" might not be possible.

Secondly, Windows 2000 (or XP) offers no command prompt or built-in repair services if something goes wrong. Since the registry appeared to be corrupt, I needed to reach a console in order to attempt to restore an old registry (assuming I had one, which I wouldn't be able to determine without a console). The "Recovery Console" can be used for this purpose, but for some reason my computer could not boot from a CD-ROM (it's a long story). Now, the Recovery Console can be installed on the hard disk (as described here) so booting from the CD is unnecessary, but that is a little known fact (I never even heard of the Recovery Console before my computer broke), and of course it can only be installed before Windows breaks.

The Recovery Console, by the way, is usually fairly useless because it has very little functionality and contains severe restrictions on what you're allowed to do. Arbitrary security restrictions are not welcome when your computer is broken and you have no other recourse. Linux can be used to get around Microsoft's silly restrictions, but even after I convinced CDs to boot, my Linux live CDs were unable to mount themselves.

Thirdly, the Windows 2000 CD has a Repair option, but (surprise!) it refuses to work without an Emergency Repair Disk, and of course, you can't create an ERD floppy unless Windows 2000 is working! This is the ultimate in stupid design because
  1. Most home users like myself don't prepare in advance for Windows to quit working, not least because we don't know how. It requires research, which doesn't feel worthwhile when your system is working fine.
  2. Many people don't have floppy drives (I still do, though.)
  3. Most importantly, the ERD is mostly unnecessary. The ERD contains three small files from your C: drive which the Win2K CD can restore if they turn out to be corrupt. However, if those three files are fine, then there is no need for the ERD. In addition to checking those three files, the repair process checks the system files on your hard disk against the correct version of the files that are on the Windows 2000 CD; this second process has no need for the ERD.
My computer still isn't fixed but I believe I will be able to repair it soon. Good night.

No comments: