Re: [SLUG] CPIO from a DG/UX tar

From: Derek Glidden (dglidden@illusionary.com)
Date: Fri May 31 2002 - 10:38:47 EDT


Unfortunately, I don't think this will help, but you never know...

When reading DATs taken from other OS/architectures, I generally have to
issue a:

mt setblk 0

before I can read the tape successfully. If I don't, tar will sit and
churn for a while, and perhaps do something, but will eventually error
out, not entirely unlike what you're reporting with cpio. But it sounds
like you already have the data off the tapes, so that might not even be
relevant. It might be worth a shot though - perhaps by changing the
blocksize of the tape device, you'll pull the data off in a
non-corrupted fashion that cpio can then read successfully.

On Thu, 2002-05-30 at 20:52, Matt Miller wrote:
> I am wondering if anyone has encountered anything like this:
>
> I have some tape archives from an old DG/UX system created before I
> started at my current employer. I have tried without much success
> reading the tapes with GNU tar on Linux.
>
> mt -f /dev/st0 rewind
> tar tvbf 32 /dev/nst0 >> foo.bar
>
> GNU tar was having problems reading all the headers from the tape and
> bailing with nondescript errors. I could only produce a partial listing
> from the tapes. I ran strace and realized there were some problems
> reading headers due to "icompatability" issues. I was able to pull the
> original backup script off the tape using GNU tar.
>
> tar xvbfP 32 /dev/st0 ./../path_to/backup
>
> Here is an excerpt of how the archive was being written from the
> original script:
>
> # Change to the root directory and use relative path from there.
> cd /
> tar cvf /dev/rmt/$TAPE ./..
>
> So, I gave up on tar and decided I would try to read the tape with cpio.
>
> cpio --format=tar --block-size=32 -tvF /dev/nst0 >> foo.bar
>
> OK. I ran grep against the output and found the data I was looking for.
>
> grep "./../some/data" foo.bar
>
> Great. But now here is my problem; I can't seem to extract the data from
> the tape archive with cpio. (I just need the data...I don't care about
> preserving any file attributes.)
>
> cpio --format=tar --block-size=32 --no-absolute-filenames -ivdF
> /dev/nst0 ./../some/data
> AND
> cpio --format=tar --block-size=32 --no-absolute-filenames -ivdF
> /dev/nst0 "./../some/data"
> AND
> cpio --format=tar --block-size=32 --no-absolute-filenames -ivd
> "./../some/data" -F /dev/nst0
> AND
> cpio --format=tar --block-size=32 --no-absolute-filenames -ivd
> "./../some/data" < /dev/nst0
>
> All of the above commands run for about an hour, exit gracefully with
> the amount of blocks read, and return with no data recovered. Any ideas?
> (Sorry for the length).
> Thanks.
> --
> Matt Miller
> Systems Administrator
> MP TotalCare, INC
> gpg public key id:
> 08BC7B06

-- 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#!/usr/bin/perl -w
$_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map
{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;
$t^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)
[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h=5;$_=unxb24,join
"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=
unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d
>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*
8^$q<<6))<<9,$_=$t[$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}
print+x"C*",@a}';s/x/pack+/g;eval 

usage: qrpff 153 2 8 105 225 < /mnt/dvd/VOB_FILENAME \ | extract_mpeg2 | mpeg2dec -

http://www.cs.cmu.edu/~dst/DeCSS/Gallery/ http://www.eff.org/ http://www.anti-dmca.org/



This archive was generated by hypermail 2.1.3 : Fri Aug 01 2014 - 19:38:48 EDT