Copying to tape drive throws error

Hi All

I am trying to copy files present in a partition (server 2) which is mounted to a different server (server 1) as tape drive is connected to it. I ran the below command to copy files within a partition:

svr01:root:/sunfileserver> tar -cvf *
a <foldername>/<filename>/<filename>
a <foldername>/<filename>/<filename>
.
.
.
svr01:root:/sunfileserver>

When I tried the below command :

svr01:root:/sunfileserver> tar -tvf /dev/rmt3
drwxr-xr-x 2 root system 4096 Sep 29 10:59 tcs.ori
svr01:root:/sunfileserver>

Though the backup ran for a whole day, which is ~40GB but it just shows a single file containing 4MB.

Please let me know if there is something wrong with Tape or Command executed or Tape device that controls the tape. Also, let me know the ways to fix this issue.

At times, when I try ' tar -tvf /dev/rmt3 ' :
It says "A directory checksum error on media" - Let me know why and what steps neesd to be taken. I use IBM 3580 Ultrium Tape Drive.

Please do let me know for any specific information in regards to this issue.

  • Vathsan.

Try using backup like this
if this fails check you have a tape in and that you have the correct driver in the system for this

#!/bin/ksh
#backup all stuff in a vg
# some restore commands for your use
# restore -xvqf /dev/rmt0.1 /stage/aix
# restore -Tf /dev/rmt0.1

# tctl -f /dev/rmt0 rewind
# tctl -f /dev/rmt0.1 fsf 9
# restore -xvqf /dev/rmt0.1 /stage/Directory
for i in `lsvg -l datavg |egrep -v "N/A|TYPE" |awk '{print $7}'`
do
echo " $i "
find $i -print |backup -iqvf /dev/rmt0.1 > /tmp/Filesystem_backup`date +%d `.log 2>&1
done

##########################
also see if you have tapeutil

Moving Tape to Drive

tapeutil
Use the menu and select
1 /dev/smc0 We want to work with this robot

then do
14 Do Inventory of the Robot

Find a tape in a slot eg 4097 ( 4107 4118)
Look at tape drive address ( 256 )

  1. Move Medium
    Enter Source Address: 4107
    Enter Destination Address: 256

Sorry the reason for the error could also be one of the following things

Tar limits ( check your o/s level )

The tar command id not enabled for file size larger than 2G in size
due to limitations imposed by
XPG/4 and POSIX.2 standards

New versions of tar supports up to about 8Gig file size limits

/etc/security/limits

You have to check the limits on your user for filesize
ulimit -a

File error or corruption

some problems with the files
or
media or tape errors

The option "-f" gets a filename as an argument - the file/device where tar is to store the archive. If you enter an asterisk there your declare every file/directory in your current directory (this is what "*" expands to) as a target, not a source. Chances are your never wrote to your tape drive at all. Do the following to write everything in directory /some/start/directory and below to your tape:

tar -cvf /dev/rmt0 /some/start/directory

Alternatively, make this directory your current directory and run tar using a shell glob:

cd /some/start/directory
tar -cvf /dev/rmt0 *

The difference is that in the first case the paths are stored absolutely, n the second case they are stored relatively. If you would list the contents of the archive you would get

/some/start/directory/fileA
/some/start/directory/fileB
/some/start/directory/dirA
/some/start/directory/dirA/fileC
... etc.

In the second case you would get

./fileA
./fileB
./dirA
./dirA/fileC
... etc.

If you intend to restore the archive always into the same directory use the first version with the absolute paths. If you intend to restore the archives into different hierarchies (maybe on another machine where /some/start/directory is named /another/dir) use the second variation.

I hope this helps.

bakunin

Thanks a lot for breif explanation. Will get back if i need anymore help on tape drive backup.

  • Vathsan.