Thanks for that piece of history. I remember well the days of using icheck and dcheck
(coupled with some of the other tools like ncheck and clri…which we rewrote to clrm…much
safer because it was easier to reverse if you got the wrong one. One thing afflicting
the V6 file system was that it wasn't too safe in the way it committed changes.
Hence, you could get "dups in free" and inode link counts that differed from
the number of entries in directories. I remember being grilled on this my freshman year
on the file system format, what the various failures were, how to detect them with
icheck/dcheck and how to fix them before they'd let me play computer operator on the
UNIX system.
FSCK was a big improvement but so was fixing up the ordering in the file system so as not
to get degenerate cases (better to lose blocks from the free list than to have them
duplicated).
My favorite FSCK story was I was called by an operator one time to tell me that "FSCK
had gone into a loop." When I got there, I found the machine running FSCK on the
root, deciding it needed to reboot the machine and doing so and then rerunning FSCK
getting the same error. Somehow the operator neglected to mention that part of the
loop was the machine rebooting.