equal
deleted
inserted
replaced
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: |