From: Richard Jones Date: Mon, 13 Jul 2009 17:28:45 +0000 (+0100) Subject: Only allow virt-v2v to be run on single root guests (ie. no multi-boot). X-Git-Tag: 1.0.59~9 X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=commitdiff_plain;h=c7845fb23e1353ae0331d8300271f813b637628c;hp=4e444d5c09d78b0d292d95d1f97de12f26cc139d Only allow virt-v2v to be run on single root guests (ie. no multi-boot). --- diff --git a/v2v/virt-v2v.pl b/v2v/virt-v2v.pl index 87da66b..d3fa647 100755 --- a/v2v/virt-v2v.pl +++ b/v2v/virt-v2v.pl @@ -201,18 +201,22 @@ my $oses = inspect_operating_systems ($g, \%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 (); + + +