]> git.wh0rd.org - dump.git/blob - restore/restore.8.in
noos -> popies.net
[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.21 2002/01/16 09:32:14 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 chklmMNuvVy
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 chklmMNuvVy
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 b Ar blocksize
305 The number of kilobytes per dump record.
306 If the
307 .Fl b
308 option is not specified,
309 .Nm restore
310 tries to determine the media block size dynamically.
311 .It Fl c
312 Normally,
313 .Nm restore
314 will try to determine dynamically whether the dump was made from an
315 old (pre-4.4) or new format file system. The
316 .Fl c
317 flag disables this check, and only allows reading a dump in the old
318 format.
319 .It Fl D Ar filesystem
320 The
321 .Fl D
322 flag allows the user to specify the filesystem name when using
323 .Nm restore
324 with the
325 .Fl C
326 option to check the backup.
327 .It Fl f Ar file
328 Read the backup from
329 .Ar file ;
330 .Ar file
331 may be a special device file
332 like
333 .Pa /dev/st0
334 (a tape drive),
335 .Pa /dev/sda1
336 (a disk drive),
337 an ordinary file,
338 or
339 .Ql Fl
340 (the standard input).
341 If the name of the file is of the form
342 .Dq host:file
343 or
344 .Dq user@host:file ,
345 .Nm restore
346 reads from the named file on the remote host using
347 .Xr rmt 8 .
348 .Pp
349 .It Fl F Ar script
350 Run script at the beginning of each tape. The device name and the
351 current volume number are passed on the command line.
352 The script must return 0 if
353 .Nm
354 should continue without asking the user to change the tape, 1 if
355 .Nm
356 should continue but ask the user to change the tape.
357 Any other exit code will cause
358 .Nm
359 to abort.
360 For security reasons,
361 .Nm
362 reverts back to the real user ID and the real group ID before
363 running the script.
364 .It Fl k
365 Use Kerberos authentication when contacting the remote tape server.
366 (Only available if this options was enabled when
367 .Nm restore
368 was compiled.)
369 .Pp
370 .It Fl h
371 Extract the actual directory,
372 rather than the files that it references.
373 This prevents hierarchical restoration of complete subtrees
374 from the dump.
375 .It Fl l
376 When doing remote restores, assume the remote file is a
377 regular file (instead of a tape device). If you're restoring
378 a remote compressed file, you will need to specify this
379 option or
380 .Nm restore
381 will fail to access it correctly.
382 .It Fl L Ar limit
383 The
384 .Fl L
385 flag allows the user to specify a maximal number of miscompares
386 when using
387 .Nm restore
388 with the
389 .Fl C
390 option to check the backup. If this limit is reached,
391 .Nm restore
392 will abort with an error message. A value of 0 (the default value)
393 disables the check.
394 .It Fl m
395 Extract by inode numbers rather than by file name.
396 This is useful if only a few files are being extracted,
397 and one wants to avoid regenerating the complete pathname
398 to the file.
399 .It Fl M
400 Enables the multi-volume feature (for reading dumps made using
401 the
402 .Fl M
403 option of dump). The name specified with
404 .Fl f
405 is treated as a prefix and
406 .Nm
407 tries to read in sequence from <prefix>001, <prefix>002 etc.
408 .It Fl N
409 The
410 .Fl N
411 flag causes
412 .Nm
413 to perform a full execution as requested by one of
414 .Fl i,
415 .Fl R,
416 .Fl r,
417 .Fl t
418 or
419 .Fl x
420 command without actually writing any file on disk.
421 .It Fl Q Ar file
422 Use the file
423 .Ar file
424 in order to read tape position as stored using the dump Quick File
425 Access mode.
426 .Pp
427 It is recommended to set up the st driver to return logical tape
428 positions rather than physical before calling dump/restore with
429 parameter Q. Since not all tape devices support physical tape
430 positions those tape devices return an error during dump/restore when
431 the st driver is set to the default physical setting.
432 Please see the st man page, option MTSETDRVBUFFER, or the mt man
433 page, on how to set the driver to return logical tape positions.
434 .Pp
435 Before calling restore with parameter Q, always make sure the st
436 driver is set to return the same type of tape position used during the
437 call to dump. Otherwise restore may be confused.
438 .It Fl s Ar fileno
439 Read from the specified
440 .Ar fileno
441 on a multi-file tape.
442 File numbering starts at 1.
443 .It Fl T Ar directory
444 The
445 .Fl T
446 flag allows the user to specify a directory to use for the storage of
447 temporary files. The default value is /tmp. This flag is most useful
448 when restoring files after having booted from a floppy. There might be little
449 or no space on the floppy filesystem, but another source of space might exist.
450 .It Fl u
451 When creating certain types of files, restore may generate a warning
452 diagnostic if they already exist in the target directory.
453 To prevent this, the
454 .Fl u
455 (unlink) flag causes restore to remove old entries before attempting
456 to create new ones.
457 .It Fl v
458 Normally
459 .Nm restore
460 does its work silently.
461 The
462 .Fl v
463 (verbose)
464 flag causes it to type the name of each file it treats
465 preceded by its file type.
466 .It Fl V
467 Enables reading multi-volume non-tape mediums like CDROMs.
468 .It Fl X Ar filelist
469 Read list of files to be listed or extracted from the text file
470 .Ar filelist
471 in addition to those specified on the command line. This can be used in
472 conjunction with the
473 .Fl t
474 or
475 .Fl x
476 commands. The file
477 .Ar filelist
478 should contain file names separated by newlines.
479 .Ar filelist
480 may be an ordinary file or
481 .Ql Fl
482 (the standard input).
483 .It Fl y
484 Do not ask the user whether to abort the restore in the event of an error.
485 Always try to skip over the bad block(s) and continue.
486 .El
487 .Sh DIAGNOSTICS
488 Complains if it gets a read error.
489 If
490 .Fl y
491 has been specified, or the user responds
492 .Ql y ,
493 .Nm restore
494 will attempt to continue the restore.
495 .Pp
496 If a backup was made using more than one tape volume,
497 .Nm restore
498 will notify the user when it is time to mount the next volume.
499 If the
500 .Fl x
501 or
502 .Fl i
503 flag has been specified,
504 .Nm restore
505 will also ask which volume the user wishes to mount.
506 The fastest way to extract a few files is to
507 start with the last volume, and work towards the first volume.
508 .Pp
509 There are numerous consistency checks that can be listed by
510 .Nm restore .
511 Most checks are self-explanatory or can
512 .Dq never happen .
513 Common errors are given below.
514 .Pp
515 .Bl -tag -width Ds -compact
516 .It Converting to new file system format
517 A dump tape created from the old file system has been loaded.
518 It is automatically converted to the new file system format.
519 .Pp
520 .It <filename>: not found on tape
521 The specified file name was listed in the tape directory,
522 but was not found on the tape.
523 This is caused by tape read errors while looking for the file,
524 and from using a dump tape created on an active file system.
525 .Pp
526 .It expected next file <inumber>, got <inumber>
527 A file that was not listed in the directory showed up.
528 This can occur when using a dump created on an active file system.
529 .Pp
530 .It Incremental dump too low
531 When doing an incremental restore,
532 a dump that was written before the previous incremental dump,
533 or that has too low an incremental level has been loaded.
534 .Pp
535 .It Incremental dump too high
536 When doing an incremental restore,
537 a dump that does not begin its coverage where the previous incremental
538 dump left off,
539 or that has too high an incremental level has been loaded.
540 .Pp
541 .It Tape read error while restoring <filename>
542 .It Tape read error while skipping over inode <inumber>
543 .It Tape read error while trying to resynchronize
544 A tape (or other media) read error has occurred.
545 If a file name is specified,
546 its contents are probably partially wrong.
547 If an inode is being skipped or the tape is trying to resynchronize,
548 no extracted files have been corrupted,
549 though files may not be found on the tape.
550 .Pp
551 .It resync restore, skipped <num> blocks
552 After a dump read error,
553 .Nm restore
554 may have to resynchronize itself.
555 This message lists the number of blocks that were skipped over.
556 .El
557 .Pp
558 .Nm Restore
559 exits with zero status on success.
560 Tape errors are indicated with an exit code of 1.
561 .Pp
562 When doing a comparison of files from a dump, an exit code
563 of 2 indicates that some files were modified or deleted since
564 the dump was made.
565 .Sh ENVIRONMENT
566 If the following environment variable exists it will be utilized by
567 .Nm restore :
568 .Pp
569 .Bl -tag -width "TMPDIR" -compact
570 .It Ev TAPE
571 If no -f option was specified,
572 .Nm
573 will use the device specified via
574 .Ev TAPE
575 as the dump device.
576 .Ev TAPE
577 may be of the form
578 .Qq tapename ,
579 .Qq host:tapename
580 or
581 .Qq user@host:tapename .
582 .It Ev TMPDIR
583 The directory given in
584 .Ev TMPDIR
585 will be used
586 instead of
587 .Pa /tmp
588 to store temporary files.
589 .It Ev RMT
590 The environment variable
591 .Ev RMT
592 will be used to determine the pathname of the remote
593 .Xr rmt 8
594 program.
595 .It Ev RSH
596 .Nm Restore
597 uses the contents of this variable to determine the name of the
598 remote shell command to use when doing a network restore (rsh, ssh etc.).
599 If this variable is not set,
600 .Xr rcmd 3
601 will be used, but only root will be able to do a network restore.
602 .El
603 .Sh FILES
604 .Bl -tag -width "./restoresymtable" -compact
605 .It Pa /dev/st0
606 the default tape drive
607 .It Pa /tmp/rstdir*
608 file containing directories on the tape
609 .It Pa /tmp/rstmode*
610 owner, mode, and time stamps for directories
611 .It Pa \&./restoresymtable
612 information passed between incremental restores
613 .El
614 .Sh SEE ALSO
615 .Xr dump 8 ,
616 .Xr mount 8 ,
617 .Xr mke2fs 8 ,
618 .Xr rmt 8
619 .Sh BUGS
620 .Nm Restore
621 can get confused when doing incremental restores from
622 dumps that were made on active file systems.
623 .Pp
624 A level 0 dump must be done after a full restore.
625 Because
626 .Nm restore
627 runs in user code,
628 it has no control over inode allocation;
629 thus a full dump must be done to get a new set of directories
630 reflecting the new inode numbering,
631 even though the content of the files is unchanged.
632 .Pp
633 The temporary files
634 .Pa /tmp/rstdir*
635 and
636 .Pa /tmp/rstmode*
637 are generated with a unique name based on the date of the dump
638 and the process ID (see
639 .Xr mktemp 3 ),
640 except when
641 .Fl r
642 or
643 .Fl R
644 is used.
645 Because
646 .Fl R
647 allows you to restart a
648 .Fl r
649 operation that may have been interrupted, the temporary files should
650 be the same across different processes.
651 In all other cases, the files are unique because it is possible to
652 have two different dumps started at the same time, and separate
653 operations shouldn't conflict with each other.
654 .Pp
655 To do a network restore, you have to run restore as root or use
656 a remote shell replacement (see RSH variable). This is due
657 to the previous security history of dump and restore. (restore is
658 written to be setuid root, but we are not certain all bugs are gone
659 from the restore code - run setuid at your own risk.)
660 .Sh AUTHOR
661 The
662 .Nm dump/restore
663 backup suite was ported to Linux's Second Extended File System
664 by Remy Card <card@Linux.EU.Org>. He maintained the initial versions
665 of dump (up and including 0.4b4, released in january 1997).
666 .Pp
667 Starting with 0.4b5, the new maintainer is Stelian Pop
668 .br
669 <stelian@popies.net>.
670 .Sh AVAILABILITY
671 The
672 .Nm dump/restore
673 backup suite is available from
674 .br
675 http://dump.sourceforge.net
676 .Sh HISTORY
677 The
678 .Nm restore
679 command appeared in
680 .Bx 4.2 .