diff options
Diffstat (limited to 'perl-install/install_steps.pm')
-rw-r--r-- | perl-install/install_steps.pm | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm index d74e33b94..b8e4d07c6 100644 --- a/perl-install/install_steps.pm +++ b/perl-install/install_steps.pm @@ -127,7 +127,7 @@ sub doPartitionDisksBefore { my ($o) = @_; if (cat_("/proc/mounts") =~ m|/\w+/(\S+)\s+/tmp/hdimage\s+(\S+)| && !$o->{partitioning}{readonly}) { - $o->{stage1_hd} = { dev => $1, fs => $2 }; + $o->{stage1_hd} = { device => $1, type => $2 }; install_any::getFile("XXX"); #- close still opened filehandle eval { fs::umount("/tmp/hdimage") }; } @@ -143,13 +143,17 @@ sub doPartitionDisksAfter { partition_table::write($_) foreach @{$o->{hds}}; $_->{rebootNeeded} and $o->rebootNeeded foreach @{$o->{hds}}; } - if (my $s = delete $o->{stage1_hd}) { - eval { fs::mount($s->{dev}, "/tmp/hdimage", $s->{fs}) }; - } $o->{fstab} = [ fsedit::get_fstab(@{$o->{hds}}, $o->{raid}) ]; fsedit::get_root($o->{fstab}) or die "Oops, no root partition"; + if (my $s = delete $o->{stage1_hd}) { + my ($part) = grep { $_->{device} eq $s->{device} } @{$o->{fstab}}; + $part->{isMounted} ? + symlinkf("$o->{prefix}$part->{mntpoint}", "/tmp/hdimage") : + eval { fs::mount($s->{dev}, "/tmp/hdimage", $s->{fs}) }; + } + cat_("/proc/mounts") =~ m|(\S+)\s+/tmp/rhimage nfs| && !grep { $_->{mntpoint} eq "/mnt/nfs" } @{$o->{manualFstab} || []} and push @{$o->{manualFstab}}, { type => "nfs", mntpoint => "/mnt/nfs", device => $1, options => "noauto,ro,nosuid,rsize=8192,wsize=8192" }; |