mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
section. Ensure each man page contains consistent COPYRIGHT and AUTHOR sections. Remove the LICENSE section. We will add that back in podwrapper in a later commit.
407 lines
11 KiB
Plaintext
Executable File
407 lines
11 KiB
Plaintext
Executable File
=encoding utf8
|
|
|
|
=head1 NAME
|
|
|
|
virt-filesystems - List filesystems, partitions, block devices, LVM in a virtual machine or disk image
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
virt-filesystems [--options] -d domname
|
|
|
|
virt-filesystems [--options] -a disk.img [-a disk.img ...]
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This tool allows you to discover filesystems, partitions, logical
|
|
volumes, and their sizes in a disk image or virtual machine. It is a
|
|
replacement for L<virt-list-filesystems(1)> and
|
|
L<virt-list-partitions(1)>.
|
|
|
|
One use for this tool is from shell scripts to iterate over all
|
|
filesystems from a disk image:
|
|
|
|
for fs in $(virt-filesystems -a disk.img); do
|
|
# ...
|
|
done
|
|
|
|
Another use is to list partitions before using another tool to modify
|
|
those partitions (such as L<virt-resize(1)>). If you are curious
|
|
about what an unknown disk image contains, use this tool along with
|
|
L<virt-inspector(1)>.
|
|
|
|
Various command line options control what this program displays. You
|
|
need to give either I<-a> or I<-d> options to specify the disk image
|
|
or libvirt guest respectively. If you just specify that then the
|
|
program shows filesystems found, one per line, like this:
|
|
|
|
$ virt-filesystems -a disk.img
|
|
/dev/sda1
|
|
/dev/vg_guest/lv_root
|
|
|
|
If you add I<-l> or I<--long> then the output includes extra
|
|
information:
|
|
|
|
$ virt-filesystems -a disk.img -l
|
|
Name Type VFS Label Size
|
|
/dev/sda1 filesystem ext4 boot 524288000
|
|
/dev/vg_guest/lv_root filesystem ext4 root 10212081664
|
|
|
|
If you add I<--extra> then non-mountable (swap, unknown) filesystems
|
|
are shown as well:
|
|
|
|
$ virt-filesystems -a disk.img --extra
|
|
/dev/sda1
|
|
/dev/vg_guest/lv_root
|
|
/dev/vg_guest/lv_swap
|
|
/dev/vg_guest/lv_data
|
|
|
|
If you add I<--partitions> then partitions are shown instead of filesystems:
|
|
|
|
$ virt-filesystems -a disk.img --partitions
|
|
/dev/sda1
|
|
/dev/sda2
|
|
|
|
Similarly you can use I<--logical-volumes>, I<--volume-groups>,
|
|
I<--physical-volumes>, I<--block-devices> to list those items.
|
|
|
|
You can use these options in combination as well (if you want a
|
|
combination including filesystems, you have to add I<--filesystems>).
|
|
Notice that some items fall into several categories (eg. C</dev/sda1>
|
|
might be both a partition and a filesystem). These items are listed
|
|
several times. To get a list which includes absolutely everything
|
|
that virt-filesystems knows about, use the I<--all> option.
|
|
|
|
UUIDs (because they are quite long) are not shown by default. Add the
|
|
I<--uuid> option to display device and filesystem UUIDs in the long
|
|
output.
|
|
|
|
I<--all --long --uuid> is a useful combination to display all possible
|
|
information about everything.
|
|
|
|
$ virt-filesystems -a win.img --all --long --uuid -h
|
|
Name Type VFS Label Size Parent UUID
|
|
/dev/sda1 filesystem ntfs System Reserved 100M - F81C92571C92112C
|
|
/dev/sda2 filesystem ntfs - 20G - F2E8996AE8992E3B
|
|
/dev/sda1 partition - - 100M /dev/sda -
|
|
/dev/sda2 partition - - 20G /dev/sda -
|
|
/dev/sda device - - 20G - -
|
|
|
|
For machine-readable output, use I<--csv> to get Comma-Separated Values.
|
|
|
|
=head1 OPTIONS
|
|
|
|
=over 4
|
|
|
|
=item B<--help>
|
|
|
|
Display brief help.
|
|
|
|
=item B<-a> file
|
|
|
|
=item B<--add> file
|
|
|
|
Add I<file> which should be a disk image from a virtual machine. If
|
|
the virtual machine has multiple block devices, you must supply all of
|
|
them with separate I<-a> options.
|
|
|
|
The format of the disk image is auto-detected. To override this and
|
|
force a particular format use the I<--format=..> option.
|
|
|
|
=item B<--all>
|
|
|
|
Display everything. This is currently the same as specifying these
|
|
options: I<--filesystems>, I<--extra>, I<--partitions>,
|
|
I<--block-devices>, I<--logical-volumes>, I<--volume-groups>,
|
|
I<--physical-volumes>. (More may be added to this list in future).
|
|
|
|
See also I<--long>.
|
|
|
|
=item B<--blkdevs>
|
|
|
|
=item B<--block-devices>
|
|
|
|
Display block devices.
|
|
|
|
=item B<-c> URI
|
|
|
|
=item B<--connect> URI
|
|
|
|
If using libvirt, connect to the given I<URI>. If omitted, then we
|
|
connect to the default libvirt hypervisor.
|
|
|
|
If you specify guest block devices directly (I<-a>), then libvirt is
|
|
not used at all.
|
|
|
|
=item B<--csv>
|
|
|
|
Write out the results in CSV format (comma-separated values). This
|
|
format can be imported easily into databases and spreadsheets, but
|
|
read L</NOTE ABOUT CSV FORMAT> below.
|
|
|
|
=item B<-d> guest
|
|
|
|
=item B<--domain> guest
|
|
|
|
Add all the disks from the named libvirt guest. Domain UUIDs can be
|
|
used instead of names.
|
|
|
|
=item B<--echo-keys>
|
|
|
|
When prompting for keys and passphrases, virt-filesystems normally
|
|
turns echoing off so you cannot see what you are typing. If you are
|
|
not worried about Tempest attacks and there is no one else in the room
|
|
you can specify this flag to see what you are typing.
|
|
|
|
=item B<--extra>
|
|
|
|
This causes filesystems that are not ordinary, mountable filesystems
|
|
to be displayed. This category includes swapspace, and filesystems
|
|
that are empty or contain unknown data.
|
|
|
|
This option implies I<--filesystems>.
|
|
|
|
=item B<--filesystems>
|
|
|
|
Display mountable filesystems. If no display option was selected then
|
|
this option is implied.
|
|
|
|
With I<--extra>, non-mountable filesystems are shown too.
|
|
|
|
=item B<--format=raw|qcow2|..>
|
|
|
|
=item B<--format>
|
|
|
|
The default for the I<-a> option is to auto-detect the format of the
|
|
disk image. Using this forces the disk format for I<-a> options which
|
|
follow on the command line. Using I<--format> with no argument
|
|
switches back to auto-detection for subsequent I<-a> options.
|
|
|
|
For example:
|
|
|
|
virt-filesystems --format=raw -a disk.img
|
|
|
|
forces raw format (no auto-detection) for C<disk.img>.
|
|
|
|
virt-filesystems --format=raw -a disk.img --format -a another.img
|
|
|
|
forces raw format (no auto-detection) for C<disk.img> and reverts to
|
|
auto-detection for C<another.img>.
|
|
|
|
If you have untrusted raw-format guest disk images, you should use
|
|
this option to specify the disk format. This avoids a possible
|
|
security problem with malicious guests (CVE-2010-3851).
|
|
|
|
=item B<-h>
|
|
|
|
=item B<--human-readable>
|
|
|
|
In I<--long> mode, display sizes in human-readable format.
|
|
|
|
=item B<--keys-from-stdin>
|
|
|
|
Read key or passphrase parameters from stdin. The default is
|
|
to try to read passphrases from the user by opening C</dev/tty>.
|
|
|
|
=item B<-l>
|
|
|
|
=item B<--long>
|
|
|
|
Display extra columns of data ("long format").
|
|
|
|
A title row is added unless you also specify I<--no-title>.
|
|
|
|
The extra columns displayed depend on what output you select, and the
|
|
ordering of columns may change in future versions. Use the title row,
|
|
I<--csv> output and/or L<csvtool(1)> to match columns to data in
|
|
external programs.
|
|
|
|
Use I<-h> if you want sizes to be displayed in human-readable format.
|
|
The default is to show raw numbers of I<bytes>.
|
|
|
|
Use I<--uuid> to display UUIDs too.
|
|
|
|
=item B<--lvs>
|
|
|
|
=item B<--logvols>
|
|
|
|
=item B<--logical-volumes>
|
|
|
|
Display LVM logical volumes. In this mode, these are displayed
|
|
irrespective of whether the LVs contain filesystems.
|
|
|
|
=item B<--no-title>
|
|
|
|
In I<--long> mode, don't add a title row.
|
|
|
|
Note that the order of the columns is not fixed, and may change in
|
|
future versions of virt-filesystems, so using this option may give you
|
|
unexpected surprises.
|
|
|
|
=item B<--parts>
|
|
|
|
=item B<--partitions>
|
|
|
|
Display partitions. In this mode, these are displayed
|
|
irrespective of whether the partitions contain filesystems.
|
|
|
|
=item B<--pvs>
|
|
|
|
=item B<--physvols>
|
|
|
|
=item B<--physical-volumes>
|
|
|
|
Display LVM physical volumes.
|
|
|
|
=item B<--uuid>
|
|
|
|
=item B<--uuids>
|
|
|
|
In I<--long> mode, display UUIDs as well.
|
|
|
|
=item B<-v>
|
|
|
|
=item B<--verbose>
|
|
|
|
Enable verbose messages for debugging.
|
|
|
|
=item B<-V>
|
|
|
|
=item B<--version>
|
|
|
|
Display version number and exit.
|
|
|
|
=item B<--vgs>
|
|
|
|
=item B<--volgroups>
|
|
|
|
=item B<--volume-groups>
|
|
|
|
Display LVM volume groups.
|
|
|
|
=item B<-x>
|
|
|
|
Enable tracing of libguestfs API calls.
|
|
|
|
=back
|
|
|
|
=head1 COLUMNS
|
|
|
|
Note that columns in the output are subject to reordering and change
|
|
in future versions of this tool.
|
|
|
|
=over 4
|
|
|
|
=item B<Name>
|
|
|
|
The filesystem, partition, block device or LVM name.
|
|
|
|
For device and partition names these are displayed as canonical
|
|
libguestfs names, so that for example C</dev/sda2> is the second
|
|
partition on the first device.
|
|
|
|
If the I<--long> option is B<not> specified, then only the name column
|
|
is shown in the output.
|
|
|
|
=item B<Type>
|
|
|
|
The object type, for example C<filesystem>, C<lv>, C<device> etc.
|
|
|
|
=item B<VFS>
|
|
|
|
If there is a filesystem, then this column displays the filesystem
|
|
type if one could be detected, eg. C<ext4>.
|
|
|
|
=item B<Label>
|
|
|
|
If the object has a label (used for identifying and mounting
|
|
filesystems) then this column contains the label.
|
|
|
|
=item B<MBR>
|
|
|
|
The partition type byte, displayed as a two digit hexadecimal number.
|
|
A comprehensive list of partition types can be found here:
|
|
L<http://www.win.tue.nl/~aeb/partitions/partition_types-1.html>
|
|
|
|
This is only applicable for DOS (MBR) partitions.
|
|
|
|
=item B<Size>
|
|
|
|
The size of the object in bytes. If the I<--human> option is used
|
|
then the size is displayed in a human-readable form.
|
|
|
|
=item B<Parent>
|
|
|
|
The parent column records the parent relationship between objects.
|
|
|
|
For example, if the object is a partition, then this column contains
|
|
the name of the containing device. If the object is a logical volume,
|
|
then this column is the name of the volume group.
|
|
|
|
If there is more than one parent, then this column is (internal to the
|
|
column) a comma-separated list, eg. C</dev/sda,/dev/sdb>.
|
|
|
|
=item B<UUID>
|
|
|
|
If the object has a UUID (used for identifying and mounting
|
|
filesystems and block devices) then this column contains the UUID as a
|
|
string.
|
|
|
|
The UUID is only displayed if the I<--uuid> option is given.
|
|
|
|
=back
|
|
|
|
=head1 NOTE ABOUT CSV FORMAT
|
|
|
|
Comma-separated values (CSV) is a deceptive format. It I<seems> like
|
|
it should be easy to parse, but it is definitely not easy to parse.
|
|
|
|
Myth: Just split fields at commas. Reality: This does I<not> work
|
|
reliably. This example has two columns:
|
|
|
|
"foo,bar",baz
|
|
|
|
Myth: Read the file one line at a time. Reality: This does I<not>
|
|
work reliably. This example has one row:
|
|
|
|
"foo
|
|
bar",baz
|
|
|
|
For shell scripts, use C<csvtool> (L<http://merjis.com/developers/csv>
|
|
also packaged in major Linux distributions).
|
|
|
|
For other languages, use a CSV processing library (eg. C<Text::CSV>
|
|
for Perl or Python's built-in csv library).
|
|
|
|
Most spreadsheets and databases can import CSV directly.
|
|
|
|
=head1 SHELL QUOTING
|
|
|
|
Libvirt guest names can contain arbitrary characters, some of which
|
|
have meaning to the shell such as C<#> and space. You may need to
|
|
quote or escape these characters on the command line. See the shell
|
|
manual page L<sh(1)> for details.
|
|
|
|
=head1 EXIT STATUS
|
|
|
|
This program returns 0 if successful, or non-zero if there was an
|
|
error.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<guestfs(3)>,
|
|
L<guestfish(1)>,
|
|
L<virt-cat(1)>,
|
|
L<virt-df(1)>,
|
|
L<virt-list-filesystems(1)>,
|
|
L<virt-list-partitions(1)>,
|
|
L<csvtool(1)>,
|
|
L<http://libguestfs.org/>.
|
|
|
|
=head1 AUTHOR
|
|
|
|
Richard W.M. Jones L<http://people.redhat.com/~rjones/>
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright (C) 2010-2012 Red Hat Inc.
|