SI/system.pm
branchstable
changeset 26 39421a9700c5
parent 19 d12753b246fd
equal deleted inserted replaced
25:8242547f4965 26:39421a9700c5
    20 sub hostname(\%) {
    20 sub hostname(\%) {
    21     my $devs = shift;
    21     my $devs = shift;
    22     my $mnt = tempdir(CLEANUP => 1);
    22     my $mnt = tempdir(CLEANUP => 1);
    23     my $h;
    23     my $h;
    24 
    24 
    25     foreach my $fs (grep { exists $devs->{volume}{$_}{type} and $devs->{volume}{$_}{type} =~ /^ext/i } @{$devs->{volumes}})
    25     foreach my $fs (
       
    26         grep {
       
    27             exists $devs->{volume}{$_}{type}
       
    28               and $devs->{volume}{$_}{type} =~ /^ext/i
       
    29         } @{ $devs->{volumes} }
       
    30       )
    26     {
    31     {
    27         run("mount -r $fs $mnt");
    32         run("mount -r $fs $mnt");
    28         if (-f "$mnt/etc/hostname") {
    33         if (-f "$mnt/etc/hostname") {
    29             chomp($h = cat("$mnt/etc/hostname"));
    34             chomp($h = cat("$mnt/etc/hostname"));
    30         }
    35         }
    31         run("umount $mnt");
    36         run("umount $mnt");
    32 	return $h if defined $h;
    37         return $h if defined $h;
    33     }
    38     }
    34 
    39 
    35     return $h;
    40     return $h;
    36 }
    41 }
    37 
    42 
    38 sub fsck(\%) {
    43 sub fsck(\%) {
    39 	my $devs = shift;
    44     my $devs = shift;
    40 
    45 
    41 	foreach my $v ( grep { exists $devs->{volume}{type} } keys %{$devs->{volume}} ) {
    46     foreach
    42 		my $volume = $devs->{volume}{$v};
    47       my $v (grep { exists $devs->{volume}{type} } keys %{ $devs->{volume} })
    43 		next if $volume->{type} !~ /^ext/i;
    48     {
       
    49         my $volume = $devs->{volume}{$v};
       
    50         next if $volume->{type} !~ /^ext/i;
    44 
    51 
    45 		system("fsck -C0 $v");
    52         system("fsck -C0 $v");
    46 		die "ERR: fsck failed\n" if $? > 2;
    53         die "ERR: fsck failed\n" if $? > 2;
    47 	}
    54     }
    48 }
    55 }
    49 
       
    50 
    56 
    51 1;
    57 1;
    52 
    58 
    53 # vim:sts=4 sw=4 aw ai si:
    59 # vim:sts=4 sw=4 aw ai si: