summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2007-09-19 15:34:17 +0000
committerPascal Rigaux <pixel@mandriva.com>2007-09-19 15:34:17 +0000
commit5e39f59fc6aa05e96221665a43c3ed35582fc5b8 (patch)
treef594f516a4b48e97d500540dfff33be2e5081fe1
parent0991c940925490069ea3feb2ae4f7d977ab6de84 (diff)
downloaddrakx-5e39f59fc6aa05e96221665a43c3ed35582fc5b8.tar
drakx-5e39f59fc6aa05e96221665a43c3ed35582fc5b8.tar.gz
drakx-5e39f59fc6aa05e96221665a43c3ed35582fc5b8.tar.bz2
drakx-5e39f59fc6aa05e96221665a43c3ed35582fc5b8.tar.xz
drakx-5e39f59fc6aa05e96221665a43c3ed35582fc5b8.zip
- diskdrake :
o do not allow partitions bigger than 2TB-1 on DOS MBR, nor partitions starting above 2TB-1
-rw-r--r--perl-install/NEWS2
-rw-r--r--perl-install/install/NEWS2
-rw-r--r--perl-install/partition_table.pm2
-rw-r--r--perl-install/partition_table/dos.pm4
-rw-r--r--perl-install/partition_table/raw.pm3
5 files changed, 12 insertions, 1 deletions
diff --git a/perl-install/NEWS b/perl-install/NEWS
index 5e4068cac..25c3dbf39 100644
--- a/perl-install/NEWS
+++ b/perl-install/NEWS
@@ -1,5 +1,7 @@
- diskdrake:
o "Clear All" defaults to LVM on full disk if drive is >4TB
+ o do not allow partitions bigger than 2TB-1 on DOS MBR, nor partitions
+ starting above 2TB-1
- bootloader-config:
o handle /boot/xxx files on linux raid1
- fix getting UUID on mdmadm (eg: md0) devices
diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS
index 4431b8cd1..f811b41bb 100644
--- a/perl-install/install/NEWS
+++ b/perl-install/install/NEWS
@@ -1,5 +1,7 @@
- diskdrake:
o "Clear All" defaults to LVM on full disk if drive is >4TB
+ o do not allow partitions bigger than 2TB-1 on DOS MBR, nor partitions
+ starting above 2TB-1
- restore banner on pop up messages (#33753)
- handle /boot/xxx files on linux raid1
- when basesystem can't be selected, display the reason
diff --git a/perl-install/partition_table.pm b/perl-install/partition_table.pm
index 5b2d30aaf..590365536 100644
--- a/perl-install/partition_table.pm
+++ b/perl-install/partition_table.pm
@@ -219,7 +219,7 @@ sub get_normal_parts_and_holes {
$hole, $_;
} sort { $a->{start} <=> $b->{start} } grep { !isWholedisk($_) } get_normal_parts($hd);
- push @l, { start => $start, size => $last - $start, %$minimal_hole };
+ push @l, { start => $start, size => min($last - $start, $hd->max_partition_size), %$minimal_hole } if $start < $hd->max_partition_start;
grep { !isEmpty($_) || $_->{size} >= $hd->cylinder_size } @l;
}
diff --git a/perl-install/partition_table/dos.pm b/perl-install/partition_table/dos.pm
index c12b7cba4..2376fce11 100644
--- a/perl-install/partition_table/dos.pm
+++ b/perl-install/partition_table/dos.pm
@@ -33,6 +33,10 @@ sub last_usable_sector {
$hd->{geom}{sectors} * $hd->{geom}{heads} * $hd->{geom}{cylinders};
}
+my $two_TB = 2 * 1024 * 1024 * 2048;
+sub max_partition_start { $two_TB - 1 }
+sub max_partition_size { $two_TB - 1 }
+
sub get_rawCHS {
my ($part) = @_;
diff --git a/perl-install/partition_table/raw.pm b/perl-install/partition_table/raw.pm
index 925ae6562..c3bc9dcce 100644
--- a/perl-install/partition_table/raw.pm
+++ b/perl-install/partition_table/raw.pm
@@ -69,6 +69,9 @@ sub last_usable_sector {
my ($hd) = @_;
$hd->{totalsectors};
}
+# no limit
+sub max_partition_start { 1e99 }
+sub max_partition_size { 1e99 }
#- default method for starting a partition, only head size or twice
#- is allowed for starting a partition after a cylinder boundarie.