#!/bin/sh -xe
-apt-get install -y kpartx dump libipc-system-simple-perl
+apt-get install -y dump libipc-system-simple-perl
apt-get install -y -t squeeze-backports qemu-utils
while(<$pv>) {
chomp;
s/ *//g;
- if ( s{$sda}{mapper/nbd0p} ) {
+ if ( s{$sda}{nbd0p} ) {
push @pvs, $_;
} else {
warn "SKIP pv $_\n";
my $size = `blockdev --getsize64 /dev/$sda`;
sh "qemu-img create -f vmdk -o compat6 $vmdk $size";
-sh "modprobe nbd";
+sh "modprobe nbd max_part=8";
my $nbd_pid;
if ( $nbd_pid = fork ) {
sh "sfdisk -d /dev/$sda | sfdisk --force /dev/nbd0";
-sh "kpartx -av /dev/nbd0";
-
sh "pvcreate $_" foreach @pvs;
sh "vgcreate $vg_backup @pvs";
sub dev_to_backup {
my $dev = shift;
- $dev =~ s{/dev/$sda}{/dev/mapper/nbd0p} ||
+ $dev =~ s{/dev/$sda}{/dev/nbd0p} ||
$dev =~ s{/dev/mapper/.+-([^-]+)}{/dev/mapper/$vg_backup-$1} ||
die "can't map $dev to new backup device!";
return $dev;
sh "mkswap $label $dev";
}
-
warn "cleanup...\n";
sh "umount $_" foreach @umount;
sh "vgexport $vg_backup";
-sh "kpartx -dv /dev/nbd0";
-
warn "finished in ", time() - $start_t, " seconds\n";
sh "qemu-nbd --disconnect /dev/nbd0";
+sh "rmmod nbd";