Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
File Formatsufsdump(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 HIGHDENSITYTREC32
#define CARTRIDGETREC63
#define TP_NINDIR(TP_BSIZE/2)
#define TP_NINOS (TP_NINDIR / sizeop (long))
#define LBLSIZE16
#define NAMELEN64
#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;

longc_type;
time_tc_date;
time_tc_ddate;
longc_volume;
daddr_tc_tapea;
ino_tc_inumber;
longc_magic;
longc_checksum;
struct dinodec_dinode;
longc_count;
unionu_data c_data;
charc_label[LBLSIZE];
longc_level;
charc_filesys[NAMELEN];
charc_dev[NAMELEN];
charc_host[NAMELEN];
longc_flags;
longc_firstrec;
longc_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_TAPE1
#define TS_INODE2
#define TS_ADDR4
#define TS_BITS3
#define TS_CLRI6
#define TS_END5
#define TS_EOM7
#define DR_NEWHEADER1
#define DR_INODEINFO2
#define DR_REDUMP4
#define DR_TRUELIC8
#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(3C) to write an entry to /etc/dumpdates; DUMPINFMT is the format to use when using scanf(3C) to read an entry from /etc/dumpdates.

ATTRIBUTES

 

See attributes(5) for a description of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
Stability LevelUnstable

SEE ALSO

 

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


SunOS 5.9Go To TopLast Changed 7 Jan 1994

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.