=head1 NAME

voldump - Dump an AFS volume without using the Volume Server

=head1 SYNOPSIS

=for html
<div class="synopsis">

B<voldump> S<<< B<-part> <I<partition>> >>> S<<< B<-volumeid> <I<volume id>> >>>
    S<<< [B<-file> <I<dump file>>] >>> [B<-time> <I<dump from time>>]
    [B<-pad-errors>] [B<-verbose>] [B<-help>]

B<voldump> S<<< B<-p> <I<partition>> >>> S<<< B<-vo> <I<volume id>> >>>
    S<<< [B<-f> <I<dump file>>] >>> [B<-time> <I<dump from time>>]
    [B<-ve>] [B<-h>]

=for html
</div>

=head1 DESCRIPTION

B<voldump> dumps an AFS volume in the format used by B<vos dump> without
using the Volume Server.  It must be run on the file server machine and
usually must be run as the superuser C<root> to have permissions to read
the file server data.  It's primary use is to recover data from a file
server machine where the Volume Server cannot be started for some reason.

The dump output will go to standard output, or to a file if B<-file> is
specified.  B<vos restore> can be used to load the resulting dump into a
new AFS volume.  B<voldump> always does a full dump.

=head1 CAUTIONS

Normally, use B<vos dump> instead of this command.  B<voldump> is a tool
of last resort to try to extract data from the raw data structures stored
on the file server machine and is not as regularly tested or used as the
normal B<vos dump> implementation.

If the AFS volume being dumped changes while B<voldump> is running, the
results may be inconsistent.  If the File Server and Volume Server are
running, stop them with B<bos shutdown> or a similar method before running
this command.

=head1 OPTIONS

=over 4

=item B<-part> <I<partition>>

Names the partition on which the volume to be dumped is located.
B<voldump> does not take the normal full range of ways of specifying a
partition.  Instead, I<partition> must be either a single letter between
C<a> and C<z>, corresponding to F</vicepa> through F</vicepz>, or the full
path to the file server partition.  C<aa> is not recognized; use
F</vicepaa> instead.

=item B<-volumeid> <I<volume id>>

Specifies the ID of the volume to dump.  The volume must be specified by
numeric ID, not by name.

=item B<-file> <I<dump file>>

Specifies the output file for the dump.  If this option is not given, the
volume will be dumped to standard output.

=item B<-time> <I<dump from time>>

Specifies whether the dump is full or incremental. Omit this argument to create
a full dump, or provide one of the valid values listed in L<vos_dump(1)>.

=item B<-pad-errors>

When reading vnode data from disk, if B<voldump> encounters an I/O error or
unexpected EOF, by default B<voldump> will print an error and exit. If
B<-pad-errors> is given, instead B<voldump> will pad the unreadable region with
NUL bytes, and continue with the dump.

This option may be useful when trying to extract data from volumes where the
underlying disk is failing, or the volume data is corrupted. Data may be
missing from files in the volume in such cases (replaced by NUL bytes), but at
least some data may be extracted.

=item B<-verbose>

Asks for a verbose trace of the dump process.  This trace information will
be sent to standard error.

=item B<-help>

Prints the online help for this command. All other valid options are
ignored.

=back

=head1 EXAMPLES

The following command dumps the volume 1936964939 on the F</vicepb>
partition to the file F</tmp/volume.dump>:

    % voldump -part /vicepb -volumeid 1936964939 -file /tmp/volume.dump

=head1 PRIVILEGE REQUIRED

The issuer must have read access to the file server data stored in the
specified partition.  Usually, this means that the issuer must be the
local superuser C<root> on the file server machine.

=head1 SEE ALSO

L<bos_shutdown(8)>,
L<restorevol(1)>,
L<volserver(8)>,
L<vos_dump(1)>,
L<vos_restore(1)>

=head1 COPYRIGHT

Copyright 2005 Russ Allbery <rra@stanford.edu>

This documentation is covered by the IBM Public License Version 1.0.  This
man page was written by Russ Allbery for OpenAFS.
