Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dumpdates(4) — SunOS 5.4

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_BSIZE 1024
#define NTREC 10
#define HIGHDENSITYTREC 32
#define CARTRIDGETREC 63
#define TP_NINDIR (TP_BSIZE/2)
#define TP_NINOS (TP_NINDIR / sizeop (long))
#define LBLSIZE 16
#define NAMELEN 64
#define NFS_MAGIC (int)60012
#define CHECKSUM (int)84446

union u_data {

char  s_addrs[TP_NINDIR];
long  s_inos[TP_NINOS];

union u_spcl {

char  dummy[TP_BSIZE];
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;
union u_data c_data;
char c_label[LBLSIZE];
long c_level;
char c_filesys[NAMELEN];
char c_dev[NAMELEN];
char c_host[NAMELEN];
long c_flags;
long c_firstrec;
long c_spare[32];

} s_spcl;

} u_spcl;

#define spcl u_spcl.s_spcl
#define c_addr c_data.s_addrs
#define c_inos cdata.s_inos

#define TS_TAPE 1
#define TS_INODE 2
#define TS_ADDR 4
#define TS_BITS 3
#define TS_CLRI 6
#define TS_END 5
#define TS_EOM 7
#define DR_NEWHEADER 1
#define DR_INODEINFO 2
#define DR_REDUMP 4
#define DR_TRUELIC 8
#define DUMPOUTFMT "%-24s %c %s"
#define DUMPINFMT "%24s %c %[^\n]\n"

The constants are described as follows:

TP_BSIZE Size of file blocks on the dump tapes.  Note that 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. 

TP_NINOS The maximum number of volumes on a tape.  Used for tape labeling in hsmdump and hsmrestore (available with Online:Backup 2.0 optional software package SUNWhsm). 

LBLSIZE The maximum size of a volume label.  Used for tape labeling in hsmdump and hsmrestore (available with Online:Backup 2.0 optional software package SUNWhsm). 

NAMELEN The maximum size of a host’s name. 

NFS_MAGIC
All header records have this number in c_magic. 

CHECKSUM Header records checksum to this value. 

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_ADDR A subrecord of a file description.  See s_addrs below. 

TS_BITS A bit map follows.  This bit map has a one bit for each inode that was dumped. 

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. 

TS_END End of tape record. 

TS_EOM floppy EOM — restore compat with old dump

The flags are described as follows:

DR_NEWHEADER
New format tape header.

DR_INFODEINFO
Header contains starting inode info.

DR_REDUMP
Dump contains recopies of active files.

DR_TRUEINC
Dump is a "true incremental".

DUMPOUTFMT
Name, incon, and ctime (date) for printf.

DUMPINFMT Inverse for scanf. 

The fields of the header structure are as follows:

s_addrs 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 lsystem, no block was dumped; the block will be stored as a hole in the file.  If there is not sufficient space in this record to describe all the blocks in a file, TS_ADDR records will be scattered through the file, each one picking up where the last left off

s_inos The starting inodes on tape. 

c_type The type of the record. 

c_date The date of the previous dump. 

c_ddate The date of this dump. 

c_volume The current volume number of the dump. 

c_tapea The logical block of this 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 s_addrs. 

u_data c_data
The union of either u_data c_data The union of either s_addrs or s_inos. 

c_label Label for this dump. 

c_level Level of this dump. 

c_filesys Name of dumped file system. 

c_dev Name of dumped service. 

c_host Name of dumped host. 

c_flags Additional information. 

c_firstrec First record on volume. 

c_spare Reserved for future uses. 

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)

SunOS 5.4  —  Last change: 7 Jan 1994

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