Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"
International Rescue Committe

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
Copyright Info
Terms of Use
Privacy Info
Masthead / Impressum
Your Account

Private Messages

News Archive
Submit News
User Articles
Web Links


The Web

Who's Online
There are currently, 65 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here




       dds2tar  [  -f  device ] [ -t indexfile ] [options] string


       dds2tar uses an index to find the files with  record  seek
       (a  fast operation of DAT devices).  Since the file struc­
       ture of the tape archives is used to  extract  the  files,
       the  archive  has to be created by tar, compressed only by
       (the transparent signal processor of) the device.  So  you
       can  step  through  the  archive  very quickly and extract
       files.  The index may be created using dds2index  or  tar-
       vRt and is normally stored as a file on your hard disk.

       A tar archive is a sequence of blocks (e.g. 10240 bytes by
       default), each containing the same number (20 by  default)
       of  records,  512  byte  each.  dds2tar reads the tape and
       writes the tar records of the specified files (that  means
       the  header  record  and the data records of each selected
       file) to stdout.  You may pipe the dds2tar output  to  the
       stdin  of  tar  -xvvf - to restore the files to your disk.
       (See EXAMPLES below.)  Before a  file  is  extracted,  the
       records of parent directories of the file are also written
       to stdout.

       The index of the archive should contain enough information
       to  compute  the number of the block containing the header
       of each selected file.  dds2index will give such a  table,
       tar  -Rvt  e.g. will not (only record numbers are listed).
       A patch for GNU tar-1.12 is available, adding  the  option
       --record-file.  Alternatively there are some tricks to get
       the missing information.

       The strings are regular expressions to select  the  files.
       The  matching  algorithm  is  the one from GNU tar. If the
       option -l is given, the matched file names are printed  to
       stdout  (You may not pipe this list of pathnames to tar!).

       The default device is /dev/rmt0, which may  be  overridden
       with  the  environment variable TAPE, which in turn may be
       overridden with the -f device option. The device must be a
       SCSI tape device.


       -f devicefile  Device  of the tape archive. Must be a SCSI
       tape device.

       -t indexfile
              Specifies the index file (default is stdin).

       -s #   Set the number of  the  first  tape  block  of  the
              option is useful only if the  index  file  contains
              the  verbose output of tar (or if you have problems
              with the size of the internal buffer  of  dds2tar).
              Any  information  about  the  blocksize  inside the
              index file will be overridden by this  option.   If
              no  information is available, the default blocksize
              of tar is used.

       -z     The index file should be read and  stored  in  com­
              pressed mode.

OPTIONS you didn't really need

       --z, --no-compress
              Don't filter the archive file through gzip.

       -q, --quick
              Don't   extract   the  parent  directories  of  the
              selected objects from tape.  --body Write only  the
              first  selected  file  to stdout. This is useful if
              you want to read a file or extract an archive which
              is part of the current archive.

              verbose mode.

              Print a hash sign for each MB.

              Print only the Version Number to stderr.

       -l     Don't  access  the tape but print the file names to
              stdout.  You may not pipe this  list  of  pathnames
              into tar.

              The  stdout  is  closed and opened by a pipe to the
              command tar -fxb - 1 .  You may  find  this  option
              convenient,  I  like  to  pipe the output to tar by


       Example  of  getting  the  index  from  the  default  tape
       /dev/rmt0 and storing it in file archive.idx:

              dds2index -t archive.idx

       Alternatively you can use a patched version of tar to cre­
       ate an index file.  With the  patch  you  can  direct  the
       errors  and  warning  to  stdout and the index information
       including information about the blocksize and  the  number
       of the first block to a file:
              mt-dds tell > archive.idx
              tar -tvR >>archive.idx

       Example  of  using dds2tar to extract the gnu library (all
       files containing the string "glibc" in filename) from  the
       default  tape /dev/rmt0, using the previously stored index
       file archive.idx:

              dds2tar -t archive.idx '*glibc*' | tar xvvf -

       To see in advance what would happen in the  previous  com­
       mand  without  actually writing anything to your disk, you
       may use:

              dds2tar -t archive.idx '*glibc*' | tar tvvf -

       Example of checking the matches. You may try:

              dds2tar -t archive.idx -l '*glibc*'


       A tape device handles all I/O (read, write, seek) in units
       of  tape  records.   The  bigger  a  tape record, the more
       effective usually is the access (and the less gaps are  on
       QIC-tapes).  However, normally a program will only read or
       write complete tape records.

       Normal tape drives allow to seek only relative to the cur­
       rent position. However, some newer SCSI-2 tapes, i.e. DAT,
       conforming to the DDS standard, keep track of the absolute
       position  on  the tape by inserting the tape record number
       inside each track.  This number can be read while the fast
       seek is performed.

       The  tar(1) program uses a slightly different terminology.
       It calls tape blocks what normally is called tape records.
       In  the  following  sections we use the tar terminology to
       avoid confusion.

       The unit inside a tar archive is a tar record with a fixed
       length  of  512  bytes. Every file, directory or soft link
       will occupy at least one tar record of  information  about
       pathname,  permission  information and so on called header
       record.  The data of each file is stored in additional tar
       records directly after the header record of that file.

       tar  reports  the tar record number of every header record

   tar on tapes
       tar  writes  or reads its archive to or from tape in units
       of tar blocks.  As stated  above,  only  a  complete  tape
       block  may be transferred to/from tape.  To extract a spe­
       cific tar block from tape, one has to read an entire  tape
       block  into  a buffer and extract the specified tar record
       from the buffer manually.  If you would like to read a tar
       record with a given number, you have to know the number of
       the first tape block of the archive and the tar block size
       to compute the number of the tape block witch contains the
       tar record to read.  If the tar archive is the first  file
       on the tape, the tape block number is the equal to the tar
       block number.

       Example: A file with the tar record number  1234  (records
       start  with 0) may be found in a tape tar archive, written
       with a blocking factor of 20.  It may be found in the  tar
       block with the number
                       blk = (int) 1234/20 = (int) 61.7 = 61
       which  is  also the tape block number.  The requested file
       is within this tar block at the record offset
                       rec = 1234-(61*20) = 14
       in 512 byte units.

       If a current archive is not the first archive on the tape,
       then  the  number  of tape blocks of all previous archives
       has to be added to the block number computed above, to get
       the  current  tape  block  number.  The number of previous
       tape records should be obtained from DDS devices when  the
       tape is positioned at the beginning of the current archive
       (use mt-dds without arguments for example).

       Example: Assuming the archive in the above example  to  be
       the  second file on a tape, and the archive starts at tape
       block 20222.  Then we will find our file with  tar  record
       number 1234 in the tape block
                       tblk = 20222 + (int) 1234/20 = 20283
       on the tape.  The record offset inside the tape block will
       be the same as above.


       This program can only read records (tar  is  calling  them
       tape blocks) up to 32 kbytes due to the limitations of the
       Linux device driver.  The extracted archive is written  to
       stdout with a block size of 512 bytes.


       index  file,  I'm now able to restore a file of 1MB within
       one minute even if the tape  contains  more  than  2GB  of

       Thanks  to  Andreas  (Andreas_Bagge@h2.maus.de),  who  has
       written a nice manual  page  for  the  overloaded  version
       1.1.3  of  the  program dds2tar (I added too much features
       ... ) His manual page for dds2tar-1.1.3 gave me  the  idea
       how  to split the program dds2tar into the peaces dds2tar,
       dds2index and mt-dds.  Additionally his  manual  page  was
       the starting point for this page.

       Since  the version 2.2 has a very robust algorithm to read
       the index file and the ability of pattern matching, a  lot
       of options where obsolete and has been deleted. I tried to
       make dds2tar as simple I can.


       J"org Weule (weule@cs.uni-duesseldorf.de), Phone  +49  211
       751409.   This  software  is available at ftp.uni-duessel­
       dorf.de:/pub/unix/apollo             and              sun­

                               2.3                    dds2tar(1L)

An undefined database error occurred. SELECT distinct pages.pagepath,pages.pageid FROM pages, page2command WHERE pages.pageid = page2command.pageid AND commandid =


Looking for a "printer friendly" version?



Security Code
Security Code
Type Security Code

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!

Amazon Wish List

Did You Know?
You can help in many different ways.


Tell a Friend About Us

Bookmark and Share

Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.08 Seconds