[Info-vax] Delete a file from a tape?

David J Dachtera djesys.no at spam.comcast.net
Tue Oct 13 23:29:29 EDT 2009


Michael Kraemer wrote:
> 
> If it's an ANSI label tape and one places an additional file mark
> after the second last file, the last file will be deleted, sort of.

BACKUP tapes are ANSI labelled - HDR1 and HDR2 only.

So, the option you suggest will work, but ...

Christoph:

What you need to do is use SET MAGTAPE/SKIP commands as needed to
position the tape at the HDR1 record for the last "file" on the tape,
then issue:

$ SET MAGTAPE/END_OF_FILE ddcu:

...to overwrite that last HDR1 label record with a tape mark leaving two
adjacent tape marks which indicate "End of volume". This renders the
remaining data on the tape inaccessible.

Use DUMP/BLOCK=COUNT=1 after SET MAGTAPE/SKIP=FILE=n to verify the tape
position, then use "SET MAGTAPE/SKIP=FILE=-1 ddcu:" to back the tape up
and leave it positioned just past the preceding tape mark.

For example, if there are three good savesets before the final
incomplete one:

$ MOUNT/FOREIGN ddcu:
$ SET MAG/SKIP=FILE=1 ddcu:	! SKIP past the first set of HDR labels
$ SET MAG/SKIP=FILE=1 ddcu:	! SKIP past the first saveset
$ SET MAG/SKIP=FILE=1 ddcu:	! SKIP past the first set of EOF labels
$ SET MAG/SKIP=FILE=1 ddcu:	! SKIP past the 2nd set of HDR labels
$ SET MAG/SKIP=FILE=1 ddcu:	! SKIP past the 2nd saveset
$ SET MAG/SKIP=FILE=1 ddcu:	! SKIP past the 2nd set of EOF labels
$ SET MAG/SKIP=FILE=1 ddcu:	! SKIP past the 3rd set of HDR labels
$ SET MAG/SKIP=FILE=1 ddcu:	! SKIP past the 3rd saveset
$ SET MAG/SKIP=FILE=1 ddcu:	! SKIP past the 3rd set of EOF labels

...or...

$ SET MAG/SKIP=FILE=9 ddcu:

Use DUMP to verify that you're now sitting at the final set of HDR
records:

$ DUMP/BLOCK=COUNT=1 ddcu:

(The tape is MOUNTed /FOREIGN. So, /BLOCK is needed rather than
/RECORD.)

The record displayed should begin with "HDR1" in the first four bytes
and the saveset name should begin immediately thereafter in the record.
If it does, you're o.k. Now, back the tape up over the record you just
read:

$ SET MAG/SKIP=FILE=-1

..., then issue:

$ SET MAG/END ddcu:

The tape should now end with two adjacent tape marks. You can verify
this with:

$ SET MAG/SKIP=-3
$ DUMP ddcu:

...and you should see two end of file marks go by at the end of the data
(reading will begin in the EOF records for the third good saveset)
before the command completes successfully.

$ DISM/UNL ddcu:

I'm doing this from memory and cannot actually simulate the condition to
verify that this will correct it. I'd need a good eight hours or more to
set it up and verify it.

Hope this helps. 

D.J.D.



More information about the Info-vax mailing list