HOW TO RECOVER DATA FROM AN INITIALIZED 9-TRACK TAPE Short Title: Recover Data from INIT'd Tape by Charles M. Taylor McDonnell Douglas Missile Systems Company PROBLEM - A tape containing non-repeatable data was accidentally reinitialized. - Tape owner wanted to retrieve data FAILED ATTEMPTS - Mounted tape on TU78 tape drive - Parity error encountered at end of label - Tried to change parity, no effect - Tried combinations of mount qualifiers and QIO routines to read virtual, logical, and physical blocks - none worked - Tried to manually forward the tape past the place where the parity error occurred - result was vacuum loss in tape drive SUCCESS - Mounted tape on TU81 PLUS tape drive - Used DUMP command to read past label - No parity error occurred - Data was dumped from tape COMMANDS - $ MOUNT/FOREIGN mub0: - $ DUMP mub0: - Determined block size was 2048, stated by DUMP output COMMANDS . . . - Copied the files - $ MOUNT/FOREIGN/BLOCK=2048/RECORD=128 mub0: - $ COPY mub0: - Repeat COPY command until no more data - Ignore errors while copying - Files named .;1 .;2 etc. - Loses some data at beginning of tape COMMANDS . . . - Copied file labels - $ DISMOUNT/NOUNLOAD mub0: - $ MOUNT/FOREIGN/BLOCK=80/RECORD=80 mub0: - $ COPY mub0:*.* * RECORD FORMAT ON TAPE - File format: variable-length records - Individual Records: - First 4 bytes contained record length - Byte count in ASCII - Blocks: - Contained only full records - Padded with circumflex characters (^) Wrote FORTRAN program to read 128-byte records and extract variable-length records. See CONVERT_RECORDS.FOR PRIME TAPE - File from 7-bit tape from Prime computer looked like gibberish in the editor - High-order bit of every byte was 1 instead of 0 - Program CONVERT_PRIME was used to clear bits - Then file could be used