summaryrefslogtreecommitdiffstats
path: root/perl-install/partition_table.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/partition_table.pm')
-rw-r--r--perl-install/partition_table.pm5
1 files changed, 3 insertions, 2 deletions
diff --git a/perl-install/partition_table.pm b/perl-install/partition_table.pm
index 9d13745d5..fc43e53ab 100644
--- a/perl-install/partition_table.pm
+++ b/perl-install/partition_table.pm
@@ -316,15 +316,16 @@ sub adjust_main_extended($) {
# the first is a special case, must recompute its real size
my $start = round_down($l->{normal}{start} - 1, $hd->{geom}{sectors});
my $end = $l->{normal}{start} + $l->{normal}{size};
- my $only_linux = 1;
+ my $only_linux = 1; my $has_win_lba = 0;
foreach (map $_->{normal}, $l, @l) {
$start = min($start, $_->{start});
$end = max($end, $_->{start} + $_->{size});
$only_linux &&= isTrueFS($_) || isSwap($_);
+ $has_win_lba ||= $_->{type} == 0xc || $_->{type} == 0xe;
}
$l->{start} = $hd->{primary}{extended}{start} = $start;
$l->{size} = $hd->{primary}{extended}{size} = $end - $start;
- $hd->{primary}{extended}{type} = $only_linux ? 0x85 : 0x5 if !$::expert;
+ $hd->{primary}{extended}{type} = $only_linux ? 0x85 : $has_win_lba ? 0xf : 0x5 if !$::expert;
}
unless (@{$hd->{extended} || []} || !$hd->{primary}{extended}) {
%{$hd->{primary}{extended}} = (); #- modify the raw entry