summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/fsedit.pm4
-rw-r--r--perl-install/partition_table.pm5
2 files changed, 9 insertions, 0 deletions
diff --git a/perl-install/fsedit.pm b/perl-install/fsedit.pm
index 5269ea25e..ad73e45c8 100644
--- a/perl-install/fsedit.pm
+++ b/perl-install/fsedit.pm
@@ -128,6 +128,10 @@ sub add($$$) {
($part->{mntpoint} = 'swap') :
check_mntpoint($part->{mntpoint}, $hds);
+ $part->{mntpoint} eq '/boot' &&
+ $part->{start} + $part->{size} >= 1024 * partition_table::cylinder_size($hd) and
+ die "/boot on cylinder > 1024";
+
partition_table::add($hd, $part);
}
diff --git a/perl-install/partition_table.pm b/perl-install/partition_table.pm
index a9f20cd10..8ea4744bc 100644
--- a/perl-install/partition_table.pm
+++ b/perl-install/partition_table.pm
@@ -276,6 +276,11 @@ sub remove($$) {
%{$last->{extended}} = $_->{extended} ? %{$_->{extended}} : ();
splice(@{$hd->{extended}}, $i, 1);
+ unless (@{$hd->{extended}}) {
+ %{$hd->{primary}->{extended}} = ();
+ delete $hd->{primary}->{extended};
+ }
+
return $hd->{isDirty} = $hd->{needKernelReread} = 1;
}
$last = $_;