our $xl= toolstack()->{Command};
-our $freebsd_qcow2= '/root/freebsd.qcow2';
-our $freebsd_raw= '/root/freebsd.raw';
-
our $mnt= '/root/freebsd_root';
our $freebsd_version= "10.0-BETA3";
sub prep () {
my $authkeys= authorized_keys();
- target_install_packages_norec($ho, qw(lvm2 wget qemu-utils
+ target_install_packages_norec($ho, qw(rsync lvm2 qemu-utils
xz-utils kpartx));
$gho= prepareguest($ho, $gn, $guesthost, 22,
more_prepareguest_hvm($ho, $gho, $ram_mb, $disk_mb, NoCdromImage => 1);
- my $freebsd_img = $r{"$gho->{Guest}_image"};
- if (!defined $freebsd_img) {
- $freebsd_img = "$freebsd_vm_repo/FreeBSD-$freebsd_version-";
- # Use amd64 as default arch
- $freebsd_img .= defined($r{"$gho->{Guest}_arch"})
- ? $r{"$gho->{Guest}_arch"} : 'amd64';
- $freebsd_img .= ".qcow2.xz";
- }
-
+ target_put_guest_image($ho, $gho,
+ "$freebsd_vm_repo/FreeBSD-$freebsd_version-".
+ (defined($r{"$gho->{Guest}_arch"})
+ # Use amd64 as default arch
+ ? $r{"$gho->{Guest}_arch"} : 'amd64').
+ ".qcow2.xz");
+
my $rootpartition_dev = "/dev/mapper/$gho->{Vg}-$gho->{Name}--disk3";
target_cmd_root($ho, "umount $gho->{Lvdev} ||:");
+ my $rimage = $gho->{Rimage};
+ my $rimagebase = $rimage; $rimagebase =~ s/\.\w+$//;
+
target_cmd_root($ho, <<END, 900);
set -ex
- xz -dkc $freebsd_img > $freebsd_qcow2
- qemu-img convert -f qcow2 $freebsd_qcow2 -O raw $freebsd_raw
- rm -rf $freebsd_qcow2
- dd if=$freebsd_raw of=$gho->{Lvdev} bs=1M
- rm -rf $freebsd_raw
+ xz -dkc $rimage > $rimagebase.qcow2
+ qemu-img convert -f qcow2 $rimagebase.qcow2 -O raw $rimagebase.raw
+ rm $rimagebase.qcow2
+ dd if=$rimagebase.raw of=$gho->{Lvdev} bs=1M
+ rm $rimagebase.raw
kpartx -a $gho->{Lvdev}
mkdir -p $mnt