summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/any.pm2
-rw-r--r--perl-install/bootloader.pm13
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 {