use Data::Dumper;
use File::Temp qw/tempdir/;
use XML::Writer;
+use Locale::TextDomain 'libguestfs';
=encoding utf8
=cut
GetOptions ("help|?" => \$help,
- "version" => \$version,
- "connect|c=s" => \$uri,
- "output|o=s" => \$output,
+ "version" => \$version,
+ "connect|c=s" => \$uri,
+ "output|o=s" => \$output,
) or pod2usage (2);
pod2usage (1) if $help;
if ($version) {
print "$h{major}.$h{minor}.$h{release}$h{extra}\n";
exit
}
-pod2usage ("$0: no image or VM names given") if @ARGV == 0;
+pod2usage (__"virt-v2v: no image or VM names given") if @ARGV == 0;
# XXX This should be an option. Disable for now until we get
# downloads working reliably.
# Now query each one to build up a picture of what's in it.
my %fses =
inspect_all_partitions ($g, \@partitions,
- use_windows_registry => $use_windows_registry);
+ use_windows_registry => $use_windows_registry);
#print "fses -----------\n";
#print Dumper(\%fses);
#print "oses -----------\n";
#print Dumper($oses);
-# We should probably refuse to do anything with those rare
-# multiboot VMs at this point ... (XXX)
+# Only work on single-root operating systems.
+my $root_dev;
+my @roots = keys %$oses;
+die __"no root device found in this operating system image" if @roots == 0;
+die __"multiboot operating systems are not supported by v2v" if @roots > 1;
+$root_dev = $roots[0];
# Mount up the disks and check for applications.
-my $root_dev;
-foreach $root_dev (sort keys %$oses) {
- my $os = $oses->{$root_dev};
- mount_operating_system ($g, $os);
- inspect_in_detail ($g, $os);
- $g->umount_all ();
-}
+my $os = $oses->{$root_dev};
+mount_operating_system ($g, $os);
+inspect_in_detail ($g, $os);
+$g->umount_all ();
+
+
+