DUMP(5)

NAME
dump, dumpdates - incremental dump format

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

DESCRIPTION

Tapes used by dump and restore(8) 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_BSIZE	1024
    #define NTREC	10
    #define HIGHDENSITYTREC	32
    #define CARTRIDGETREC	63
    #define TP_NINDIR	(TP_BSIZE/2)
    #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 OFS_MAGIC	(int)60011
    #define NFS_MAGIC	(int)60012
    #define CHECKSUM	(int)84446
    union u_spcl {
    	char dummy[TP_BSIZE];
    	struct	s_spcl {
    		int		c_type;
    		time_t		c_date;
    		time_t		c_ddate;
    		int		c_volume;
    		daddr_t		c_tapea;
    		ino_t		c_inumber;
    		int		c_magic;
    		int		c_checksum;
    		struct		dinode		c_dinode;
    		int		c_count;
    		char		c_addr[TP_NINDIR];
    	} s_spcl;
    } u_spcl;
    #define spcl u_spcl.s_spcl

    #define	DUMPOUTFMT	"%-16s %c %s"		/* for printf */
    						/* name, incno, ctime(date) */
    #define	DUMPINFMT	"%16s %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 dump.

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 two.

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; see fs(5).

c_count
    The count of characters in c_addr.

c_addr
    An 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 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 dump(8).

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

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.

FILES
/etc/dumpdates

SEE ALSO
fs(5), types(5), dump(8), restore(8)