equal
deleted
inserted
replaced
18 } |
18 } |
19 |
19 |
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 $r; |
23 my $h; |
24 |
24 |
25 foreach my $fs ( |
25 foreach my $fs (grep { exists $devs->{volume}{$_}{type} and $devs->{volume}{$_}{type} =~ /^ext/i } @{$devs->{volumes}}) |
26 grep { $devs->{volume}{$_}{type} =~ /^ext/i } |
|
27 grep { exists $devs->{volume}{$_}{type} } |
|
28 keys %{ $devs->{volume} } |
|
29 ) |
|
30 { |
26 { |
31 run("mount -r $fs $mnt"); |
27 run("mount -r $fs $mnt"); |
32 if (-f "$mnt/etc/hostname") { |
28 if (-f "$mnt/etc/hostname") { |
33 die "ERR: found 2nd hostname" if defined $r; |
29 chomp($h = cat("$mnt/etc/hostname")); |
34 chomp($r = cat("$mnt/etc/hostname")); |
|
35 } |
30 } |
36 run("umount $mnt"); |
31 run("umount $mnt"); |
|
32 return $h if defined $h; |
37 } |
33 } |
38 |
34 |
39 return $r; |
35 return $h; |
40 } |
36 } |
|
37 |
|
38 sub fsck(\%) { |
|
39 my $devs = shift; |
|
40 |
|
41 foreach my $v ( grep { exists $devs->{volume}{type} } keys %{$devs->{volume}} ) { |
|
42 my $volume = $devs->{volume}{$v}; |
|
43 next if $volume->{type} !~ /^ext/i; |
|
44 |
|
45 system("fsck -C0 $v"); |
|
46 die "ERR: fsck failed\n" if $? > 2; |
|
47 } |
|
48 } |
|
49 |
41 |
50 |
42 1; |
51 1; |
43 |
52 |
44 # vim:sts=4 sw=4 aw ai si: |
53 # vim:sts=4 sw=4 aw ai si: |