diff options
-rw-r--r-- | perl-install/any.pm | 2 | ||||
-rw-r--r-- | perl-install/bootloader.pm | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/perl-install/any.pm b/perl-install/any.pm index 77798e038..1cd0f4e7a 100644 --- a/perl-install/any.pm +++ b/perl-install/any.pm @@ -255,7 +255,7 @@ sub setupBootloader__general { my ($in, $b, $all_hds, $fstab, $security) = @_; return if is_xbox(); - my @method_choices = bootloader::method_choices($fstab); + my @method_choices = bootloader::method_choices($all_hds); my $prev_force_acpi = my $force_acpi = bootloader::get_append_with_key($b, 'acpi') !~ /off|ht/; my $prev_force_noapic = my $force_noapic = bootloader::get_append_simple($b, 'noapic'); my $prev_force_nolapic = my $force_nolapic = bootloader::get_append_simple($b, 'nolapic'); diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm index 4468e814c..a30d9bf9f 100644 --- a/perl-install/bootloader.pm +++ b/perl-install/bootloader.pm @@ -820,7 +820,7 @@ wait for default boot. $bootloader->{default} ||= $preferred; } $bootloader->{default} ||= "linux"; - $bootloader->{method} ||= first(method_choices($fstab)); + $bootloader->{method} ||= first(method_choices($all_hds)); } sub detect_main_method { @@ -870,13 +870,16 @@ sub method_choices_raw { ); } sub method_choices { - my ($fstab) = @_; + my ($all_hds) = @_; + my $fstab = [ fs::get::fstab($all_hds) ]; my $root_part = fs::get::root($fstab); + my $boot_part = fs::get::root($fstab, 'boot'); + my $boot_disk = fs::get::part2hd($boot_part, $all_hds); grep { - !(/lilo/ && isLoopback($root_part)) - && !(/lilo-graphic/ && detect_devices::matching_desc__regexp('ProSavageDDR')) - && !(/grub/ && isRAID($root_part)); + (!/lilo/ || !isLoopback($root_part) && !fs::type::is_dmraid($boot_disk)) + && (!/lilo-graphic/ || !detect_devices::matching_desc__regexp('ProSavageDDR')) + && (!/grub/ || !isRAID($root_part)); } method_choices_raw(1); } sub main_method_choices { |