restore



RESTORE(8)                System management commands                RESTORE(8)




NAME

       restore - restore files or file systems from backups made with dump


SYNOPSIS

       restore  -C  [-cdklMvVy]  [-b  blocksize] [-D filesystem] [-f file] [-F
       script] [-L limit] [-s fileno] [-T directory]

       restore -i [-acdhklmMNouvVy] [-A file] [-b  blocksize]  [-f  file]  [-F
       script] [-Q file] [-s fileno] [-T directory]

       restore -P file [-acdhklmMNuvVy] [-A file] [-b blocksize] [-f file] [-F
       script] [-s fileno] [-T directory] [-X filelist] [ file ... ]

       restore -R [-cdklMNuvVy] [-b  blocksize]  [-f  file]  [-F  script]  [-s
       fileno] [-T directory]

       restore  -r  [-cdklMNuvVy]  [-b  blocksize]  [-f  file] [-F script] [-s
       fileno] [-T directory]

       restore -t [-cdhklMNuvVy]  [-A  file]  [-b  blocksize]  [-f  file]  [-F
       script] [-Q file] [-s fileno] [-T directory] [-X filelist] [ file ... ]

       restore -x [-adchklmMNouvVy] [-A file] [-b  blocksize]  [-f  file]  [-F
       script] [-Q file] [-s fileno] [-T directory] [-X filelist] [ file ... ]


DESCRIPTION

       The restore command performs the inverse function of dump(8).   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.  Restore works across a net-
       work; to do this see the -f flag described below.  Other  arguments  to
       the  command  are file or directory names specifying the files that are
       to be restored. Unless the  -h  flag  is  specified  (see  below),  the
       appearance  of  a  directory name refers to the files and (recursively)
       subdirectories of that directory.

       Exactly one of the following flags is required:

       -C     This mode allows comparison of files from a dump.  Restore reads
              the  backup  and compares its contents with files present on the
              disk. It first changes its working directory to the root of  the
              filesystem  that was dumped and compares the tape with the files
              in its new current directory. See also  the  -L  flag  described
              below.

       -i     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.

              add [arg]
                     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 descendents 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 ls.

              cd arg Change  the  current  working  directory to the specified
                     argument.

              delete [arg]
                     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  descendents  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 direc-
                     tory to the extraction list and then delete  those  files
                     that are not needed.

              extract
                     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 f ew files is to
                     start with the last volume and  work  towards  the  first
                     volume.

              help   List a summary of the available commands.

              ls [arg]
                     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.

              pwd    Print the full pathname of the current working directory.

              quit   Restore immediately exits, even if the extraction list is
                     not empty.

              setmodes
                     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 prematurely aborted.

              verbose
                     The sense of the -v flag is toggled. When set,  the  ver-
                     bose 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.

       -P file
              Restore creates a new Quick File Access file file from an exist-
              ing dump file without restoring its contents.

       -R     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.

       -r     Restore (rebuild) a file system. The target file  system  should
              be made pristine with mke2fs(8), mounted, and the user cd’d 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 interac-
              tive file extraction and can be detrimental to one’s health (not
              to mention the disk) if not used carefully. An example:

                     mke2fs /dev/sda1

                     mount /dev/sda1 /mnt

                     cd /mnt

                     restore rf /dev/st0

              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 mke2fs(8) and dump(8), may be  used
              to modify file system parameters such as size or block size.

       -t     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 dumpdir(8) program.  See
              also the -X option below.

       -x     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 possi-
              ble). 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  specified.   See
              also the -X option below.


OPTIONS

       The following additional options may be specified:

       -a     In  -i or -x mode, restore does ask the user for the volume num-
              ber on which the files to be extracted are supposed  to  be  (in
              order  to minimise the time by reading only the interesting vol-
              umes). The -a option disables this behaviour and reads  all  the
              volumes starting with 1. This option is useful when the operator
              does not know on which volume the  files  to  be  extracted  are
              and/or  when  he  prefers the longer unattended mode rather than
              the shorter interactive mode.

       -A archive_file
              Read the table of contents  from  archive_file  instead  of  the
              media.  This  option can be used in combination with the -t, -i,
              or -x options, making it possible to check whether files are  on
              the media without having to mount the media.

       -b blocksize
              The number of kilobytes per dump record. If the -b option is not
              specified, restore tries  to  determine  the  media  block  size
              dynamically.

       -c     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.

       -d     The -d (debug) flag causes restore to print debug information.

       -D filesystem
              The -D flag allows the user to specify the filesystem name  when
              using restore with the -C option to check the backup.

       -f file
              Read  the  backup  from  file; file may be a special device file
              like /dev/st0 (a tape drive), /dev/sda1 (a disk drive), an ordi-
              nary 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 rmt(8).

       -F script
              Run  script  at  the beginning of each tape. The device name and
              the current volume number are passed on the  command  line.  The
              script  must  return 0 if restore should continue without asking
              the user to change the tape, 1 if restore  should  continue  but
              ask  the user to change the tape. Any other exit code will cause
              restore to abort. For security reasons, restore reverts back  to
              the  real  user  ID  and  the  real  group ID before running the
              script.

       -h     Extract the actual directory, rather than the files that it ref-
              erences. This prevents hierarchical restoration of complete sub-
              trees from the dump.

       -k     Use Kerberos authentication  when  contacting  the  remote  tape
              server. (Only available if this options was enabled when restore
              was compiled.)

       -l     When doing remote restores, assume the remote file is a  regular
              file  (instead  of  a tape device). If you’re restoring a remote
              compressed file, you will need to specify this option or restore
              will fail to access it correctly.

       -L limit
              The  -L flag allows the user to specify a maximal number of mis-
              compares when using restore with the  -C  option  to  check  the
              backup.  If  this  limit  is reached, restore will abort with an
              error message. A value of 0 (the  default  value)  disables  the
              check.

       -m     Extract  by inode numbers rather than by file name. This is use-
              ful if only a few files are being extracted, and  one  wants  to
              avoid regenerating the complete pathname to the file.

       -M     Enables  the  multi-volume feature (for reading dumps made using
              the -M option of dump). The name specified with -f is treated as
              a prefix and restore tries to read in sequence from <prefix>001,
              <prefix>002 etc.

       -N     The -N flag causes  restore  to  perform  a  full  execution  as
              requested  by one of -i, -R, -r, t or x command without actually
              writing any file on disk.

       -o     The -o flag causes restore to automatically restore the  current
              directory  permissions without asking the operator whether to do
              so in one of -i or -x modes.

       -Q file
              Use the file file in order to read tape position as stored using
              the dump Quick File Access mode, in one of -i, -x or -t mode.

              It is recommended to set up the st driver to return logical tape
              positions rather than physical before calling dump/restore  with
              parameter  -Q.  Since not all tape devices support physical tape
              positions those tape devices return an error during dump/restore
              when  the  st  driver  is  set  to the default physical setting.
              Please see the st(4) man page, option MTSETDRVBUFFER  ,  or  the
              mt(1)  man page, on how to set the driver to return logical tape
              positions.

              Before calling restore with parameter -Q, always make  sure  the
              st  driver  is set to return the same type of tape position used
              during the call to dump.  Otherwise restore may be confused.

              This option can be used when  restoring  from  local  or  remote
              tapes (see above) or from local or remote files.

       -s fileno
              Read  from  the specified fileno on a multi-file tape. File num-
              bering starts at 1.

       -T directory
              The -T flag allows the user to specify a directory  to  use  for
              the storage of temporary files. The default value is /tmp.  This
              flag is most useful when restoring  files  after  having  booted
              from  a  floppy. There might be little or no space on the floppy
              filesystem, but another source of space might exist.

       -u     When creating certain types of files,  restore  may  generate  a
              warning   diagnostic   if  they  already  exist  in  the  target
              directory. To prevent this, the -u (unlink) flag causes  restore
              to remove old entries before attempting to create new ones.

       -v     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.

       -V     Enables reading multi-volume non-tape mediums like CDROMs.

       -X filelist
              Read  list of files to be listed or extracted from the text file
              filelist in addition to those specified  on  the  command  line.
              This  can be used in conjunction with the -t or -x commands. The
              file filelist should contain file names separated  by  newlines.
              filelist may be an ordinary file or - (the standard input).

       -y     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  con-
              tinue.

       (The 4.3BSD option syntax is implemented for backward compatibility but
       is not documented here.)


DIAGNOSTICS

       Complains if it gets a read error. If y has been specified, or the user
       responds y, restore will attempt to continue the restore.

       If  a  backup  was  made  using more than one tape volume, restore will
       notify the user when it is time to mount the next volume. If the -x  or
       -i flag has been specified, restore 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 restore.
       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 system.

       expected next file <inumber>, got <inumber>
              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 <inumber>

       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.


EXIT STATUS

       Restore exits with zero status on success. Tape  errors  are  indicated
       with an exit code of 1.

       When  doing  a comparison of files from a dump, an exit code of 2 indi-
       cates that some files were modified or deleted since the dump was made.


ENVIRONMENT

       If  the  following  environment  variable exists it will be utilized by
       restore:

       TAPE   If no -f option was specified, restore will use the device spec-
              ified  via  TAPE  as  the  dump device.  TAPE may be of the form
              tapename, host:tapename or user@host:tapename.

       TMPDIR The directory given in TMPDIR will be used instead  of  /tmp  to
              store temporary files.

       RMT    The environment variable RMT will be used to determine the path-
              name of the remote rmt(8) program.

       RSH    Restore uses the contents of this variable to determine the name
              of  the remote shell command to use when doing a network restore
              (rsh, ssh etc.). If this variable is not set,  rcmd(3)  will  be
              used, but only root will be able to do a network restore.


FILES

       /dev/st0
              the default tape drive

       /tmp/rstdir*
              file containing directories on the tape

       /tmp/rstmode*
              owner, mode, and time stamps for directories

       ./restoresymtable
              information passed between incremental restores


SEE ALSO

       dump(8), mount(8), mke2fs(8), rmt(8)


BUGS

       Restore  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 restore  runs
       in user code, 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* and /tmp/rstmode* are generated with a
       unique name based on the date of the  dump  and  the  process  ID  (see
       mktemp(3)),  except  when  -r  or  -R is used. Because -R allows you to
       restart a -r 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  differ-
       ent  dumps  started at the same time, and separate operations shouldn’t
       conflict with each other.

       To do a network restore, you have to run  restore  as  root  or  use  a
       remote shell replacement (see RSH variable).  This is due to the previ-
       ous security history of dump and restore.  ( restore is written  to  be
       setuid  root,  but we are not certain all bugs are gone from the code -
       run setuid at your own risk.)

       At the end of restores in -i or -x modes (unless -o option is in  use),
       restore  will  ask  the  operator whether to set the permissions on the
       current directory. If the operator confirms this  action,  the  permis-
       sions on the directory from where restore was launched will be replaced
       by the permissions on the dumped root inode. Although this behaviour is
       not  really a bug, it has proven itself to be confusing for many users,
       so it is recommended to answer ’no’, unless you’re  performing  a  full
       restore and you do want to restore the permissions on ’/’.

       It  should  be  underlined that because it runs in user code, restore ,
       when run with the -C option, sees the  files  as  the  kernel  presents
       them, whereas dump sees all the files on a given filesystem. In partic-
       ular, this can cause some confusion when comparing a dumped  filesystem
       a part of which is hidden by a filesystem mounted on top of it.


AUTHOR

       The  dump/restore  backup  suite  was ported to Linux’s Second Extended
       File System by Remy Card <card@Linux.EU.Org>. He maintained the initial
       versions of dump (up and including 0.4b4, released in january 1997).

       Starting    with   0.4b5,   the   new   maintainer   is   Stelian   Pop
       <stelian@popies.net>.


AVAILABILITY

       The dump/restore backup suite is  available  from  <http://dump.source-
       forge.net>


HISTORY

       The restore command appeared in 4.2BSD.



BSD                      version 0.4b40 of May 2, 2005              RESTORE(8)

Man(1) output converted with man2html