use Pod::Usage;
use Getopt::Long;
use Locale::TextDomain 'libguestfs';
-use File::Temp qw/tempdir/;
=encoding utf8
=cut
+my $format;
+
+=item B<--format> raw
+
+Specify the format of disk images given on the command line. If this
+is omitted then the format is autodetected from the content of the
+disk image.
+
+If disk images are requested from libvirt, then this program asks
+libvirt for this information. In this case, the value of the format
+parameter is ignored.
+
+If working with untrusted raw-format guest disk images, you should
+ensure the format is always specified.
+
+=cut
+
my $long;
=item B<-l> | B<--long>
GetOptions ("help|?" => \$help,
"version" => \$version,
"connect|c=s" => \$uri,
+ "format=s" => \$format,
"long|l" => \$long,
"all|a" => \$all,
) or pod2usage (2);
my $g;
if ($uri) {
- $g = open_guest (\@ARGV, address => $uri);
+ $g = open_guest (\@ARGV, address => $uri, format => $format);
} else {
- $g = open_guest (\@ARGV);
+ $g = open_guest (\@ARGV, format => $format);
}
$g->launch ();
my $mountable = $@ ? 0 : 1;
$g->umount_all ();
if ($mountable) {
- push @fses, $dev;
+ push @fses, $dev;
} else {
- push @not_mountable, $dev;
+ push @not_mountable, $dev;
}
}
foreach $dev (@fses) {
print canonicalize($dev);
if ($long) {
- my $fstype;
- eval { $fstype = $g->vfs_type ($dev); };
- if ($fstype) {
- print " $fstype";
- } else {
- print " unknown";
- }
+ my $fstype;
+ eval { $fstype = $g->vfs_type ($dev); };
+ if ($fstype) {
+ print " $fstype";
+ } else {
+ print " unknown";
+ }
}
print "\n";
}
# If asked, look in the not_mountable list for potential swap devices.
if ($all) {
foreach $dev (@not_mountable) {
- my $file;
- eval { $file = $g->file ($dev); };
- if ($file && $file =~ /\bswap\b/) {
- print canonicalize($dev);
- print " swap" if $long;
- print "\n"
- }
+ my $file;
+ eval { $file = $g->file ($dev); };
+ if ($file && $file =~ /\bswap\b/) {
+ print canonicalize($dev);
+ print " swap" if $long;
+ print "\n"
+ }
}
}
local $_ = shift;
if (m{^/dev/[hv]d([a-z]\d)$}) {
- return "/dev/sd$1";
+ return "/dev/sd$1";
}
$_;
}
+=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 SEE ALSO
L<guestfs(3)>,
L<guestfish(1)>,
L<virt-cat(1)>,
L<virt-tar(1)>,
+L<virt-list-partitions(1)>,
L<Sys::Guestfs(3)>,
L<Sys::Guestfs::Lib(3)>,
L<Sys::Virt(3)>,
=head1 AUTHOR
-Richard W.M. Jones L<http://et.redhat.com/~rjones/>
+Richard W.M. Jones L<http://people.redhat.com/~rjones/>
=head1 COPYRIGHT