From: Dobrica Pavlinusic Date: Thu, 2 Oct 2014 14:08:32 +0000 (+0200) Subject: use partition from nbd max_part=8 X-Git-Url: http://git.rot13.org/?p=vmdk-backup;a=commitdiff_plain;h=ae28c6fdc7d34a4f2be9cee66c8cf391bcf73833 use partition from nbd max_part=8 --- diff --git a/debian-install.sh b/debian-install.sh index 23f2580..cc10ad1 100755 --- a/debian-install.sh +++ b/debian-install.sh @@ -1,4 +1,4 @@ #!/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 diff --git a/vmdk-backup.pl b/vmdk-backup.pl index e66193f..55ae761 100755 --- a/vmdk-backup.pl +++ b/vmdk-backup.pl @@ -42,7 +42,7 @@ open(my $pv, '-|', "pvs --noheadings --options pv_name --unbuffered"); while(<$pv>) { chomp; s/ *//g; - if ( s{$sda}{mapper/nbd0p} ) { + if ( s{$sda}{nbd0p} ) { push @pvs, $_; } else { warn "SKIP pv $_\n"; @@ -90,7 +90,7 @@ warn "begin vmdk creation...\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 ) { @@ -105,8 +105,6 @@ sleep 1; sh "sfdisk -d /dev/$sda | sfdisk --force /dev/nbd0"; -sh "kpartx -av /dev/nbd0"; - sh "pvcreate $_" foreach @pvs; sh "vgcreate $vg_backup @pvs"; @@ -119,7 +117,7 @@ my @umount; 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; @@ -154,7 +152,6 @@ if ( my $swap = (grep { $blks->{$_}->{TYPE} eq 'swap' } keys %$blks)[0] ) { sh "mkswap $label $dev"; } - warn "cleanup...\n"; sh "umount $_" foreach @umount; @@ -165,9 +162,8 @@ sh "vgchange --available n $vg_backup"; 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";