[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Corrupted disk labels
Date: Thu, 22 Feb 90 11:10 EST
From: Barry Margolin <barmar@Think.COM>
Date: Wed, 21 Feb 90 19:56 PST
From: Reti@STONY-BROOK.SCRC.Symbolics.COM (Kalman Reti)
I think you can use the BOL tape to attempt to just write the initial fep
filesystem, without reformatting. You can also only reformat the cylinders
that need it. If you do that, you may still be able to recover LMFS files
that weren't on the cylinders formatted or of the files restored from the
BOL tape.
You'd need to develop quite a bit of FEPFS and LMFS debugging technology
to make the above suggestions useful.
I offered to provide the already-written-but-prototype technology (only a page
or two of code) in a previous message you may have missed. You don't need any
FEPFS technology (you can use disk-read on the entire disk); the approach is
that LMFS blocks are all reasonably recognizable by their checkwords, so you
make a pass over the disk collecting all DPNs with consistent checkwords
in a hash-table by UID. Each UID represents a file; you either have all the
information about the file or just some of it. If you don't have the
first header block, you can't recover the file. If you have the first but
not later header blocks you can sometimes recover the file. If you are
missing data blocks, you can recover some of the data in the file (filling
in the gaps with some constant data so as to be noticeable).
Writing the initial file system
overwrites the previous FEP directory structure, so you'd have to go
hunting for the blocks that made up the old files. Also, blocks that
were previously in the LMFS may get reused for the new files.
Because of a typo my meaning was perhaps unclear, but that's exactly what
I meant by the final clause of the last sentence quoted above.
Usually a lot of the disk is left over after doing this; you can recover
files from this leftover portion to the extent that it overlaps the preexisting
LMFS partitions and is undamaged.
barmar