=head1 NAME

volinfo - Produces detailed statistics about AFS volume headers

=head1 SYNOPSIS

=for html
<div class="synopsis">

B<volinfo> [B<-checkout>] [B<-vnode>] [B<-date>] [B<-inode>] [B<-itime>]
    S<<< [B<-part> <I<AFS partition name (default current partition)>>+] >>>
    S<<< [B<-volumeid> <I<volume id>>+] >>> [B<-header>] [B<-sizeonly>]
    [B<-fixheader>] [B<-saveinodes>] [B<-orphaned>] [B<-filenames>] [B<-help>]

=for html
</div>

=head1 DESCRIPTION

The B<volinfo> command displays detailed statistics about one or more
volume headers and the partition that houses them. The command must be
issued on a file server machine and by default produces output for every
volume on every AFS server partition on the machine. To display output for
the volumes on one partition only, include the B<-part> argument. To
display output for one volume only, include the B<-volumeid> argument.

=head1 OPTIONS

=over 4

=item B<-checkout>

Checkout the specified volume from the running fileserver. This ensures that
the fileserver or other processes will not be modifying volume metadata at the
same time we are trying to read it, leading to invalid or incorrect results.

=item B<-vnode>

Displays a table for each volume which lists the large (directory) and
small (file) vnodes in it, in addition to the default output.

=item B<-date>

When combined with the B<-vnode> flag, adds the C<ServerModTime> field to
each vnode entry in the large vnode and small vnode tables, reporting its
most recent modification time.

=item B<-inode>

When combined with the B<-vnode> flag, adds the C<inode> field to each
vnode entry in the large vnode and small vnode tables, reporting the
associated inode number.

=item B<-itime>

When combined with the B<-vnode> flag, displays a change, modification,
and access timestamp for each of the large vnode and small vnode tables.

=item B<-part> <I<partition name or id>>+

Specifies the partition that houses each volume for which to produce
output. Use the format F</vicepI<xx>> or I<xx>, where I<xx> is one or two lowercase
letters. This argument can be omitted if the current working directory is
the mount location for an AFS server partition. If it is not the mount
location for an AFS server partition, the command produces output for
every volume on all local AFS server partitions.

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

Specifies the ID number of one volume for which to produce output.  The
B<-part> argument must be provided along with this one unless the current
working directory is the mount location for the AFS server partition that
houses the volume.

=item B<-header>

Displays statistics about the volume header of each volume, in addition to
the default output.

=item B<-sizeonly>

Displays a single line of output for each volume, reporting the size of
various structures associated with it. The default output is suppressed
and any flags that modify it (such as B<-vnode>) are ignored.

=item B<-fixheader>

Repairs damaged inodes in each volume if possible. If there are any, it
reports the action it is taking to repair them. Otherwise, it produces no
output in addition to the default output.

=item B<-saveinodes>

Creates a file in the current working directory for each inode in each
volume. Each file is called F<TmpInode.I<vnode_number>> and contains the
inode's contents. The default output is suppressed and any flags that
modify it (such as B<-vnode>) are ignored.

=item B<-orphaned>

Displays a large vnode and small vnode table for each volume, which lists
only orphaned vnodes (vnodes that have no parent). If there are none, the
tables are empty (only the headers appear).

=item B<-filenames>

When combined with the B<-vnode> flag, adds the full path and file name of the
C<namei> file which stores the vnode data to each vnode entry in the large vnode
and small vnode tables. This option is only available on fileservers which use
the C<namei> storage format for storing data.

=item B<-help>

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

=back

=head1 OUTPUT

By default, the command produces several line of statistics for each
volume. Adding other options produces or substitutes additional
information as described in L</OPTIONS>.  The output is intended for
debugging purposes and is meaningful to someone familiar with the internal
structure of volume headers.

=head1 PRIVILEGE REQUIRED

The issuer must be logged in as the local superuser C<root>.

=head1 SEE ALSO

L<volscan(8)>,
L<vldb.DB0(5)>,
L<volserver(8)>

=head1 COPYRIGHT

IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.

This documentation is covered by the IBM Public License Version 1.0.  It was
converted from HTML to POD by software written by Chas Williams and Russ
Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
