SUMMARY: getting data from a tape

From: Stacey Conrad (
Date: Tue Apr 25 2000 - 14:49:51 CDT

Thanks to everyone who offered their assistance. It seems there was nothing
on the tape to recover. The tape was dated 12/15/97, so it's very possible
that it got demagnetized sometime. I've included all the replies I got. We
bought the Unix Backup and Recovery book by O'Reilly - it looks like it will
come in handy in the future.

Stacey Conrad
Millersville University

My original question:

        I need to get data off of a backup tape, which is pretty old. I'm
told it
        was made under Win3.1, but we are unsure of what software created it
(and we
        don't have it around, anyway).

        We tried the following, to no avail:

        # dd if=/dev/rmt/0 of=/mnt/tape-data1
        0+0 records in
        0+0 records out
        # tcopy /dev/rmt/0 /mnt/tape-data1
        file 1: eof after 0 records: 0 bytes
        Write EOF: Inappropriate ioctl for device

        Are there any other methods that we might use to get the data from
the tape?
        Or are we out of luck?

Here are the responses I received:

Joe Muldoon wrote:
Did you try this:

dd if=/dev/rmt/0 of=/mnt/tape-data bs=128k count=1

Then the /mnt/tape-data file should be the blocksize of the tape. Also
try 'file /mnt/tape-data' ; you never know, the format of the backup
may be listed in /etc/magic.

The new O'Reilly book 'Unix Backup and Recovery' has a decent section
on trying to get data from a tape of unknown origin.


Danny Johnson wrote:
first off you apparently need to skip past some tape marks,
which has to be done using the no-rewind device (e.g. /dev/rmt/0n).

tcopy stops at two tape marks in a row, which your tape appears
to have at its beginning for some reason. (I don't know anything
about the PC backup format.)

secondly, tcopy only works on tapes (your output seems to be a disk).
        dd if=/dev/rmt/0n of=whatever bs=61k
(or bs=some other size at least as big as every record)
might work as well. I suspect the output will be a jumbled mess
that you will not be able to figure out unless you are looking
for text data.


David Foster wrote:
dd is by far your best bet. Try different block sizes, and try running it
several times, even if the first results in an error...I had this problem
trying to read MRI data off 9" tapes...the first dd read would give an
error, but would pass over an EOT marker at the beginning of the tape.

You might just need a specific block size. You might try finding out what
blocksize Win3.1 would use.


Stefan Voss wrote:
tcopy accepts only tape devices as arguments and no plain files. So you can
a tape using

   tcopy /dev/rmt/0bn /dev/rmt/1bn
or you can check the tape using

   tcopy /dev/rmt/0
If you want to copy from tape to disk, you must use dd:

   dd if=/dev/rmt/0bn of=/mnt/tape-data1 bs=32k
the block size (bs) must not be 32k, but must be at least the maximum block
that you find on the tape.


Bageshwar Kumar wrote:
Try using cpio,tar or ufsrestore.


Roger Fujii wrote:
you might try something like:

   dd if=/dev/rmt/0 of=/mnt/tape-data1 bs=126b count=1

and see if that would read a tape block. If this returns something
you might drop the "count=1" and see how far it gets. It's pretty
unlikely that you will be able to use it if it were written by a PC dumping
software though.

Just as an FYI, the default blocking size is 512 for dd, and the system will
not read into a SMALLER block from tape to memory, but it will partially
fill in a larger block.


Vinne German wrote:
You should try using "tar' and "ufsrestore"

for example:
tar tvf /dev/rmt/0 (this should display anything on tape on your screen)
if it display something then get ready for your restore using something

tar xvf /dev/rmt/0 ( this will restore everything back to your computer
at directory where you're at)

if it does not work then use 'ufsrestore" i can not remember the exact
syntax just do a man ufsrestore and you should be able to figure it out.


Mohammed Shaghel wrote:
There could be a possibility that tar was used.

So you can try

tar tvf /dev/rmt/0

If tar is used then this command will list contents.


Jeff Kennedy wrote:
dd has always worked for me but I also specified a 64k block size and a
count of 1, but that shouldn't matter. If dd won't pull anything off
maybe it's not there, it is possible that the original backup never
happened or failed. It's even possible that the data has been erased or
the media has been de-magnetized, depending on where it was stored.

This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:14:06 CDT