Help with backspacing on Exabyte tape drive

Help with backspacing on Exabyte tape drive

Post by George Mandush » Mon, 03 Nov 1997 04:00:00



Hi,

I have an 8mm Exabyte tape with several tar
files on it. I'm trying to do the following:
go to the end of the first tar file and then
go back several records, so that I can dd
some pieces of that tar file. I did FSF to
the second tar file, then BSF. According to
the Solaris manual, I should then be at the
gap between the last data record of the first
tar file and the EOF mark separating the
first and second tar files. But the mt status
command tells me that after the BSF I'm at
file no= 2, block= 0. This is what I did:

mt -f /dev/rmt/0hn rewind        # go to the beginning of tape
mt -f /dev/rmt/0hn fsf           # FSF to the second tar file
mt -f /dev/rmt/0hn bsf           # BSF to the first tar file
mt -f /dev/rmt/0hn status        # check where I am

Exabyte EXB-8500 8mm tape drive:
   sense key(0x0)= No Additional Sense   residual= 0   retries= 0
   file no= 2   block no= 0

At this point, if I say

mt -f /dev/rmt/0hn bsr

Unix says "/dev/rmt/0hn bsr 1 failed: I/O error", and my guess is
that this is because BSR can't go over the EOF mark.

So what's going on? How can I backspace over some records from the
end of the first tar file?

George

 
 
 

Help with backspacing on Exabyte tape drive

Post by Eric McWhort » Thu, 20 Nov 1997 04:00:00


I have noticed this behavior on a sparc running solaris 2.5-
solaris 2.6 with an exabyte 8700 8mm tape drive.

This may seem strange, but I'm pretty sure this is how it
works.  At the end of every file you have some sort of
marker that says "hey, this is the end of the file".  The
arguments bsf and fsf to mt count end of file markers, not
files.  As an extra complication, whenever you stop the
tape in the middle of a file, the tape is advanced to the
beginning of the next file.  So, with end of file denoted
as |, and file data as -, and the position of the tape head
we'll designate as ^, lets say your file from left to
right looks like this:
begin-----------|------------------|---------|end
     ^
mt fsf 2 will yield:
begin-----------|------------------|---------|end
                                    ^
as you might expect
However, if you try to back up, e.g. mt bsf 1, you will get this
begin-----------|------------------|---------|end
                                  ^
and the driver (I think that's where it happens) will say
"hey, I'm not to the "right" of a tape marker, I better
advance the tape" so you will get this:
begin-----------|------------------|---------|end
                                    ^
So, mt bsf 1 is a noop.  Nothing happens.  You have to do a
mt bsf 2 to go back one file.  That way, you go back two file
markers (including the one right where you are) and then
forward one file marker.  Wierd, but that's how it seems to
work.  Could this be why your bsf isn't working?

As for the bsr, have you tried doing a fsr from the begining
of the file?  If that doesn't work, that would rule out
a possible problem with an EOF marker.

Are you sure its not the tape its self?  Have you tried this
with another tape to verify it can be done at all?  I use
exabyte tapes and have problems with around 10% of them.



>Hi,

>I have an 8mm Exabyte tape with several tar
>files on it. I'm trying to do the following:
>go to the end of the first tar file and then
>go back several records, so that I can dd
>some pieces of that tar file. I did FSF to
>the second tar file, then BSF. According to
>the Solaris manual, I should then be at the
>gap between the last data record of the first
>tar file and the EOF mark separating the
>first and second tar files. But the mt status
>command tells me that after the BSF I'm at
>file no= 2, block= 0. This is what I did:

>mt -f /dev/rmt/0hn rewind        # go to the beginning of tape
>mt -f /dev/rmt/0hn fsf           # FSF to the second tar file
>mt -f /dev/rmt/0hn bsf           # BSF to the first tar file
>mt -f /dev/rmt/0hn status        # check where I am

>Exabyte EXB-8500 8mm tape drive:
>   sense key(0x0)= No Additional Sense   residual= 0   retries= 0
>   file no= 2   block no= 0

>At this point, if I say

>mt -f /dev/rmt/0hn bsr

>Unix says "/dev/rmt/0hn bsr 1 failed: I/O error", and my guess is
>that this is because BSR can't go over the EOF mark.

>So what's going on? How can I backspace over some records from the
>end of the first tar file?

>George

--
Eric McWhorter                     2-207 Wilson Hall, MSU, Bozeman, MT 59717
College of Letters and Science     (406)994-1788