Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fs(4)

dump(8)

restore(8)

dump(4)  —  File Formats

NAME

dumprestor, dumpdates − Incremental dump format

SYNOPSIS

#include <sys/types.h>
#include <ufs/inode.h>

DESCRIPTION

Tapes used by dump and restore contain:

A header record

Two groups of bit map records

A group of records describing directories

A group of records describing files

The format of the header record and of the first record of each description as given in the include file <dumprestor.h> is:

       #define NTREC           10
       #define TS_TAPE         1
       #define TS_INODE        2
       #define TS_BITS         3
       #define TS_ADDR         4
       #define TS_END          5
       #define TS_CLRI         6
       #define NFS_MAGIC       (int) 60012
       #define CHECKSUM        (int) 84446
       #define TP_BSIZE        1024
       #define TP_NINDIR       (TP_BSIZE/2)
       #define LBLSIZE         16
       #define NAMELEN         64
       struct  s_spcl {
               long            c_type;
               time_t          c_date;
               time_t          c_ddate;
               long            c_volume;
               daddr_t         c_tapea;
               ino_t           c_inumber;
               long            c_magic;
               long            c_checksum;
               struct          dinode          c_dinode;
               long            c_count;
               char            c_addr[TP_NINDIR];
               char            c_label[LBLSIZE];
               long            c_level;
               char            c_filesys[NAMELEN];
               char            c_dev[NAMELEN];
               char            c_host[NAMELEN];
               long            c_flags;
       } s_spcl;
       struct idates
       {
               char            id_name[NAME_MAX + 3];
               char            id_incno;
               time_t          id_ddate;
       };
       #define DUMPOUTFMT "%-16s %c %s"   /∗ for printf ∗/
                                       /∗ name, incno, ctime(date) ∗/
       #define DUMPINFMT  "%16s %c %[^00 /∗ inverse for scanf ∗/

NTREC is the number of TP_BSIZE-byte records in a physical tape block. 

The TS_ entries are used in the c_type field to indicate what sort of header this is.  The types and their meanings are as follows:

TS_TAPETape volume label. 

TS_INODEA file or directory follows.  The c_dinode field is a copy of the disk inode and contains bits telling what sort of file this is. 

TS_BITSA bit map follows.  This bit map has a one (1) bit for each inode that was dumped. 

TS_ADDRA subrecord of a file description.  See c_addr described in the next list. 

TS_ENDEnd of tape record. 

TS_CLRIA bit map follows.  This bit map contains a zero bit for all inodes that were empty on the file system when dumped. 

NFS_MAGIC
All header records have this number in c_magic.

CHECKSUMHeader records checksum to this value. 

The fields of the header structure are as follows:

c_typeThe type of the header. 

c_dateThe date of the dump. 

c_ddateThe date of the previous dump to the file system. 

c_volumeThe current volume number of the dump. 

c_tapeaThe current number of this (1024-byte) record. 

c_inumberThe number of the inode being dumped if this is of type TS_INODE. 

c_magicThis contains the value MAGIC above, truncated as needed. 

c_checksumThis contains whatever value is needed to make the record sum to CHECKSUM. 

c_dinodeThis is a copy of the inode as it appears on the file system.  For further information, see fs(4). 

c_countThe count of characters in c_addr.

c_addrAn array of characters describing the blocks of the dumped file.  A character is zero if the block associated with that character was not present on the file system; otherwise the character is nonzero.  If the block was not present on the file system, no block was dumped; the block will be restored as a hole in the file.  If there is not sufficient space in this record to describe all of the blocks in a file, TS_ADDR records will be scattered through the file, each one picking up where the last left off. 

c_labelThe label of the dump. 

c_levelThe level number of the dump. 

c_filesysThe name of the file system. 

c_devThe name of the device. 

c_hostThe name of the host. 

c_flagsAdditional information such as whether the dump uses the format tape header described here. 

Each volume except the last ends with a tapemark (read as an end of file).  The last volume ends with a TS_END record and then the tapemark. 

The structure idates describes an entry in the file /etc/dumpdates where dump history is kept.  The fields of the structure are:

id_nameThe dumped filesystem is ‘/dev/id_nam’. 

id_incnoThe level number of the dump tape.  For further information, see dump(8). 

id_ddateThe date of the incremental dump in system format.  For further information, see typesO∗(4). 

FILES

/etc/dumpdates

RELATED INFORMATION

fs(4), dump(8), restore(8)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026