2009-05-18 20:46:33 +01:00
|
|
|
=head1 NAME
|
|
|
|
|
|
|
|
restorevol - Restore a volume from vos dump to the local file system
|
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
=for html
|
|
|
|
<div class="synopsis">
|
|
|
|
|
|
|
|
B<restorevol> S<<< [B<-file> <I<dump file>>] >>> S<<< [B<-dir> <I<restore dir>> ] >>>
|
|
|
|
S<<< [B<-extension> <I<name extension>>] >>>
|
|
|
|
S<<< [B<-mountpoint> <I<mount point root>>] >>>
|
2013-06-30 23:59:02 +01:00
|
|
|
S<<< [B<-umask> <I<mode mask>>] >>> [B<-help>]
|
2009-05-18 20:46:33 +01:00
|
|
|
|
|
|
|
=for html
|
|
|
|
</div>
|
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
|
|
|
B<restorevol> takes an AFS volume in the format produced by B<vos dump>
|
|
|
|
and restores it to the local file system. Normally, the contents of a
|
|
|
|
volume are maintained by the AFS File Server in an opaque format and
|
|
|
|
copying a volume's raw data does not make it easily accessible. This
|
|
|
|
utility will produce a directory tree that is equivalent to that seen via
|
|
|
|
an AFS client, but without preserving the AFS-specific Access Control
|
|
|
|
Lists (ACLs). It's primary use is to recover data from a volume dump or
|
|
|
|
backup and make it available via a filesystem other than AFS.
|
|
|
|
|
|
|
|
The dump output will read from standard input, or from a file if B<-file>
|
|
|
|
is specified.
|
|
|
|
|
|
|
|
The restore process is as follows:
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
2009-08-22 02:12:39 +01:00
|
|
|
=item 1.
|
2009-05-18 20:46:33 +01:00
|
|
|
|
|
|
|
The dump file will be restored within the current directory or that
|
|
|
|
specified with B<-dir>.
|
|
|
|
|
2009-08-22 02:12:39 +01:00
|
|
|
=item 2.
|
2009-05-18 20:46:33 +01:00
|
|
|
|
|
|
|
Within this directory, a subdir is created. It's name is the RW volume
|
|
|
|
name that was dumped. An extension can be appended to this directory name
|
|
|
|
with B<-extension>.
|
|
|
|
|
2009-08-22 02:12:39 +01:00
|
|
|
=item 3.
|
2009-05-18 20:46:33 +01:00
|
|
|
|
|
|
|
All mountpoints will appear as symbolic links to the volume name. The
|
|
|
|
path name to the volume will be either that in B<-mountpoint>, or B<-dir>.
|
|
|
|
Symbolic links remain untouched.
|
|
|
|
|
2009-08-22 02:12:39 +01:00
|
|
|
=item 4.
|
2009-05-18 20:46:33 +01:00
|
|
|
|
|
|
|
You can change your umask during the restore with B<-umask>. Otherwise,
|
|
|
|
B<restorevol> uses your current umask. Mode bits for directories are 0777
|
|
|
|
(then AND'ed with the umask). Mode bits for files are the owner mode bits
|
|
|
|
duplicated accross group and user (then AND'ed with the umask).
|
|
|
|
|
2009-08-22 02:12:39 +01:00
|
|
|
=item 5.
|
2009-05-18 20:46:33 +01:00
|
|
|
|
|
|
|
For restores of full dumps, if a directory says it has a file and the file
|
|
|
|
is not found, then a symbolic link F<< AFSFile-<#> >> will appear in that
|
|
|
|
restored tree. Restores of incremental dumps remove all these files at
|
|
|
|
the end (expensive because it is a tree search).
|
|
|
|
|
2009-08-22 02:12:39 +01:00
|
|
|
=item 6.
|
2009-05-18 20:46:33 +01:00
|
|
|
|
|
|
|
If a file or directory was found in the dump but found not to be connected
|
|
|
|
to the hierarchical tree, then the file or directory will be connected at
|
|
|
|
the root of the tree as F<< __ORPHANEDIR__.<#> >> or F<<
|
|
|
|
__ORPHANFILE__.<#> >>.
|
|
|
|
|
2009-08-22 02:12:39 +01:00
|
|
|
=item 7.
|
2009-05-18 20:46:33 +01:00
|
|
|
|
|
|
|
ACLs are not restored.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=head1 CAUTIONS
|
|
|
|
|
|
|
|
Normally, use L<vos_restore(1)> instead of this command. B<restorevol> is
|
|
|
|
a tool of last resort to try to extract data from the data structures
|
|
|
|
stored in a volume dumpfile and is not as regularly tested or used as the
|
|
|
|
normal L<vos_restore(1)> implementation. Using B<restorevol> bypasses
|
|
|
|
checks done by the L<fileserver(8)> and L<salvager(8)>.
|
|
|
|
|
|
|
|
=head1 OPTIONS
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
=item B<-file> <I<dump file>>
|
|
|
|
|
2010-09-09 20:22:29 +01:00
|
|
|
Specifies the volume dump file to be read and restored to the local filesystem.
|
|
|
|
If this option is not given, the volume dump will be read from standard input.
|
2009-05-18 20:46:33 +01:00
|
|
|
|
|
|
|
=item B<-dir> <I<restore dir>>
|
|
|
|
|
|
|
|
Names the directory in which to create the restored filesystem. The
|
|
|
|
current directory is used by default. Note that any mountpoints inside
|
|
|
|
the volume will point to the same directory unless the B<-mountpoint>
|
|
|
|
option is also specified.
|
|
|
|
|
|
|
|
=item B<-extension> <I<name extension>>
|
|
|
|
|
|
|
|
By default, the name of the directory created matches the RW volume name
|
|
|
|
of the volume in the dump file. If this option is used, the directory
|
|
|
|
name will be the RW volume name I<name extension> as the suffix.
|
|
|
|
|
|
|
|
=item B<-mountpoint> <I<mount point root>>
|
|
|
|
|
|
|
|
By default, mountpoints inside the volume being restored point to the
|
|
|
|
value given by I<-dir>. This option allows mountpoints to be resolved
|
|
|
|
relative to another path. A common use for this would be to specify a
|
|
|
|
path under F</afs> as the mount point root so that mountpoints inside the
|
|
|
|
restored volume would be resolved via AFS.
|
|
|
|
|
|
|
|
The I<mount point root> must exist, and the process running the command
|
|
|
|
have read access to that directory, or the command will fail.
|
|
|
|
|
2013-06-30 23:59:02 +01:00
|
|
|
=item B<-umask> <I<mode mask>>
|
|
|
|
|
|
|
|
Sets the umask while creating files. If not specified, the current process
|
|
|
|
umask is used. All directories are created with mode C<0777> (ANDed with the
|
|
|
|
umask), and files are created with the owner, group, and user mode bits set to
|
|
|
|
the owner mode bits of the relevant AFS file (ANDed with the umask).
|
|
|
|
|
|
|
|
=item B<-help>
|
|
|
|
|
|
|
|
Prints the online help for this command. All other valid options are
|
|
|
|
ignored.
|
|
|
|
|
|
|
|
|
2009-05-18 20:46:33 +01:00
|
|
|
=back
|
|
|
|
|
|
|
|
=head1 EXAMPLES
|
|
|
|
|
|
|
|
The following command restores the contents of the dumpfile in
|
|
|
|
F<sample.dump> to the directory F</tmp/sample.2009-05-17>, but having all
|
|
|
|
mountpoints inside the volume point to AFS (note that this requires
|
|
|
|
knowledge of where F<sample> is mounted in AFS):
|
|
|
|
|
|
|
|
% restorevol -file sample.dump -dir /tmp -extension .2009-05-17 \
|
doc: replace hostnames with IETF example hostnames
There were several different real and made-up hostnames and company names used
throughout our documentation examples.
The IETF has reserved "example.com" and other "example" TLDs for use in
examples (RFC 2606). Replace almost all references to ABC Corporation, DEF
Corporation, and State University, as well as "abc.com", "bigcell.com",
"def.com", "def.gov", "ghi.com", "ghi.gov", "jkl.com", "mit.edu",
"stanford.edu", "state.edu", "stateu.edu", "uncc.edu", and "xyz.com".
Standardize on "Example Corporation", "Example Network", "Example
Organization" (example.com, example.net, and example.org).
The Scout documentation in the Admin Guide contains PNG images that contain
the old cell names, so I left those references until the images can be
replaced.
Change-Id: I4e44815b2d2ffe204810b7fd850842248f67c367
Reviewed-on: http://gerrit.openafs.org/6697
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
2012-02-11 16:43:30 +00:00
|
|
|
-mountpoint /afs/example.com/sample
|
2009-05-18 20:46:33 +01:00
|
|
|
Restoring volume dump of 'sample' to directory '/tmp/sample.2009-05-17'
|
|
|
|
|
|
|
|
=head1 PRIVILEGE REQUIRED
|
|
|
|
|
|
|
|
The issuer must have read access to the dump file and write access to the
|
|
|
|
directory into which the dump is restored. If the B<-mountpoint> flag is
|
|
|
|
given, the issuer must also have read access to that directory.
|
|
|
|
|
|
|
|
=head1 SEE ALSO
|
|
|
|
|
|
|
|
L<salvager(8)>,
|
|
|
|
L<voldump(8)>,
|
|
|
|
L<vos_dump(1)>,
|
|
|
|
L<vos_restore(1)>
|
|
|
|
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
|
|
|
Copyright 2009 Steven Jenkins <steven@endpoint.com>
|
|
|
|
|
|
|
|
This documentation is covered by the BSD License as written in the
|
|
|
|
doc/LICENSE file. This man page was written by Steven Jenkins for
|
|
|
|
OpenAFS.
|