Looking to read past EOT on DDS/DLT/LTO
sieler at allegro.com
Wed Jan 25 13:24:06 CST 2017
We have a friend with a "tape" (DDS, DLT, or LTO ... don't know which yet)
to which was written a system backup. Thousands of files, with an EOF
between each file, and a double EOF + EOT at the end.
They then accidentally overwrote the start of the tape yesterday
with about 1 KB of data, plus EOT.
(By EOT I mean the "logical end-of-tape" indicator placed there
by the drive firmware when a tape is rewound / unloaded after
it's been written to.)
So, we want to try to recover the files after that 1 KB + EOT.
On reel tape, no problem. I'd read until I hit the double EOF, and then
skip the partial file (by looking for the next EOF), and then...gravy.
But, DDS/DLT/LTO drives won't let me get past that darn logical end-of-tape.
Are there solutions anyone can suggest?
I've only heard of two approaches:
1. find a drive with modified firmware, one that treats an EOT like an EOF
While I heard some existed for DDS-1 drives, that lead was 20 years old :)
2. insert tape, start writing (at the start), write until I'm sure I've
written over the area where the EOT was,
power cycle the drive
read from the start, skipping over the data I just wrote, handle the
possible corrupted record, and the I've got good data from past the EOT
(note that this method loses a small amount of old data past the EOT
that we overwrote).
On DDS drives, I used this technique once or twice successfully,
although I seem to recall I couldn't do the "read until I get to
the good stuff" because of the probability of a bad record on the
tape (where the power fail was) ... but the solution was to load the tape
and then say "skip forward 3 EOFs", and the skip-to-EOF would
quietly ignore (usually) any bad record before the EOF.
BTW, if this is DDS, it's unlikely to be newer than DDS-4 (but possible),
if it's DLT, it's likely one of the first two or three generations,
and if it's LTO, it's extremely unlikely to be anything other than LTO-1.
More information about the cctalk