create swap
authorDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 2 Oct 2014 11:41:03 +0000 (13:41 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 2 Oct 2014 11:42:00 +0000 (13:42 +0200)
vmdk-backup.pl

index 0205997..068325f 100755 (executable)
@@ -116,14 +116,19 @@ mkdir $tmp unless -d $tmp;
 
 my @umount;
 
 
 my @umount;
 
+sub dev_to_backup {
+       my $dev = shift;
+       $dev =~ s{/dev/$sda}{/dev/mapper/nbd0p} ||
+       $dev =~ s{/dev/mapper/.+-([^-]+)}{/dev/mapper/$vg_backup-$1} ||
+       die "can't map $dev to new backup device!";
+       return $dev;
+}
+
 foreach my $mount ( @mounts ) {
        my ( $dev, $path, $fs ) = @$mount;
        if ( exists $blks->{$dev} ) {
                warn "working on $dev $path $fs\n";
 foreach my $mount ( @mounts ) {
        my ( $dev, $path, $fs ) = @$mount;
        if ( exists $blks->{$dev} ) {
                warn "working on $dev $path $fs\n";
-               my $dev_backup = $dev;
-               $dev_backup =~ s{/dev/$sda}{/dev/mapper/nbd0p} ||
-               $dev_backup =~ s{/dev/mapper/.+-([^-]+)}{/dev/mapper/$vg_backup-$1} ||
-               die "can't map $dev to new backup device!";
+               my $dev_backup = dev_to_backup($dev);
                my $label = $blks->{$dev}->{LABEL};
                $label = $label ? "-L $label" : '';
                sh "mkfs.$fs $label $dev_backup";
                my $label = $blks->{$dev}->{LABEL};
                $label = $label ? "-L $label" : '';
                sh "mkfs.$fs $label $dev_backup";
@@ -140,7 +145,13 @@ foreach my $mount ( @mounts ) {
 
 chdir '/';
 
 
 chdir '/';
 
-warn "FIXME create swap\n";
+if ( my $swap = (grep { $blks->{$_}->{TYPE} eq 'swap' } keys %$blks)[0] ) {
+       my $dev = dev_to_backup($swap);
+       my $label = $blks->{$swap}->{LABEL};
+       $label = $label ? "-L $label" : '';
+       warn "create swap on $dev\n";
+       sh "mkswap $label $dev";
+}
 
 
 warn "cleanup...\n";
 
 
 warn "cleanup...\n";