I finally got the Thix [1] filesystem utilities mktfs and tfsck working, although what I changed to make it work I'm not entirely sure since I wasn't keeping that close a track of what I was doing. It seemed to go okay after I went through the mktfs code line by line, seeing the values being calculated and stored in the superblock of its filesystem.
I had created two partitions on the drive in the laptop—an 8M partition for swap (if Thix supports it, I'm still not sure) and the rest (~108M) for the actual filesystem.
Finally I got an 108M (108.0117188 * 1024 * 1024 gives 113,258,496 bytes, so you see I'm using the computer definition of megabyte, not the disks manufacturer's definition) image file created, and a few runs through tfsck fixed it up. Ran gzip over the image, which compressed it down to something like an 11K file. I transfered it to floppy (tar cf /dev/fd0 thxfs.img.gz), sneakered it over to the laptop.
I created a Minix filesystem on the 8M partition (using Tom's Root Disk [2]), extracted the file from the floppy (tar xf /def/fd0) and then extracted the image file to the appropriate partition(gzip -dc thxfs.img.gz | dd of=/dev/hda2).
Several long minutes later, it was done. Booted from the Thix installation disk, it mounted the partition no problem, installed a bunch of stuff, popped the floppy out and rebooted.
To an error screen. [3]
Ah, the master boot record must be bad. Okay, this is easy. Let me approach this all wrong and spend an hour or so writing a custom boot sector [4] on a floppy that will then read the partition table from a harddrive and boot from that.
It would have worked too, if it weren't for those pesky kids.
Sorry. I would have worked too, if in fact, a boot sector and kernel were actually part of the partition!
Oops. I should have read the installation instructions better. Especially the part:
Go into the Thix source tree (../thix). Edit the file fs/mount.c and set the root_device to point to the partition you want to install Thix on. That is, uncomment this lines: /* /dev/hda3 */ int root_device = HDC_MAJOR * 0x100 + 4;
and well, it goes on from there. Had I a bit more time, I probably could do it. Heck, had I a bit more time, I probably could have gotten Linux on the thing.
Mark [5] suggested FreeBSD or Slackware. Can't use FreeBSD since I think that requires a math-coprocessor (although I'm sure Mark will correct me if that is not the case) and I unfortunately ran out of time to try Slackware (which probably would work).
I'm out of time, because I'm leaving for Palm Springs in, oh, less than 12 hours now.
[1] http://www.cs.unh.edu/~tudor/thix/
[4] /boston/1999/12/15/code.txt