Rescuing Crusoe

This is probably going to sound a bit like Jerry Pournelle doing his Chaos Manor thing and wrestling with computer problems so intractable and tedious as to numb the brain. Oh well. After a long session of disaster recovery, I want a record for future reference and might as well put it here.

I can't resist computer playthings if they're cheap enough, and Crusoe was an obsolete bargain: a tiny Sony Vaio notebook machine (PCG-141c), well past its sell-by date but fine for running basic writing tools under the supplied Windows ME. It even talks to the house wireless network. Hazel, who does Naming of Computers in these parts, decided it was called Crusoe because there's a sticker saying so (the processor type). Her own machine is classically called Atticus because it lives in her attic room ... but I digress.

Unfortunately Crusoe is a bit cranky about starting up on cold mornings, when it usually takes several power-on and power-off cycles before the BIOS comes up with the SONY VAIO display and tells the hard drive to boot. One day on a train, something went badly wrong during this process: Windows got stuck after the ME splash screen and issued various terrifying error messages, eventually settling down to something about the Windows loader being missing or corrupt. This cuts off communication with the outside world, since most peripherals need the USB port and Windows drivers. Only the CD drive has a hardwired connection (PCMCIA, I think), so the obvious solution was to plug this in and re-instal Windows.

Weirdness ensued. Crusoe would boot from a CD ... sort of. Any Windows installation CD would be detected, leading to a menu offering the choice of boot-up from CD or hard drive. Selecting the hard drive while the machine was in its glitched state led to a failed Windows launch and freeze-up, as above. Selecting the CD loaded various likely-looking drivers, followed by a report that the CD drive -- the one just booted from -- couldn't be found. Then came a working DOS prompt, which was a slight improvement from total aphasia: I could now run DOS programs including Scandisk (which reported and fixed a number of hideous file system errors), WordPerfect 5.1 as previously installed by me, and an old shareware Doom. State of play: Crusoe had become a DOS machine which needed to start from a boot CD and couldn't read or write floppies or flash drives. Oh dear.

Maybe some tinkering with the internal DOS setup would sort out CD access? It emerged that the non-doing CD drivers were being loaded from a phantom Drive A in Crusoe, apparently an internal ROM image of a floppy disk whose AUTOEXEC.BAT, CONFIG.SYS and so on couldn't be changed. Maybe the magic power of Linux could break the impasse? Ubuntu 7.10 began to load quite promisingly and then dropped into a "Debian BusyBox" command-line interface with a minimal instruction set -- which seemed to be the exact Linux equivalent of being stuck at the DOS prompt, only without access to DOS tools. Some web searching unearthed the Ultimate Boot CD for DOS, which loaded happily into its own toolbox menu and would have been useful if Scandisk hadn't already fixed the hard drive errors.

Another thought was the brute force approach: pull out Crusoe's hard drive, mount it in an external caddy connected to some other machine, and copy a clean set of Windows ME system files straight to the \WINDOWS directory. Unfortunately, although each of the five retaining screws on the bottom of the case has a helpful little arrow pointing to it, removing them all didn't help. The case couldn't be prised open more than a millimetre or so without ominous indications that something in there, probably something important, was about to snap.

After picking various people's brains, I worked out that the only way forward was to invent my own DOS boot CD which would have USB flash drive support and so open up a route for replacement Windows files to be copied to Crusoe.

1. Start with a Windows ME boot floppy. The web encourages laziness. I could have gone all the way up to the attic and created a boot floppy on Hazel's WinME machine, but there's no need to tackle the stairs when you have the Bootdisk.com site. Boot disk creation utilities for all flavours of Windows appear here. With generic CD drivers, too, which sounded promising. You run the downloaded .EXE program to make a boot floppy, and leave this in the drive for the next step.

2. Make boot CD from boot floppy. This turns out to be easy with the Nero CD burner -- so easy that one website made it difficult by airily saying "just follow the menu". The trick is to select New from the main Nero screen's File menu, and scroll down the icons on the left of the resulting dialogue box until "CD-ROM (Boot)" comes into sight and can be selected. Nero promptly detects the floppy. Some sources tell you to click the "Expert settings" checkbox and make sure the options below are set to "Floppy emulation (1.44Mb)" and "Nero Boot-Loader ..." But these seem to be the default settings anyway. Click "New" to close the box and, in the main Nero screen again, select and drag all files from A: to the output box. Burn the CD.

All this being new to me, I was startled that it worked first time. Up to a point. Crusoe booted happily from the home-made CD, loaded its drivers and ran the CD version of AUTOEXEC.BAT -- I'd hubristically added "echo Ansible Information boot CD" at the end of this file to provide visible confirmation. But again the DOS setup process couldn't find the CD drive from which it had just booted, and again there was no further CD access. As the late great John Brosnan would so often say: poot. (Incidentally, WordPerfect 5.1 wouldn't run at this stage because not enough file handles were available. I remembered this snag from the 1980s and made another CD with FILES=10 changed to FILES=50 in CONFIG.SYS -- a fix which worked but which no one else is likely to need.) The boot floppy is set up to create a RAMdisk as drive D if the CD can't be found, so there was now a drive D but not the one wanted.

3. Make boot CD with USB support. Bootdisk.com offers a somewhat intimidating range of options here. It looked as though I might have to burn a lot of experimental boot CDs before finding one that worked. Some further net rummaging indicated that the simplest setup involved the free Motto Hairu drivers (this page includes download links), which have their own Readme.txt file and can also be found by searching for mhairu.zip (that's a download link). "Read Me" suggested that all I needed to do was copy these drivers to the boot floppy created at step 1, and add two lines to invoke them at the end of CONFIG.SYS:

device=USBASPI.SYS
device=Di1000dd.SYS

Then make a boot CD from the floppy as in step 2. To my great amazement this worked first time. I started Crusoe with a memory drive plugged into the USB port: this was recognized and installed as drive E (RAMdisk at D, remember). The document on the memory drive was John Clute's 13Mb Databank of sf bibliography, created in WordPerfect 5.1: being able to access this was very comforting. Motto Hairu USB support doesn't extend to letting you swap memory drives after startup, but that's a nuance that's hardly needed for an emergency rescue operation.

4. Re-instal Windows. The lazy option here was to copy an entire Windows ME installation CD to a 2Gb memory drive, pause for a nice cup of tea while the files moved across, and plug in this drive before restarting Crusoe with the CD created at step 3. Then I simply ran Setup.exe from drive E, and the Windows installer did all its usual stuff. An hour or two later, Crusoe was mostly back to normal. Some software was lost -- notably the MS Office 2000 suite that came with the machine, though I never used it -- but CD drive access magically came back with Windows, and the wireless net connection went live within seconds of re-installing its driver software. Phew.

I can't believe I managed all this in one obsessive afternoon when of course I should have been doing something else....