— restore files or file systems from
backups made with dump
command performs the inverse function
. A full backup of a
file system may be restored and subsequent incremental backups layered on top
of it. Single files and directory subtrees may be restored from full or
partial backups. Other arguments to the command are file or directory names
specifying the files that are to be restored. Unless the
flag is specified (see below), the appearance
of a directory name refers to the files and (recursively) subdirectories of
works across networks, replacing the
functionality of the old rrestore
may still be invoked as
). See the
option for more on reading backups from remote
Exactly one of the following flags is required:
- This mode allows interactive restoration of files from a
dump. After reading in the directory information from the dump,
restore provides a shell like interface that
allows the user to move around the directory tree selecting files to be
extracted. The available commands are given below; for those commands that
require an argument, the default is the current directory.
- The current directory or specified argument is added to
the list of files to be extracted. If a directory is specified, then
it and all its descendants are added to the extraction list (unless
the -h flag is specified on the command
line). Files that are on the extraction list are prepended with a
“*” when they are listed by
- Change the current working directory to the specified
- The current directory or specified argument is deleted
from the list of files to be extracted. If a directory is specified,
then it and all its descendants are deleted from the extraction list
(unless the -h flag is specified on the
command line). The most expedient way to extract most of the files
from a directory is to add the directory to the extraction list and
then delete those files that are not needed.
- All files on the extraction list are extracted from the
dump. restore will ask which volume the
user wishes to mount. The fastest way to extract a few files is to
start with the last volume and work towards the first volume.
- List a summary of the available commands.
- List the current or specified directory. Entries that
are directories are appended with a “/”. Entries that
have been marked for extraction are prepended with a
“*”. If the verbose flag is set, the inode number of
each entry is also listed.
- Print the full pathname of the current working
- Restore immediately exits, even if the extraction list
is not empty.
- All directories that have been added to the extraction
list have their owner, modes, and times set; nothing is extracted from
the dump. This is useful for cleaning up after a restore has been
- The sense of the -v flag
is toggled. When set, the verbose flag causes the
ls command to list the inode numbers of
all entries. It also causes restore to
print out information about each file as it is extracted.
- List dump header information.
- restore requests a particular
tape of a multi-volume set on which to restart a full restore (see the
-r flag below). This is useful if the restore
has been interrupted.
- Restore (rebuild) a file system. The target file system
should be made pristine with
newfs(8), mounted, and the
user changed working directory into the pristine file system before
starting the restoration of the initial level 0 backup. If the level 0
restores successfully, the -r flag may be
used to restore any necessary incremental backups on top of the level 0.
The -r flag precludes an interactive file
extraction and can be detrimental to one's health (not to mention the
disk) if not used carefully. An example of correct usage:
Note that restore leaves a file
restoresymtable in the root directory to pass
information between incremental restore passes. This file should be
removed when the last incremental has been restored.
restore, in conjunction with
dump(8), may be used to modify
file system parameters such as size or block size.
# newfs /dev/rsd0g
# mount /dev/sd0g /mnt
# cd /mnt
# restore rf /dev/rst0
- The names of the specified files are listed if they occur
on the backup. If no file argument is given, the root directory is listed,
which results in the entire content of the backup being listed, unless the
-h flag has been specified. Note that the
-t flag replaces the function of the old
- The named files are read from the given media. If a named
file matches a directory whose contents are on the backup and the
-h flag is not specified, the directory is
recursively extracted. The owner, modification time, and mode are restored
(if possible). If no file argument is given, the root directory is
extracted, which results in the entire content of the backup being
extracted, unless the -h flag has been
The following additional options may be specified:
- The number of kilobytes per dump record. If the
-b option is not specified,
restore tries to determine the block size
- Normally, restore will try to
determine dynamically whether the dump was made from an old (pre-4.4) or
new format file system. The -c flag disables
this check, and only allows reading a dump in the old format.
- Read the backup from file;
file may be a special device file like
/dev/rst0 (a tape drive),
/dev/rsd1c (a disk drive), an ordinary file,
or “-” (the standard input). If
the name of the file is of the form “host:file” or
“user@host:file”, restore reads
from the named file on the remote host using
- Extract the actual directory, rather than the files that it
references. This prevents hierarchical restoration of complete subtrees
from the dump.
- Extract by inode numbers rather than by file name. This is
useful if only a few files are being extracted, and one wants to avoid
regenerating the complete pathname to the file.
- Read from the specified
fileno on a multi-file tape. File
numbering starts at 1.
- Normally restore does its work
silently. The -v (verbose) flag causes it to
type the name of each file it treats preceded by its file type.
- Do not ask the user whether to abort the restore in the
event of an error. Always try to skip over the bad block(s) and
If the following environment variable exists it will be utilized by
- The directory given in
TMPDIR will be used instead of
/tmp to store temporary files. Refer to
environ(7) for more
- Default tape device to use instead of
- the default tape drive
- raw SCSI tape interface
- file containing directories on the tape
- owner, mode, and time stamps for directories
- information passed between incremental restores
Complains if it gets a read error. If -y
specified, or the user responds “y”,
will attempt to continue the restore.
If a backup was made using more than one tape volume,
will notify the user when it is time to
mount the next volume. If the -x
flag has been specified,
will also ask which volume the user
wishes to mount. The fastest way to extract a few files is to start with the
last volume, and work towards the first volume.
There are numerous consistency checks that can be listed by
. Most checks are self-explanatory or can
“never happen”. Common errors are given below.
- Converting to new file system format
- A dump tape created from the old file system has been
loaded. It is automatically converted to the new file system format.
- <filename>: not found on tape
- The specified file name was listed in the tape directory,
but was not found on the tape. This is caused by tape read errors while
looking for the file, and from using a dump tape created on an active file
- expected next file <inumber>, got
- A file that was not listed in the directory showed up. This
can occur when using a dump created on an active file system.
- Incremental dump too low
- When doing an incremental restore, a dump that was written
before the previous incremental dump, or that has too low an incremental
level has been loaded.
- Incremental dump too high
- When doing an incremental restore, a dump that does not
begin its coverage where the previous incremental dump left off, or that
has too high an incremental level has been loaded.
- Tape read error while restoring <filename>
- Tape read error while skipping over inode
- Tape read error while trying to resynchronize
- A tape (or other media) read error has occurred. If a file
name is specified, its contents are probably partially wrong. If an inode
is being skipped or the tape is trying to resynchronize, no extracted
files have been corrupted, though files may not be found on the tape.
- resync restore, skipped <num> blocks
- After a dump read error,
restore may have to resynchronize itself.
This message lists the number of blocks that were skipped over.
command appeared in
option syntax is implemented for backward
compatibility but is not documented here.
can get confused when doing incremental
restores from dumps that were made on active file systems.
A level 0 dump must be done after a full restore. Because
runs in user mode, it has no control over
inode allocation; thus a full dump must be done to get a new set of
directories reflecting the new inode numbering, even though the content of the
files is unchanged.
The temporary files /tmp/rstdir*
are generated with a unique name
based on the date of the dump and the process ID (see
), except when
allows you to restart a
operation that may have been interrupted, the
temporary files should be the same across different processes. In all other
cases, the files are unique because it is possible to have two different dumps
started at the same time, and separate operations shouldn't conflict with each