Tape Libraries and Drives
cancel
Showing results for 
Search instead for 
Did you mean: 

Blocksize problems on Linux with DLT8000

Kristofer Tingdahl
Occasional Visitor

Blocksize problems on Linux with DLT8000

Hi,

I attached a HP DLT8000 to my Linux box, and the device is found:

[root@dgbusa2 d020]# mt -f /dev/st1 status
SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x1a (DLT 20GB).
Soft error count since last status=0
General status bits on (45010000):
BOT WR_PROT ONLINE IM_REP_EN
[root@dgbusa2 d020]#

The problem is that as soon as I want to read something, it fails, and I get the following
error:
[root@dgbusa2 d020]# tar tvf /dev/st1
st1: Failed to read 9244 byte block with 6640 byte transfer.
tar: /dev/st1: Cannot read: Cannot allocate memory
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting now
[root@dgbusa2 d020]#

I guess it's some setting I need to get right, but I have no clue which. Any ideas out there?
4 REPLIES
Ivan Ferreira
Honored Contributor

Re: Blocksize problems on Linux with DLT8000

Was this tape created on the same system or in another system?

Try specifying the same block size with the c and t options, for example:

tar cvfb /dev/st1 64 /boot
tar tvfb /dev/St1 64

Or

tar cvf /dev/st1 -b 64 /boot
tar tvf /dev/st1 -b 64
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
Kristofer Tingdahl
Occasional Visitor

Re: Blocksize problems on Linux with DLT8000

The tape is not written on my machine, but sent to me by a client.

I managed to read one tape with:

dd if=/dev/st1 of=test bs=64k

but it didn't work with tar:
tar tvf /dev/st1 -b 64
st1: Failed to read 9244 byte block with 1436 byte transfer.
tar: /dev/st1: Cannot read: Cannot allocate memory
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting now

/K
Ivan Ferreira
Honored Contributor

Re: Blocksize problems on Linux with DLT8000

The thing is that dd and tar uses different block size parameters. tar uses Nx512 bytes and dd is bytes only. Try different parameters with tar, start using 20. You may ask the block size used to your partner.

Also, you may try dumping to disk and then tar the disk file:

dd if=/dev/st1 of=tarfile bs=64k
tar tvf tarfile
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
Kristofer Tingdahl
Occasional Visitor

Re: Blocksize problems on Linux with DLT8000

I'll go for the dd option and then tar it.