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