kernel: Adjust netgraph7 for the mtx_init() change.
[dragonfly.git] / sbin / restore / restore.8
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. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)restore.8   8.4 (Berkeley) 5/1/95
29 .\" $FreeBSD: src/sbin/restore/restore.8,v 1.20.2.15 2003/02/23 22:47:13 trhodes Exp $
30 .\"
31 .Dd July 5, 2012
32 .Dt RESTORE 8
33 .Os
34 .Sh NAME
35 .Nm restore ,
36 .Nm rrestore
37 .Nd "restore UFS file systems or files from backups made with dump"
38 .Sh SYNOPSIS
39 .Nm
40 .Fl i
41 .Op Fl cdhkmNuvy
42 .Op Fl b Ar blocksize
43 .Op Fl f Ar file
44 .Op Fl s Ar fileno
45 .Nm
46 .Fl R
47 .Op Fl cdkNuvy
48 .Op Fl b Ar blocksize
49 .Op Fl f Ar file
50 .Op Fl s Ar fileno
51 .Nm
52 .Fl r
53 .Op Fl cdkNuvy
54 .Op Fl b Ar blocksize
55 .Op Fl f Ar file
56 .Op Fl s Ar fileno
57 .Nm
58 .Fl t
59 .Op Fl cdhkNuvy
60 .Op Fl b Ar blocksize
61 .Op Fl f Ar file
62 .Op Fl s Ar fileno
63 .Op Ar
64 .Nm
65 .Fl x
66 .Op Fl cdhkmNuvy
67 .Op Fl b Ar blocksize
68 .Op Fl f Ar file
69 .Op Fl s Ar fileno
70 .Op Ar
71 .Sh DESCRIPTION
72 The
73 .Nm
74 utility performs the inverse function of
75 .Xr dump 8 .
76 A full backup of a file system may be restored and
77 subsequent incremental backups layered on top of it.
78 Single files and
79 directory subtrees may be restored from full or partial
80 backups.
81 The
82 .Nm
83 utility works across a network;
84 to do this see the
85 .Fl f
86 flag described below.
87 Other arguments to the command are file or directory
88 names specifying the files that are to be restored.
89 Unless the
90 .Fl h
91 flag is specified (see below),
92 the appearance of a directory name refers to
93 the files and (recursively) subdirectories of that directory.
94 .Pp
95 .Nm
96 may also be invoked as
97 .Nm rrestore .
98 The
99 .Bx 4.3
100 option syntax is implemented for backward compatibility, but
101 is not documented here.
102 .Pp
103 Exactly one of the following flags is required:
104 .Bl -tag -width Ds
105 .It Fl i
106 This mode allows interactive restoration of files from a dump.
107 After reading in the directory information from the dump,
108 .Nm
109 provides a shell like interface that allows the user to move
110 around the directory tree selecting files to be extracted.
111 The available commands are given below;
112 for those commands that require an argument,
113 the default is the current directory.
114 .Bl -tag -width Fl
115 .It Ic add Op Ar arg
116 The current directory or specified argument is added to the list of
117 files to be extracted.
118 If a directory is specified, then it and all its descendants are
119 added to the extraction list
120 (unless the
121 .Fl h
122 flag is specified on the command line).
123 Files that are on the extraction list are prepended with a ``*''
124 when they are listed by
125 .Ic ls .
126 .It Ic \&cd Ar arg
127 Change the current working directory to the specified argument.
128 .It Ic delete Op Ar arg
129 The current directory or specified argument is deleted from the list of
130 files to be extracted.
131 If a directory is specified, then it and all its descendants are
132 deleted from the extraction list
133 (unless the
134 .Fl h
135 flag is specified on the command line).
136 The most expedient way to extract most of the files from a directory
137 is to add the directory to the extraction list and then delete
138 those files that are not needed.
139 .It Ic extract
140 All the files that are on the extraction list are extracted
141 from the dump.
142 The
143 .Nm
144 utility will ask which volume the user wishes to mount.
145 The fastest way to extract a few files is to
146 start with the last volume, and work towards the first volume.
147 .It Ic help
148 List a summary of the available commands.
149 .It Ic \&ls Op Ar arg
150 List the current or specified directory.
151 Entries that are directories are appended with a ``/''.
152 Entries that have been marked for extraction are prepended with a ``*''.
153 If the verbose
154 flag is set the inode number of each entry is also listed.
155 .It Ic pwd
156 Print the full pathname of the current working directory.
157 .It Ic quit
158 Exit immediately,
159 even if the extraction list is not empty.
160 .It Ic setmodes
161 All the directories that have been added to the extraction list
162 have their owner, modes, and times set;
163 nothing is extracted from the dump.
164 This is useful for cleaning up after a restore has been prematurely aborted.
165 .It Ic verbose
166 The sense of the
167 .Fl v
168 flag is toggled.
169 When set, the verbose flag causes the
170 .Ic ls
171 command to list the inode numbers of all entries.
172 It also causes
173 .Nm
174 to print out information about each file as it is extracted.
175 .It Ic what
176 Display dump header information, which includes: date,
177 level, label, and the file system and host dump was made
178 from.
179 .El
180 .It Fl R
181 Request a particular tape of a multi volume set on which to restart
182 a full restore
183 (see the
184 .Fl r
185 flag below).
186 This is useful if the restore has been interrupted.
187 .It Fl r
188 Restore (rebuild a file system).
189 The target file system should be made pristine with
190 .Xr newfs 8 ,
191 mounted and the user
192 .Xr cd 1 Ns 'd
193 into the pristine file system
194 before starting the restoration of the initial level 0 backup.
195 If the
196 level 0 restores successfully, the
197 .Fl r
198 flag may be used to restore
199 any necessary incremental backups on top of the level 0.
200 The
201 .Fl r
202 flag precludes an interactive file extraction and can be
203 detrimental to one's health if not used carefully (not to mention
204 the disk). An example:
205 .Bd -literal -offset indent
206 newfs /dev/da0s1a
207 mount /dev/da0s1a /mnt
208 cd /mnt
209
210 restore rf /dev/sa0
211 .Ed
212 .Pp
213 Note that
214 .Nm
215 leaves a file
216 .Pa restoresymtable
217 in the root directory to pass information between incremental
218 restore passes.
219 This file should be removed when the last incremental has been
220 restored.
221 .Pp
222 The
223 .Nm
224 utility ,
225 in conjunction with
226 .Xr newfs 8
227 and
228 .Xr dump 8 ,
229 may be used to modify file system parameters
230 such as size or block size.
231 .It Fl t
232 The names of the specified files are listed if they occur
233 on the backup.
234 If no file argument is given,
235 then the root directory is listed,
236 which results in the entire content of the
237 backup being listed,
238 unless the
239 .Fl h
240 flag has been specified.
241 Note that the
242 .Fl t
243 flag replaces the function of the old
244 .Xr dumpdir 8
245 program.
246 .It Fl x
247 The named files are read from the given media.
248 If a named file matches a directory whose contents
249 are on the backup
250 and the
251 .Fl h
252 flag is not specified,
253 the directory is recursively extracted.
254 The owner, modification time,
255 and mode are restored (if possible).
256 If no file argument is given,
257 then the root directory is extracted,
258 which results in the entire content of the
259 backup being extracted,
260 unless the
261 .Fl h
262 flag has been specified.
263 .El
264 .Pp
265 The following additional options may be specified:
266 .Bl -tag -width Ds
267 .It Fl b Ar blocksize
268 The number of kilobytes per dump record.
269 If the
270 .Fl b
271 option is not specified,
272 .Nm
273 tries to determine the media block size dynamically.
274 .It Fl c
275 Normally,
276 .Nm
277 will try to determine dynamically whether the dump was made from an
278 old (pre-4.4) or new format file system.  The
279 .Fl c
280 flag disables this check, and only allows reading a dump in the old
281 format.
282 .It Fl d
283 Sends verbose debugging output to the standard error.
284 .It Fl f Ar file
285 Read the backup from
286 .Ar file ;
287 .Ar file
288 may be a special device file
289 like
290 .Pa /dev/sa0
291 (a tape drive),
292 .Pa /dev/da1c
293 (a disk drive),
294 an ordinary file,
295 or
296 .Sq Fl
297 (the standard input).
298 If the name of the file is of the form
299 .Dq host:file ,
300 or
301 .Dq user@host:file ,
302 .Nm
303 reads from the named file on the remote host using
304 .Xr rmt 8 .
305 .It Fl k
306 Use Kerberos authentication when contacting the remote tape server.
307 (Only available if this options was enabled when
308 .Nm
309 was compiled.)
310 .It Fl h
311 Extract the actual directory,
312 rather than the files that it references.
313 This prevents hierarchical restoration of complete subtrees
314 from the dump.
315 .It Fl m
316 Extract by inode numbers rather than by file name.
317 This is useful if only a few files are being extracted,
318 and one wants to avoid regenerating the complete pathname
319 to the file.
320 .It Fl N
321 Do the extraction normally, but do not actually write any changes
322 to disk.
323 This can be used to check the integrity of dump media
324 or other test purposes.
325 .It Fl s Ar fileno
326 Read from the specified
327 .Ar fileno
328 on a multi-file tape.
329 File numbering starts at 1.
330 .It Fl u
331 When creating certain types of files, restore may generate a warning
332 diagnostic if they already exist in the target directory.
333 To prevent this, the
334 .Fl u
335 (unlink) flag causes restore to remove old entries before attempting
336 to create new ones.
337 .It Fl v
338 Normally
339 .Nm
340 does its work silently.
341 The
342 .Fl v
343 (verbose)
344 flag causes it to type the name of each file it treats
345 preceded by its file type.
346 .It Fl y
347 Do not ask the user whether to abort the restore in the event of an error.
348 Always try to skip over the bad block(s) and continue.
349 .El
350 .Sh ENVIRONMENT
351 .Bl -tag -width ".Ev TMPDIR"
352 .It Ev TAPE
353 Device from which to read backup.
354 .It Ev TMPDIR
355 Name of directory where temporary files are to be created.
356 .El
357 .Sh FILES
358 .Bl -tag -width "./restoresymtable" -compact
359 .It Pa /dev/sa0
360 the default tape drive
361 .It Pa /tmp/rstdir*
362 file containing directories on the tape.
363 .It Pa /tmp/rstmode*
364 owner, mode, and time stamps for directories.
365 .It Pa \&./restoresymtable
366 information passed between incremental restores.
367 .El
368 .Sh DIAGNOSTICS
369 The
370 .Nm
371 utility complains if it gets a read error.
372 If
373 .Fl y
374 has been specified, or the user responds
375 .Ql y ,
376 .Nm
377 will attempt to continue the restore.
378 .Pp
379 If a backup was made using more than one tape volume,
380 .Nm
381 will notify the user when it is time to mount the next volume.
382 If the
383 .Fl x
384 or
385 .Fl i
386 flag has been specified,
387 .Nm
388 will also ask which volume the user wishes to mount.
389 The fastest way to extract a few files is to
390 start with the last volume, and work towards the first volume.
391 .Pp
392 There are numerous consistency checks that can be listed by
393 .Nm .
394 Most checks are self-explanatory or can ``never happen''.
395 Common errors are given below.
396 .Pp
397 .Bl -tag -width Ds -compact
398 .It Converting to new file system format.
399 A dump tape created from the old file system has been loaded.
400 It is automatically converted to the new file system format.
401 .Pp
402 .It <filename>: not found on tape
403 The specified file name was listed in the tape directory,
404 but was not found on the tape.
405 This is caused by tape read errors while looking for the file,
406 and from using a dump tape created on an active file system.
407 .Pp
408 .It expected next file <inumber>, got <inumber>
409 A file that was not listed in the directory showed up.
410 This can occur when using a dump created on an active file system.
411 .Pp
412 .It Incremental dump too low
413 When doing incremental restore,
414 a dump that was written before the previous incremental dump,
415 or that has too low an incremental level has been loaded.
416 .Pp
417 .It Incremental dump too high
418 When doing incremental restore,
419 a dump that does not begin its coverage where the previous incremental
420 dump left off,
421 or that has too high an incremental level has been loaded.
422 .Pp
423 .It Tape read error while restoring <filename>
424 .It Tape read error while skipping over inode <inumber>
425 .It Tape read error while trying to resynchronize
426 A tape (or other media) read error has occurred.
427 If a file name is specified,
428 then its contents are probably partially wrong.
429 If an inode is being skipped or the tape is trying to resynchronize,
430 then no extracted files have been corrupted,
431 though files may not be found on the tape.
432 .Pp
433 .It resync restore, skipped <num> blocks
434 After a dump read error,
435 .Nm
436 may have to resynchronize itself.
437 This message lists the number of blocks that were skipped over.
438 .El
439 .Sh SEE ALSO
440 .Xr UFS 5 ,
441 .Xr dump 8 ,
442 .Xr mount 8 ,
443 .Xr newfs 8 ,
444 .Xr rmt 8
445 .Sh HISTORY
446 The
447 .Nm
448 utility appeared in
449 .Bx 4.2 .
450 .Sh BUGS
451 The
452 .Nm
453 utility can get confused when doing incremental restores from
454 dumps that were made on active file systems.
455 .Pp
456 A level zero dump must be done after a full restore.
457 Because restore runs in user code,
458 it has no control over inode allocation;
459 thus a full dump must be done to get a new set of directories
460 reflecting the new inode numbering,
461 even though the contents of the files is unchanged.
462 .Pp
463 To do a network restore, you have to run restore as root.  This is due
464 to the previous security history of dump and restore.  (restore is
465 written to be setuid root, but we are not certain all bugs are gone
466 from the restore code - run setuid at your own risk.)
467 .Pp
468 The temporary files
469 .Pa /tmp/rstdir*
470 and
471 .Pa /tmp/rstmode*
472 are generated with a unique name based on the date of the dump
473 and the process ID (see
474 .Xr mktemp 3 ) ,
475 except for when
476 .Fl r
477 or
478 .Fl R
479 is used.
480 Because
481 .Fl R
482 allows you to restart a
483 .Fl r
484 operation that may have been interrupted, the temporary files should
485 be the same across different processes.
486 In all other cases, the files are unique because it is possible to
487 have two different dumps started at the same time, and separate
488 operations shouldn't conflict with each other.