OK. Now that I have something to hack on, I'm hacking on it :-)
On boot the kernel will mount a floppy to be the root floppy. When it
does this for an ext2fs file system, it will read track 0, head 0,
sector 3 (aka t0h0s0) first. It will then read t0h0s5 and then s11.
Once it has done this it pronounces the file system mounted. It then
goes on to read s13 a couple of times. Then it reads t3h1s1, or
should I say tries to read it. The checksum on that block is exactly
identical to the checksum on t0h0s13, which I know from my FreeBSD
machine it isn't.
Basically, it looks like it is reading track 0 w/o any problems, both
with and without the track buffering code enabled. However, when it
goes to read another track the first sector read from that track seems
to be bad (this is with the track caching code disabled), but
additional sectors appear to be reading fine (their checksum is
Now my question is why? Does anybody know enough about the floppy
driver to tell me why this is happening? Or point me in the right
Also, does anybody else who has taken a look at the floopy driver find
it to be a really twisted maze of code?