lib/SI/lvm.pm
changeset 37 a61b92c60367
parent 36 bdc967bf50d2
equal deleted inserted replaced
36:bdc967bf50d2 37:a61b92c60367
    82 sub vgcfgrestore($\%) {
    82 sub vgcfgrestore($\%) {
    83     my @cfgs = glob($_[0]);
    83     my @cfgs = glob($_[0]);
    84     my $devs = shift;
    84     my $devs = shift;
    85 
    85 
    86     foreach (@cfgs) {
    86     foreach (@cfgs) {
    87 	my $vg = basename($_);
    87 	my $vg = (split /\./, basename($_))[1];
    88 	next if $vg eq "vg.*";
    88 	next if $vg eq "*";
    89 	print $vg, "\n";
    89 	run("vgcfgrestore -f $_ $vg");
       
    90 	run("vgchange -ay $vg");
    90     }
    91     }
       
    92     run("udevadm settle");
    91 }
    93 }
    92 
    94 
    93 sub mkfs(\%) {
    95 sub mkfs(\%) {
    94     my $devs = shift;
    96     my $devs = shift;
    95     foreach my $volume ( keys %{$devs->{volume}} ) {
    97     foreach my $volume ( keys %{$devs->{volume}} ) {
    96 	my $v = $devs->{volume}{$volume};
    98 	my $v = $devs->{volume}{$volume};
    97 	next if $v->{origin} ne "lvm"
    99 	next if $v->{origin} ne "lvm"
    98 	    or not defined $v->{type};
   100 	    or not defined $v->{type};
    99 	
   101 	
   100 	my $label = default("" => $v->{label});
   102 	my $label = defined $v->{label} ? "-L '$v->{label}'" : "";
   101 	my $uuid = default("" => $v->{uuid});
   103 	my $uuid = defined $v->{uuid} ? "-U '$v->{uuid}'" : "";
   102 
   104 
   103 	given($v->{type}) {
   105 	given($v->{type}) {
   104 	    when(/ext/) {
   106 	    when(/ext/) {
   105 		run("mkfs -t $v->{type} -L '$label' -U '$uuid' $volume");
   107 		run("mkfs -t $v->{type} $label $uuid $volume");
   106 	    };
   108 	    };
   107 	    when(/swap/) {
   109 	    when(/swap/) {
   108 		run("mkswap -L '$label' -U '$uuid' $volume");
   110 		run("mkswap $label $uuid $volume");
   109 	    };
   111 	    };
   110 	}
   112 	}
   111     }
   113     }
   112 }
   114 }
   113 
   115