SUMMARY: Reading Vax/vms tapes on Unix

From: Dennis.MacDonell@ga.gov.au
Date: Tue Aug 03 2004 - 22:44:49 EDT


Original message:
Hi,

I have an exabyte tape that I have been told was written on a vax. When I
read the tape on a tru64 v4 system using "ltf -f /dev/nrmt1l", I get a file
with the name "as_23mar94_s5.bck". When I look at that file with "od -c" or
"strings" it would appear to be some sort of backup, which I am assuming is a
vmsbackup format type backup, since it talks about savesets.

So I guess the question is does someone out there have some software that
will prise apart a vmsbackup tape that will run on DU 4.0f or latter.
 
I have tried compiling vmsbackup-v3.0 from freebsd, but it doesn't seem to
want to run. The compilation gives a warning "cast to pointer from integer of
different size", and I suspect that that might be at the cause of the
problem. Also running the program, reports that there is an incorrect block
header size of 256 (should be 280 ???, probably due to the change in word
size on the alphas from 32 to 64???). Anyway, it looks like it might be a bit
of a hack to get this thing to work.

Dennis

Summary:
I got a number of replies, some looked like spam which I removed. Most
suggested using vbackup. I got the following answers
(a) Damon Goforth [damon@compsus.com] - We use vbackup, from
http://www.bosbc.com/vbackup.htm
(b) Richard Jackson [rjackson@mail01.gmu.edu] - Your salvation is vbackup or
accessing Digital UNIX 3.0 media kit to access a version of vbackup that DEC
had hacked. You want to install BBCBASE101 and BBCVBACKUP240 on the CD.
(c) T. Horsnell (tsh) [tsh@mrc-lmb.cam.ac.uk] - I have a program called
vbackup distributed under license by Boston Business Corporation
(d) Tom Linden [tom@kednos.com] - If it were me I would do it on VMS and make
a tarball for unix.
(e) James Sainsbury [J.Sainsbury@chem.usyd.edu.au] - The warning "cast to
pointer from integer of different size" on line 674 is harmless. Insert the
header containing the declaration of malloc() after <stdio.h> to remove the
message. ie
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

(If not declared a function is assumes to return an 'int' the cast
         block = (char *) malloc(blocksize);
is casting from a 'int' to 'char*'
        (here int is 32 bits and pointers are 64 bits.))

The Makefile has -lV which is extraneous

        cc -o vmsbackup vmsbackup.c match.c

should compile/link.

If I remember correctly I ended up writing the saveset to tape and running
vmsbackup on that as I could not get it to read a diskfile which is what I
had from a CDROM.

What I did:
I found a copy of vmsbackup that had been hacked by someone at Utah Uni and
packaged as a .gz with a number of different compilations in the package,
including alpha-osf1 and used that. This version of vmsbackup ran but
eventually also produced an error, after processing something like 1570
files, it came up with an "invalid record type" of 48nnn, and then proceeded
to have a segment violation??. The information that was captured off the tape
seems correct, so I'm not sure what went wrong. I'm just going to see how
many tape blocks this vmsbackup had managed to churn through, before I look
into this much further.

Dennis

##################################
Dennis Macdonell
Sys Admin
email: Dennis.Macdonell@ga.gov.au
##################################



This archive was generated by hypermail 2.1.7 : Sat Apr 12 2008 - 10:50:06 EDT