How the ufsdump Command Works
The ufsdump command makes two passes when it backs up a file system.
On the first pass, this command scans the raw device file for
the file system and builds a table of directories and files in memory.
Then, this command writes the table to the backup media. In the second
pass, the ufsdump command goes through the inodes in numerical order, reading the
file contents and writing the data to the backup media.
Determining Device Characteristics
The ufsdump command needs to know only an appropriate tape block size and
how to detect the end of media.
Detecting the End of Media
The ufsdump command writes a sequence of fixed-size records. When the ufsdump command
receives notification that a record was only partially written, it assumes that it
has reached the physical end of the media. This method works for most
devices. If a device is not able to notify the ufsdump command
that only a partial record has been written, a media error occurs as
the ufsdump command tries to write another record.
Note - DAT devices and 8-mm tape devices detect end-of-media. Cartridge tape devices and 1/2-inch
tape devices do not detect end-of-media.
The ufsdump command automatically detects the end-of-media for most devices. Therefore, you do
not usually need to use the -c, -d, -s, and -t options
to perform multivolume backups.
You need to use the end-of-media options when the ufsdump command does not
understand the way the device detects the end-of-media.
To ensure compatibility with the restore command, the size option can still force
the ufsdump command to go to the next tape or diskette before reaching
the end of the current tape or diskette.
Copying Data With the ufsdump Command
The ufsdump command copies data only from the raw disk slice. If the
file system is still active, any data in memory buffers is probably
not copied. The backup done by the ufsdump command does not copy free
blocks, nor does it make an image of the disk slice. If symbolic
links point to files on other slices, the link itself is copied.
Purpose of the /etc/dumpdates File
The ufsdump command, when used with the -u option, maintains and updates the
/etc/dumpdates file. Each line in the /etc/dumpdates file shows the following information:
The file system backed up
The dump level of the last backup
The day, date, and time of the backup
For example:
# cat /etc/dumpdates
/dev/rdsk/c0t0d0s0 0 Wed Jul 28 16:13:52 2004
/dev/rdsk/c0t0d0s7 0 Thu Jul 29 10:36:13 2004
/dev/rdsk/c0t0d0s7 9 Thu Jul 29 10:37:12 2004
When you do an incremental backup, the ufsdump command checks the /etc/dumpdates file
to find the date of the most recent backup of the next
lower dump level. Then, this command copies to the media all files that
were modified since the date of that lower-level backup. After the backup is
complete, a new information line, which describes the backup you just completed, replaces
the information line for the previous backup at that level.
Use the /etc/dumpdates file to verify that backups are being done. This verification
is particularly important if you are having equipment problems. If a backup cannot
be completed because of equipment failure, the backup is not recorded in the
/etc/dumpdates file.
If you need to restore an entire disk, check the /etc/dumpdates file for
a list of the most recent dates and levels of backups so
that you can determine which tapes you need to restore the entire file
system.
Note - The /etc/dumpdates file is a text file that can be edited. However, edit
it only at your own risk. If you make changes to the
file that do not match your archive tapes, you might be unable to
find the tapes (or files) you need.
Backup Device (dump-file) Argument
The dump-file argument (to the -f option) specifies the destination of the backup.
The destination can be one of the following:
Local tape drive
Local diskette drive
Remote tape drive
Remote diskette drive
Standard output
Use this argument when the destination is not the default local tape
drive /dev/rmt/0. If you use the -f option, then you must specify a
value for the dump-file argument.
Note - The dump-file argument can also point to a file on a local disk
or on a remote disk. If done by mistake, this usage can
fill up a file system.
Local Tape or Diskette Drive
Typically, the dump-file argument specifies a raw device file for a tape device
or diskette. When the ufsdump command writes to an output device, it creates
a single backup file that might span multiple tapes or diskettes.
You specify a tape device or a diskette on your system by
using a device abbreviation. The first device is always 0. For example, if
you have a SCSI tape controller and one QIC-24 tape drive that uses
medium-density formatting, use this device name:
/dev/rmt/0m
When you specify a tape device name, you can also type the
letter “n” at the end of the name to indicate that the tape
drive should not rewind after the backup is completed. For example:
/dev/rmt/0mn
Use the “no-rewind” option if you want to put more than one
file onto the tape. If you run out of space during a backup,
the tape does not rewind before the ufsdump command asks for a new
tape. For a complete description of device-naming conventions, see Backup Device Names.
Remote Tape or Diskette Drive
You specify a remote tape device or a remote diskette by using
the syntax host:device. The ufsdump command writes to the remote device when
superuser on the local system has access to the remote system. If you
usually run the ufsdump command as superuser, the name of the local system
must be included in the /.rhosts file on the remote system. If
you specify the device as user@host:device, the ufsdump command tries to access the
device on the remote system as the specified user. In this case, the
specified user must be included in the /.rhosts file on the remote
system.
Use the naming convention for the device that matches the operating system
for the system on which the device resides, not the system from which
you run the ufsdump command. If the drive is on a system
that is running a previous SunOS release (for example, 4.1.1), use the SunOS
4.1 device name (for example, /dev/rst0). If the system is running Solaris
software, use the SunOS 5.9 convention (for example, /dev/rmt/0).
Using Standard Output With the ufsdump Command
When you specify a dash (-) as the dump-file argument, the ufsdump
command writes to standard output.
Note - The -v option (verify) does not work when the dump-file argument is
standard output.
You can use the ufsdump and ufsrestore commands in a pipeline to copy
a file system by writing to standard output with the ufsdump command
and reading from standard input with the ufsrestore command. For example:
# ufsdump 0f - /dev/rdsk/c0t0d0s7 | (cd /home; ufsrestore xf -)
Specifying Files to Back Up
You must always include filenames as the last argument on the command line.
This argument specifies the source or contents of the backup.
For a file system, specify the raw device file as follows:
/dev/rdsk/c0t0d0s7
You can specify the file system by its mount point directory (for
example, /export/home), as long as an entry for it exists in the
/etc/vfstab file.
For a complete description of device-naming conventions, see Backup Device Names.
For individual files or directories, type one or more names separated by
spaces.
Note - When you use the ufsdump command to back up one or more directories
or files (rather than a complete file system), a level 0 backup
is done. Incremental backups do not apply.
Specifying Tape Characteristics
If you do not specify any tape characteristics, the ufsdump command uses a
set of defaults. You can specify the tape cartridge (c), density (d), size
(s), and number of tracks (t). Note that you can specify the options
in any order, as long as the arguments that follow match the order
of the options.
Limitations of the ufsdump Command
The ufsdump command cannot do the following:
Automatically calculate the number of tapes or diskettes that are needed for backing up file systems. You can use the dry run mode (S option) to determine how much space is needed before actually backing up file systems.
Provide built-in error checking to minimize problems when it backs up an active file system.
Back up files that are remotely mounted from a server. Files on the server must be backed up on the server itself. Users are denied permission to run the ufsdump command on files they own that are located on a server.