Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dumpdates(4) — SunOS 5.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ufsdump(1M)

ufsrestore(1M)

ctime(3C)

printf(3S)

scanf(3S)

types(5)

ufsdump(4)

NAME

ufsdump, dumpdates − incremental dump format

SYNOPSIS

#include <sys/types.h>
#include <sys/inode.h>
#include <protocols/dumprestore.h>

/etc/dumpdates

DESCRIPTION

Tapes used by ufsdump(1M) and ufsrestore(1M) 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 <protocols/dumprestore.h> is:

#define TP_BSIZE1024
#define NTREC10
#define HIGHDENSITYTREC 32
#define CARTRIDGETREC63
#define TP_NINDIR(TP_BSIZE/2)
 #define TS_TAPE1
#define TS_INODE2
#define TS_BITS3
#define TS_ADDR4
#define TS_END5
#define TS_CLRI6
#define OFS_MAGIC(int)60011
#define NFS_MAGIC(int)60012
#define CHECKSUM(int)84446
union u_spcl {
char dummy[TP_BSIZE];
struct s_spcl {
        intc_type;
        time_tc_date;
        time_tc_ddate;
        intc_volume;
        daddr_tc_tapea;
        ino_tc_inumber;
        intc_magic;
        intc_checksum;
        struct dinodec_dinode;
        intc_count;
        charc_addr[TP_NINDIR];
} s_spcl;
} u_spcl;
 #define spcl u_spcl.s_spcl
 
#defineDUMPOUTFMT "%-16s %c %s" /∗ for printf ∗/
/∗ name, incno, ctime(date) ∗/
#defineDUMPINFMT "%s %c %[^\n]\n" /∗ inverse for scanf ∗/

TP_BSIZE Size of file blocks on the dump tapes.  Note: TP_BSIZE must be a multiple of DEV_BSIZE. 

NTREC Default number of TP_BSIZE byte records in a physical tape block, changeable by the b option to ufsdump(1M). 

HIGHDENSITYNTREC
Default number of TP_BSIZE byte records in a physical tape block on 6250 BPI or higher density tapes. 

CARTRIDGETREC
Default number of TP_BSIZE records in a physical tape block on cartridge tapes. 

TP_NINDIR Number of indirect pointers in a TS_INODE or TS_ADDR record.  It must be a power of 2. 

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_TAPE Tape volume label

TS_INODE A 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_BITS A bit map follows.  This bit map has a one bit for each inode that was dumped. 

TS_ADDR A subrecord of a file description.  See c_addr below. 

TS_END End of tape record. 

TS_CLRI A 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. 

CHECKSUM Header records checksum to this value. 

The fields of the header structure are as follows:

c_type The type of the header. 

c_date The date the dump was taken. 

c_ddate The date the file system was dumped from. 

c_volume The current volume number of the dump. 

c_tapea The current number of this (1024-byte) record. 

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

c_magic This contains the value MAGIC above, truncated as needed. 

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

c_dinode This is a copy of the inode as it appears on the file system. 

c_count The count of bytes in c_addr. 

c_addr An array of bytes describing the blocks of the dumped file.  A byte is zero if the block associated with that byte was not present on the file system, otherwise the byte is non-zero.  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. 

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 dump history is kept in the file /etc/dumpdates.  It is an ASCII file with three fields separated by white space:

The name of the device on which the dumped file system resides. 

The level number of the dump tape; see ufsdump(1M). 

The date of the incremental dump in the format generated by ctime(3C). 

DUMPOUTFMT is the format to use when using printf(3S) to write an entry to /etc/dumpdates; DUMPINFMT is the format to use when using scanf(3S) to read an entry from /etc/dumpdates. 

SEE ALSO

ufsdump(1M), ufsrestore(1M), ctime(3C), printf(3S), scanf(3S), types(5)

Sun Microsystems  —  Last change: 13 Oct 1991

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