diff options
-rw-r--r-- | perl-install/any.pm | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/perl-install/any.pm b/perl-install/any.pm index f1323bbe4..ce7e93feb 100644 --- a/perl-install/any.pm +++ b/perl-install/any.pm @@ -98,14 +98,17 @@ sub setupBootloader { my $automatic = !$::expert && $more < 1; my $semi_auto = !$::expert && arch() !~ /ia64/; my $ask_per_entries = $::expert || $more > 1; - $automatic = 0 if arch() =~ /ppc/; #- no auto for PPC yet - if ((grep { $_->{device} =~ /^sd/ } @$hds) && (grep { $_->{device} =~ /^hd/ } @$hds) || - (grep { $_->{device} =~ /^hd[fghi]/ } @$hds) && (grep { $_->{device} =~ /^hd[abcd]/ } @$hds) - ) { + my $prev_boot = $b->{boot}; + my $mixed_kind_of_disks = + (grep { $_->{device} =~ /^sd/ } @$hds) && (grep { $_->{device} =~ /^hd/ } @$hds) || + (grep { $_->{device} =~ /^hd[fghi]/ } @$hds) && (grep { $_->{device} =~ /^hd[abcd]/ } @$hds); + + if ($mixed_kind_of_disks) { $automatic = $semi_auto = 0; #- full expert questions when there is 2 kind of disks #- it would need a semi_auto asking on which drive the bios boots... } + $automatic = 0 if arch() =~ /ppc/; #- no auto for PPC yet if ($automatic) { #- automatic @@ -226,6 +229,21 @@ sub setupBootloader { } } + #- remove bios mapping if the user changed the boot device + delete $b->{bios} if $b->{boot} ne $prev_boot; + + if ($mixed_kind_of_disks && +# $b->{boot} !~ /$hds->[0]{device}/ && #- not the first disk + $b->{boot} =~ /\d$/ && #- on a partition + is_empty_hash_ref($b->{bios}) #- some bios mapping already there + ) { + my $hd = $in->ask_from_listf('', _("You decided to install the bootloader on a partition. +This implies you already have a bootloader on the hard drive you boot (eg: System Commander). + +On which drive are you booting?"), \&partition_table::description, $hds) or goto &setupBootloader; + $b->{first_hd_device} = "/dev/$hd->{device}"; + } + $ask_per_entries or return 1; while (1) { |