]> git.wh0rd.org - dump.git/blob - restore/restore.8.in
Made -Q option work on regular files.
[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.23 2002/01/22 11:12:28 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 .Pp
454 This option can be used when restoring from local tapes (see above)
455 or from local files.
456 .It Fl s Ar fileno
457 Read from the specified
458 .Ar fileno
459 on a multi-file tape.
460 File numbering starts at 1.
461 .It Fl T Ar directory
462 The
463 .Fl T
464 flag allows the user to specify a directory to use for the storage of
465 temporary files. The default value is /tmp. This flag is most useful
466 when restoring files after having booted from a floppy. There might be little
467 or no space on the floppy filesystem, but another source of space might exist.
468 .It Fl u
469 When creating certain types of files, restore may generate a warning
470 diagnostic if they already exist in the target directory.
471 To prevent this, the
472 .Fl u
473 (unlink) flag causes restore to remove old entries before attempting
474 to create new ones.
475 .It Fl v
476 Normally
477 .Nm restore
478 does its work silently.
479 The
480 .Fl v
481 (verbose)
482 flag causes it to type the name of each file it treats
483 preceded by its file type.
484 .It Fl V
485 Enables reading multi-volume non-tape mediums like CDROMs.
486 .It Fl X Ar filelist
487 Read list of files to be listed or extracted from the text file
488 .Ar filelist
489 in addition to those specified on the command line. This can be used in
490 conjunction with the
491 .Fl t
492 or
493 .Fl x
494 commands. The file
495 .Ar filelist
496 should contain file names separated by newlines.
497 .Ar filelist
498 may be an ordinary file or
499 .Ql Fl
500 (the standard input).
501 .It Fl y
502 Do not ask the user whether to abort the restore in the event of an error.
503 Always try to skip over the bad block(s) and continue.
504 .El
505 .Sh DIAGNOSTICS
506 Complains if it gets a read error.
507 If
508 .Fl y
509 has been specified, or the user responds
510 .Ql y ,
511 .Nm restore
512 will attempt to continue the restore.
513 .Pp
514 If a backup was made using more than one tape volume,
515 .Nm restore
516 will notify the user when it is time to mount the next volume.
517 If the
518 .Fl x
519 or
520 .Fl i
521 flag has been specified,
522 .Nm restore
523 will also ask which volume the user wishes to mount.
524 The fastest way to extract a few files is to
525 start with the last volume, and work towards the first volume.
526 .Pp
527 There are numerous consistency checks that can be listed by
528 .Nm restore .
529 Most checks are self-explanatory or can
530 .Dq never happen .
531 Common errors are given below.
532 .Pp
533 .Bl -tag -width Ds -compact
534 .It Converting to new file system format
535 A dump tape created from the old file system has been loaded.
536 It is automatically converted to the new file system format.
537 .Pp
538 .It <filename>: not found on tape
539 The specified file name was listed in the tape directory,
540 but was not found on the tape.
541 This is caused by tape read errors while looking for the file,
542 and from using a dump tape created on an active file system.
543 .Pp
544 .It expected next file <inumber>, got <inumber>
545 A file that was not listed in the directory showed up.
546 This can occur when using a dump created on an active file system.
547 .Pp
548 .It Incremental dump too low
549 When doing an incremental restore,
550 a dump that was written before the previous incremental dump,
551 or that has too low an incremental level has been loaded.
552 .Pp
553 .It Incremental dump too high
554 When doing an incremental restore,
555 a dump that does not begin its coverage where the previous incremental
556 dump left off,
557 or that has too high an incremental level has been loaded.
558 .Pp
559 .It Tape read error while restoring <filename>
560 .It Tape read error while skipping over inode <inumber>
561 .It Tape read error while trying to resynchronize
562 A tape (or other media) read error has occurred.
563 If a file name is specified,
564 its contents are probably partially wrong.
565 If an inode is being skipped or the tape is trying to resynchronize,
566 no extracted files have been corrupted,
567 though files may not be found on the tape.
568 .Pp
569 .It resync restore, skipped <num> blocks
570 After a dump read error,
571 .Nm restore
572 may have to resynchronize itself.
573 This message lists the number of blocks that were skipped over.
574 .El
575 .Pp
576 .Nm Restore
577 exits with zero status on success.
578 Tape errors are indicated with an exit code of 1.
579 .Pp
580 When doing a comparison of files from a dump, an exit code
581 of 2 indicates that some files were modified or deleted since
582 the dump was made.
583 .Sh ENVIRONMENT
584 If the following environment variable exists it will be utilized by
585 .Nm restore :
586 .Pp
587 .Bl -tag -width "TMPDIR" -compact
588 .It Ev TAPE
589 If no -f option was specified,
590 .Nm
591 will use the device specified via
592 .Ev TAPE
593 as the dump device.
594 .Ev TAPE
595 may be of the form
596 .Qq tapename ,
597 .Qq host:tapename
598 or
599 .Qq user@host:tapename .
600 .It Ev TMPDIR
601 The directory given in
602 .Ev TMPDIR
603 will be used
604 instead of
605 .Pa /tmp
606 to store temporary files.
607 .It Ev RMT
608 The environment variable
609 .Ev RMT
610 will be used to determine the pathname of the remote
611 .Xr rmt 8
612 program.
613 .It Ev RSH
614 .Nm Restore
615 uses the contents of this variable to determine the name of the
616 remote shell command to use when doing a network restore (rsh, ssh etc.).
617 If this variable is not set,
618 .Xr rcmd 3
619 will be used, but only root will be able to do a network restore.
620 .El
621 .Sh FILES
622 .Bl -tag -width "./restoresymtable" -compact
623 .It Pa /dev/st0
624 the default tape drive
625 .It Pa /tmp/rstdir*
626 file containing directories on the tape
627 .It Pa /tmp/rstmode*
628 owner, mode, and time stamps for directories
629 .It Pa \&./restoresymtable
630 information passed between incremental restores
631 .El
632 .Sh SEE ALSO
633 .Xr dump 8 ,
634 .Xr mount 8 ,
635 .Xr mke2fs 8 ,
636 .Xr rmt 8
637 .Sh BUGS
638 .Nm Restore
639 can get confused when doing incremental restores from
640 dumps that were made on active file systems.
641 .Pp
642 A level 0 dump must be done after a full restore.
643 Because
644 .Nm restore
645 runs in user code,
646 it has no control over inode allocation;
647 thus a full dump must be done to get a new set of directories
648 reflecting the new inode numbering,
649 even though the content of the files is unchanged.
650 .Pp
651 The temporary files
652 .Pa /tmp/rstdir*
653 and
654 .Pa /tmp/rstmode*
655 are generated with a unique name based on the date of the dump
656 and the process ID (see
657 .Xr mktemp 3 ),
658 except when
659 .Fl r
660 or
661 .Fl R
662 is used.
663 Because
664 .Fl R
665 allows you to restart a
666 .Fl r
667 operation that may have been interrupted, the temporary files should
668 be the same across different processes.
669 In all other cases, the files are unique because it is possible to
670 have two different dumps started at the same time, and separate
671 operations shouldn't conflict with each other.
672 .Pp
673 To do a network restore, you have to run restore as root or use
674 a remote shell replacement (see RSH variable). This is due
675 to the previous security history of dump and restore. (restore is
676 written to be setuid root, but we are not certain all bugs are gone
677 from the restore code - run setuid at your own risk.)
678 .Sh AUTHOR
679 The
680 .Nm dump/restore
681 backup suite was ported to Linux's Second Extended File System
682 by Remy Card <card@Linux.EU.Org>. He maintained the initial versions
683 of dump (up and including 0.4b4, released in january 1997).
684 .Pp
685 Starting with 0.4b5, the new maintainer is Stelian Pop
686 .br
687 <stelian@popies.net>.
688 .Sh AVAILABILITY
689 The
690 .Nm dump/restore
691 backup suite is available from
692 .br
693 http://dump.sourceforge.net
694 .Sh HISTORY
695 The
696 .Nm restore
697 command appeared in
698 .Bx 4.2 .