Dave Horsfall:
I also wrote a paper on a "bad block" system, where something like inum
"-1" contained the list of bad sectors, but never saw it through.
====
During the file system change from V6 to V7, the i-number of
the root changed from 1 to 2, and i-node 1 became unused.
At least some versions of the documentation (I am too harried
to look it up at the moment) claimed i-node 1 was reserved
for holding bad blocks, to keep them out of the free list,
but that the whole thing was unimplemented.
I vaguely remember implementing that at some point: writing
a tool to add named sectors to i-node 1. Other tools needed
fixing too, though: dump, I think, still treated i-node 1
as an ordinary file, and tried to dump the contents of
all the bad blocks, more or less defeating the purpose.
I left all that behind when I moved to systems with MSCP disks,
having written my own driver code that implemented DEC's
intended port/class driver split, en passant learning how
to inform the disk itself of a bad block so it would hide it
from the host.
I'd write more but I need to go down to the basement and look
at one of my modern* 3TB SATA disks, which is misbehaving
even though modern disks are supposed to be so much better ...
Norman Wilson
Toronto ON
* Not packaged in brass-bound leather like we had in the old days.
You can't get the wood, you know.