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 NTREC   	10
#define MLEN    	16
#define MSIZ    	4096
#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 MAGIC   	(int) 60011
#define CHECKSUM	(int) 84446
struct	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[BSIZE];
} spcl;
struct	idates {
	char		id_name[16];
	char		id_incno;
	time_t		id_ddate;
};
#define	DUMPOUTFMT	"%-16s %c %s"		/* for printf */
						/* name, incno, ctime(date) */
#define	DUMPINFMT	"%16s %c %[^\n]\n"	/* inverse for scanf */

NTREC is the number of 1024 byte records in a physical tape block. MLEN is the number of bits in a bit map word. MSIZ is the number of bit map words.

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.
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 structure idates describes an entry in the file /etc/dumpdates where dump history is kept. The fields of the structure are:

id_name
    The dumped filesystem is `/dev/id_nam'.
id_incno
    The level number of the dump tape; see dump(8).
id_ddate
    The date of the incremental dump in system format see types(5).

FILES
/etc/dumpdates

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