Howdy!
I have another little problem with my linux-alpha I would like to solve.
This time it's about DAT unit.
I have some archive tapes, written under DigitalUNIX v3.2 using GNU tar.
Problem in short: I could not read those tapes using the same hardware. Is
it possible to do it somehow?
Long desription of the problem (I'm sorry about that; I just wanted to
give you, guys and girls, as much detail as possible):
When I try to access the tape (eg. tar -ztvf /dev/nst0), it says:
////////
tar (grandchild): Read error on /dev/tape: Input/output error
tar (grandchild): At beginning of tape, quitting now
tar (grandchild): Error is not recoverable: exiting now
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error exit delayed from previous errors
////////
and in syslog, it says
////////
st0: Incorrect block size.
////////
If I check the tape information using mt -f /dev/nst0 status, it says
////////
SCSI 2 tape drive:
File number=-1, block number=-1, partition=0.
Tape block size 512 bytes. Density code 0x24 (DDS-2).
Soft error count since last status=0
General status bits on (5010000):
WR_PROT ONLINE IM_REP_EN
////////
The same command issued under DigitalUNIX (with same tape in DAT unit)
returns following:
////////
DEVIOGET ELEMENT CONTENTS
---------------- --------
category DEV_TAPE
bus DEV_SCSI
interface SCSI
device TZxx
adpt_num 0
nexus_num 0
bus_num 0
ctlr_num 0
slave_num 24
dev_name tz
unit_num 24
soft_count 0
hard_count 0
stat 9
DEV_BOM DEV_WRTLCK
category_stat 20000
DEV_61000_BPI
MTIOCGET ELEMENT CONTENTS
---------------- --------
mt_type MT_ISSCSI
mt_dsreg 0
mt_erreg 0
mt_resid 0
////////
While comparing the outputs, I notice the density setting. Apparently DU
thinks that DAT is DDS-1 (density 61000bpi). If I try to set the same
density under linux, the command (mt -f /dev/nst0 setdensity 0x13)
succeeds (no error message), but if I query the status immediately after
that, it still shows density setting of 0x24 (DDS-2).
The next thing which occurs to me is that the block size under DU might
not be 512 bytes. I could not find information on what it really is.
Anybody knows?
Peace!
Mkx
---- perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'