]> git.wh0rd.org - dump.git/blob - restore/restore.8.in
Added -a flag to restore (automatic walk through volumes)
[dump.git] / restore / restore.8.in
1 .\" Copyright (c) 1985, 1991, 1993
2 .\" The Regents of the University of California. All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\" must display the following acknowledgement:
14 .\" This product includes software developed by the University of
15 .\" California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\" may be used to endorse or promote products derived from this software
18 .\" without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\" $Id: restore.8.in,v 1.22 2002/01/16 10:29:26 stelian Exp $
33 .\"
34 .Dd __DATE__
35 .Dt RESTORE 8
36 .Os "restore __VERSION__"
37 .Sh NAME
38 .Nm restore
39 .Nd "restore files or file systems from backups made with dump"
40 .Sh SYNOPSIS
41 .Nm restore
42 .Fl C
43 .Op Fl cklMvVy
44 .Op Fl b Ar blocksize
45 .Op Fl D Ar filesystem
46 .Op Fl f Ar file
47 .Op Fl F Ar script
48 .Op Fl L Ar limit
49 .Op Fl s Ar fileno
50 .Op Fl T Ar directory
51 .Nm restore
52 .Fl i
53 .Op Fl achklmMNuvVy
54 .Op Fl b Ar blocksize
55 .Op Fl f Ar file
56 .Op Fl F Ar script
57 .Op Fl Q Ar file
58 .Op Fl s Ar fileno
59 .Op Fl T Ar directory
60 .Nm restore
61 .Fl R
62 .Op Fl cklMNuvVy
63 .Op Fl b Ar blocksize
64 .Op Fl f Ar file
65 .Op Fl F Ar script
66 .Op Fl s Ar fileno
67 .Op Fl T Ar directory
68 .Nm restore
69 .Fl r
70 .Op Fl cklMNuvVy
71 .Op Fl b Ar blocksize
72 .Op Fl f Ar file
73 .Op Fl F Ar script
74 .Op Fl s Ar fileno
75 .Op Fl T Ar directory
76 .Nm restore
77 .Fl t
78 .Op Fl chklMNuvVy
79 .Op Fl b Ar blocksize
80 .Op Fl f Ar file
81 .Op Fl F Ar script
82 .Op Fl Q Ar file
83 .Op Fl s Ar fileno
84 .Op Fl T Ar directory
85 .Op Fl X Ar filelist
86 .Op file ...
87 .Nm restore
88 .Fl x
89 .Op Fl achklmMNuvVy
90 .Op Fl b Ar blocksize
91 .Op Fl f Ar file
92 .Op Fl F Ar script
93 .Op Fl Q Ar file
94 .Op Fl s Ar fileno
95 .Op Fl T Ar directory
96 .Op Fl X Ar filelist
97 .Op file ...
98 .Pp
99 .in
100 (The
101 .Bx 4.3
102 option syntax is implemented for backward compatibility but
103 is not documented here.)
104 .Sh DESCRIPTION
105 The
106 .Nm restore
107 command performs the inverse function of
108 .Xr dump 8 .
109 A full backup of a file system may be restored and
110 subsequent incremental backups layered on top of it.
111 Single files and
112 directory subtrees may be restored from full or partial
113 backups.
114 .Nm Restore
115 works across a network;
116 to do this see the
117 .Fl f
118 flag described below.
119 Other arguments to the command are file or directory
120 names specifying the files that are to be restored.
121 Unless the
122 .Fl h
123 flag is specified (see below),
124 the appearance of a directory name refers to
125 the files and (recursively) subdirectories of that directory.
126 .Pp
127 Exactly one of the following flags is required:
128 .Bl -tag -width Ds
129 .It Fl C
130 This mode allows comparison of files from a dump.
131 .Nm Restore
132 reads the backup and compares its contents with files present on the
133 disk.
134 It first changes its working directory to the root of the filesystem
135 that was dumped and compares the tape with the files in its new
136 current directory.
137 See also the
138 .Fl L
139 flag described below.
140 .It Fl i
141 This mode allows interactive restoration of files from a dump.
142 After reading in the directory information from the dump,
143 .Nm restore
144 provides a shell like interface that allows the user to move
145 around the directory tree selecting files to be extracted.
146 The available commands are given below;
147 for those commands that require an argument,
148 the default is the current directory.
149 .Bl -tag -width Fl
150 .It Ic add Op Ar arg
151 The current directory or specified argument is added to the list of
152 files to be extracted.
153 If a directory is specified, then it and all its descendents are
154 added to the extraction list
155 (unless the
156 .Fl h
157 flag is specified on the command line).
158 Files that are on the extraction list are prepended with a
159 .Dq \&*
160 when they are listed by
161 .Ic ls .
162 .It Ic \&cd Ar arg
163 Change the current working directory to the specified argument.
164 .It Ic delete Op Ar arg
165 The current directory or specified argument is deleted from the list of
166 files to be extracted.
167 If a directory is specified, then it and all its descendents are
168 deleted from the extraction list
169 (unless the
170 .Fl h
171 flag is specified on the command line).
172 The most expedient way to extract most of the files from a directory
173 is to add the directory to the extraction list and then delete
174 those files that are not needed.
175 .It Ic extract
176 All files on the extraction list are extracted
177 from the dump.
178 .Nm Restore
179 will ask which volume the user wishes to mount.
180 The fastest way to extract a few files is to
181 start with the last volume and work towards the first volume.
182 .It Ic help
183 List a summary of the available commands.
184 .It Ic \&ls Op Ar arg
185 List the current or specified directory.
186 Entries that are directories are appended with a
187 .Dq \&* .
188 Entries that have been marked for extraction are prepended with a ``*''.
189 If the verbose
190 flag is set, the inode number of each entry is also listed.
191 .It Ic pwd
192 Print the full pathname of the current working directory.
193 .It Ic quit
194 Restore immediately exits,
195 even if the extraction list is not empty.
196 .It Ic setmodes
197 All directories that have been added to the extraction list
198 have their owner, modes, and times set;
199 nothing is extracted from the dump.
200 This is useful for cleaning up after a restore has been prematurely aborted.
201 .It Ic verbose
202 The sense of the
203 .Fl v
204 flag is toggled.
205 When set, the verbose flag causes the
206 .Ic ls
207 command to list the inode numbers of all entries.
208 It also causes
209 .Nm restore
210 to print out information about each file as it is extracted.
211 .El
212 .It Fl R
213 .Nm Restore
214 requests a particular tape of a multi-volume set on which to restart
215 a full restore
216 (see the
217 .Fl r
218 flag below).
219 This is useful if the restore has been interrupted.
220 .It Fl r
221 Restore (rebuild) a file system.
222 The target file system should be made pristine with
223 .Xr mke2fs 8 ,
224 mounted, and the user
225 .Xr cd Ns 'd
226 into the pristine file system
227 before starting the restoration of the initial level 0 backup. If the
228 level 0 restores successfully, the
229 .Fl r
230 flag may be used to restore
231 any necessary incremental backups on top of the level 0.
232 The
233 .Fl r
234 flag precludes an interactive file extraction and can be
235 detrimental to one's health (not to mention the disk) if not used carefully.
236 An example:
237 .Bd -literal -offset indent
238 mke2fs /dev/sda1
239 mount /dev/sda1 /mnt
240 cd /mnt
241
242 restore rf /dev/st0
243 .Ed
244 .Pp
245 Note that
246 .Nm restore
247 leaves a file
248 .Pa restoresymtable
249 in the root directory to pass information between incremental
250 restore passes.
251 This file should be removed when the last incremental has been
252 restored.
253 .Pp
254 .Nm Restore ,
255 in conjunction with
256 .Xr mke2fs 8
257 and
258 .Xr dump 8 ,
259 may be used to modify file system parameters
260 such as size or block size.
261 .It Fl t
262 The names of the specified files are listed if they occur
263 on the backup.
264 If no file argument is given,
265 the root directory is listed,
266 which results in the entire content of the
267 backup being listed,
268 unless the
269 .Fl h
270 flag has been specified.
271 Note that the
272 .Fl t
273 flag replaces the function of the old
274 .Xr dumpdir 8
275 program.
276 See also the
277 .Fl X
278 option below.
279 .ne 1i
280 .It Fl x
281 The named files are read from the given media.
282 If a named file matches a directory whose contents
283 are on the backup
284 and the
285 .Fl h
286 flag is not specified,
287 the directory is recursively extracted.
288 The owner, modification time,
289 and mode are restored (if possible).
290 If no file argument is given,
291 the root directory is extracted,
292 which results in the entire content of the
293 backup being extracted,
294 unless the
295 .Fl h
296 flag has been specified.
297 See also the
298 .Fl X
299 option below.
300 .El
301 .Pp
302 The following additional options may be specified:
303 .Bl -tag -width Ds
304 .It Fl a
305 In
306 .Fl i
307 or
308 .Fl x
309 mode,
310 .Nm restore
311 does ask the user for the volume number on which the files to
312 be extracted are supposed to be (in order to minimise the time
313 be reading only the interesting volumes). The
314 .Fl a
315 option disables this behaviour and reads all the volumes starting
316 with 1. This option is useful when the operator does not know on which
317 volume the files to be extracted are and/or when he prefers the
318 longer unattended mode rather than the shorter interactive mode.
319 .It Fl b Ar blocksize
320 The number of kilobytes per dump record.
321 If the
322 .Fl b
323 option is not specified,
324 .Nm restore
325 tries to determine the media block size dynamically.
326 .It Fl c
327 Normally,
328 .Nm restore
329 will try to determine dynamically whether the dump was made from an
330 old (pre-4.4) or new format file system. The
331 .Fl c
332 flag disables this check, and only allows reading a dump in the old
333 format.
334 .It Fl D Ar filesystem
335 The
336 .Fl D
337 flag allows the user to specify the filesystem name when using
338 .Nm restore
339 with the
340 .Fl C
341 option to check the backup.
342 .It Fl f Ar file
343 Read the backup from
344 .Ar file ;
345 .Ar file
346 may be a special device file
347 like
348 .Pa /dev/st0
349 (a tape drive),
350 .Pa /dev/sda1
351 (a disk drive),
352 an ordinary file,
353 or
354 .Ql Fl
355 (the standard input).
356 If the name of the file is of the form
357 .Dq host:file
358 or
359 .Dq user@host:file ,
360 .Nm restore
361 reads from the named file on the remote host using
362 .Xr rmt 8 .
363 .Pp
364 .It Fl F Ar script
365 Run script at the beginning of each tape. The device name and the
366 current volume number are passed on the command line.
367 The script must return 0 if
368 .Nm
369 should continue without asking the user to change the tape, 1 if
370 .Nm
371 should continue but ask the user to change the tape.
372 Any other exit code will cause
373 .Nm
374 to abort.
375 For security reasons,
376 .Nm
377 reverts back to the real user ID and the real group ID before
378 running the script.
379 .It Fl k
380 Use Kerberos authentication when contacting the remote tape server.
381 (Only available if this options was enabled when
382 .Nm restore
383 was compiled.)
384 .Pp
385 .It Fl h
386 Extract the actual directory,
387 rather than the files that it references.
388 This prevents hierarchical restoration of complete subtrees
389 from the dump.
390 .It Fl l
391 When doing remote restores, assume the remote file is a
392 regular file (instead of a tape device). If you're restoring
393 a remote compressed file, you will need to specify this
394 option or
395 .Nm restore
396 will fail to access it correctly.
397 .It Fl L Ar limit
398 The
399 .Fl L
400 flag allows the user to specify a maximal number of miscompares
401 when using
402 .Nm restore
403 with the
404 .Fl C
405 option to check the backup. If this limit is reached,
406 .Nm restore
407 will abort with an error message. A value of 0 (the default value)
408 disables the check.
409 .It Fl m
410 Extract by inode numbers rather than by file name.
411 This is useful if only a few files are being extracted,
412 and one wants to avoid regenerating the complete pathname
413 to the file.
414 .It Fl M
415 Enables the multi-volume feature (for reading dumps made using
416 the
417 .Fl M
418 option of dump). The name specified with
419 .Fl f
420 is treated as a prefix and
421 .Nm
422 tries to read in sequence from <prefix>001, <prefix>002 etc.
423 .It Fl N
424 The
425 .Fl N
426 flag causes
427 .Nm
428 to perform a full execution as requested by one of
429 .Fl i,
430 .Fl R,
431 .Fl r,
432 .Fl t
433 or
434 .Fl x
435 command without actually writing any file on disk.
436 .It Fl Q Ar file
437 Use the file
438 .Ar file
439 in order to read tape position as stored using the dump Quick File
440 Access mode.
441 .Pp
442 It is recommended to set up the st driver to return logical tape
443 positions rather than physical before calling dump/restore with
444 parameter Q. Since not all tape devices support physical tape
445 positions those tape devices return an error during dump/restore when
446 the st driver is set to the default physical setting.
447 Please see the st man page, option MTSETDRVBUFFER, or the mt man
448 page, on how to set the driver to return logical tape positions.
449 .Pp
450 Before calling restore with parameter Q, always make sure the st
451 driver is set to return the same type of tape position used during the
452 call to dump. Otherwise restore may be confused.
453 .It Fl s Ar fileno
454 Read from the specified
455 .Ar fileno
456 on a multi-file tape.
457 File numbering starts at 1.
458 .It Fl T Ar directory
459 The
460 .Fl T
461 flag allows the user to specify a directory to use for the storage of
462 temporary files. The default value is /tmp. This flag is most useful
463 when restoring files after having booted from a floppy. There might be little
464 or no space on the floppy filesystem, but another source of space might exist.
465 .It Fl u
466 When creating certain types of files, restore may generate a warning
467 diagnostic if they already exist in the target directory.
468 To prevent this, the
469 .Fl u
470 (unlink) flag causes restore to remove old entries before attempting
471 to create new ones.
472 .It Fl v
473 Normally
474 .Nm restore
475 does its work silently.
476 The
477 .Fl v
478 (verbose)
479 flag causes it to type the name of each file it treats
480 preceded by its file type.
481 .It Fl V
482 Enables reading multi-volume non-tape mediums like CDROMs.
483 .It Fl X Ar filelist
484 Read list of files to be listed or extracted from the text file
485 .Ar filelist
486 in addition to those specified on the command line. This can be used in
487 conjunction with the
488 .Fl t
489 or
490 .Fl x
491 commands. The file
492 .Ar filelist
493 should contain file names separated by newlines.
494 .Ar filelist
495 may be an ordinary file or
496 .Ql Fl
497 (the standard input).
498 .It Fl y
499 Do not ask the user whether to abort the restore in the event of an error.
500 Always try to skip over the bad block(s) and continue.
501 .El
502 .Sh DIAGNOSTICS
503 Complains if it gets a read error.
504 If
505 .Fl y
506 has been specified, or the user responds
507 .Ql y ,
508 .Nm restore
509 will attempt to continue the restore.
510 .Pp
511 If a backup was made using more than one tape volume,
512 .Nm restore
513 will notify the user when it is time to mount the next volume.
514 If the
515 .Fl x
516 or
517 .Fl i
518 flag has been specified,
519 .Nm restore
520 will also ask which volume the user wishes to mount.
521 The fastest way to extract a few files is to
522 start with the last volume, and work towards the first volume.
523 .Pp
524 There are numerous consistency checks that can be listed by
525 .Nm restore .
526 Most checks are self-explanatory or can
527 .Dq never happen .
528 Common errors are given below.
529 .Pp
530 .Bl -tag -width Ds -compact
531 .It Converting to new file system format
532 A dump tape created from the old file system has been loaded.
533 It is automatically converted to the new file system format.
534 .Pp
535 .It <filename>: not found on tape
536 The specified file name was listed in the tape directory,
537 but was not found on the tape.
538 This is caused by tape read errors while looking for the file,
539 and from using a dump tape created on an active file system.
540 .Pp
541 .It expected next file <inumber>, got <inumber>
542 A file that was not listed in the directory showed up.
543 This can occur when using a dump created on an active file system.
544 .Pp
545 .It Incremental dump too low
546 When doing an incremental restore,
547 a dump that was written before the previous incremental dump,
548 or that has too low an incremental level has been loaded.
549 .Pp
550 .It Incremental dump too high
551 When doing an incremental restore,
552 a dump that does not begin its coverage where the previous incremental
553 dump left off,
554 or that has too high an incremental level has been loaded.
555 .Pp
556 .It Tape read error while restoring <filename>
557 .It Tape read error while skipping over inode <inumber>
558 .It Tape read error while trying to resynchronize
559 A tape (or other media) read error has occurred.
560 If a file name is specified,
561 its contents are probably partially wrong.
562 If an inode is being skipped or the tape is trying to resynchronize,
563 no extracted files have been corrupted,
564 though files may not be found on the tape.
565 .Pp
566 .It resync restore, skipped <num> blocks
567 After a dump read error,
568 .Nm restore
569 may have to resynchronize itself.
570 This message lists the number of blocks that were skipped over.
571 .El
572 .Pp
573 .Nm Restore
574 exits with zero status on success.
575 Tape errors are indicated with an exit code of 1.
576 .Pp
577 When doing a comparison of files from a dump, an exit code
578 of 2 indicates that some files were modified or deleted since
579 the dump was made.
580 .Sh ENVIRONMENT
581 If the following environment variable exists it will be utilized by
582 .Nm restore :
583 .Pp
584 .Bl -tag -width "TMPDIR" -compact
585 .It Ev TAPE
586 If no -f option was specified,
587 .Nm
588 will use the device specified via
589 .Ev TAPE
590 as the dump device.
591 .Ev TAPE
592 may be of the form
593 .Qq tapename ,
594 .Qq host:tapename
595 or
596 .Qq user@host:tapename .
597 .It Ev TMPDIR
598 The directory given in
599 .Ev TMPDIR
600 will be used
601 instead of
602 .Pa /tmp
603 to store temporary files.
604 .It Ev RMT
605 The environment variable
606 .Ev RMT
607 will be used to determine the pathname of the remote
608 .Xr rmt 8
609 program.
610 .It Ev RSH
611 .Nm Restore
612 uses the contents of this variable to determine the name of the
613 remote shell command to use when doing a network restore (rsh, ssh etc.).
614 If this variable is not set,
615 .Xr rcmd 3
616 will be used, but only root will be able to do a network restore.
617 .El
618 .Sh FILES
619 .Bl -tag -width "./restoresymtable" -compact
620 .It Pa /dev/st0
621 the default tape drive
622 .It Pa /tmp/rstdir*
623 file containing directories on the tape
624 .It Pa /tmp/rstmode*
625 owner, mode, and time stamps for directories
626 .It Pa \&./restoresymtable
627 information passed between incremental restores
628 .El
629 .Sh SEE ALSO
630 .Xr dump 8 ,
631 .Xr mount 8 ,
632 .Xr mke2fs 8 ,
633 .Xr rmt 8
634 .Sh BUGS
635 .Nm Restore
636 can get confused when doing incremental restores from
637 dumps that were made on active file systems.
638 .Pp
639 A level 0 dump must be done after a full restore.
640 Because
641 .Nm restore
642 runs in user code,
643 it has no control over inode allocation;
644 thus a full dump must be done to get a new set of directories
645 reflecting the new inode numbering,
646 even though the content of the files is unchanged.
647 .Pp
648 The temporary files
649 .Pa /tmp/rstdir*
650 and
651 .Pa /tmp/rstmode*
652 are generated with a unique name based on the date of the dump
653 and the process ID (see
654 .Xr mktemp 3 ),
655 except when
656 .Fl r
657 or
658 .Fl R
659 is used.
660 Because
661 .Fl R
662 allows you to restart a
663 .Fl r
664 operation that may have been interrupted, the temporary files should
665 be the same across different processes.
666 In all other cases, the files are unique because it is possible to
667 have two different dumps started at the same time, and separate
668 operations shouldn't conflict with each other.
669 .Pp
670 To do a network restore, you have to run restore as root or use
671 a remote shell replacement (see RSH variable). This is due
672 to the previous security history of dump and restore. (restore is
673 written to be setuid root, but we are not certain all bugs are gone
674 from the restore code - run setuid at your own risk.)
675 .Sh AUTHOR
676 The
677 .Nm dump/restore
678 backup suite was ported to Linux's Second Extended File System
679 by Remy Card <card@Linux.EU.Org>. He maintained the initial versions
680 of dump (up and including 0.4b4, released in january 1997).
681 .Pp
682 Starting with 0.4b5, the new maintainer is Stelian Pop
683 .br
684 <stelian@popies.net>.
685 .Sh AVAILABILITY
686 The
687 .Nm dump/restore
688 backup suite is available from
689 .br
690 http://dump.sourceforge.net
691 .Sh HISTORY
692 The
693 .Nm restore
694 command appeared in
695 .Bx 4.2 .