diff options
author | Olivier Blin <oblin@mandriva.com> | 2009-08-03 12:46:17 +0000 |
---|---|---|
committer | Olivier Blin <oblin@mandriva.com> | 2009-08-03 12:46:17 +0000 |
commit | 15b6bd76f1d99e254204cdfb063d63d2eded1cdf (patch) | |
tree | 9739598d4bce19f0e27fe7f9a954ebecf30407c7 | |
parent | 60b94402d7b7f4485cb2f5f9cc144c6125c905be (diff) | |
download | draklive-15b6bd76f1d99e254204cdfb063d63d2eded1cdf.tar draklive-15b6bd76f1d99e254204cdfb063d63d2eded1cdf.tar.gz draklive-15b6bd76f1d99e254204cdfb063d63d2eded1cdf.tar.bz2 draklive-15b6bd76f1d99e254204cdfb063d63d2eded1cdf.tar.xz draklive-15b6bd76f1d99e254204cdfb063d63d2eded1cdf.zip |
allocate image file matching number of cylinders (and not truncated)
-rwxr-xr-x | draklive | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -691,15 +691,16 @@ sub allocate_master { sectors => 63, # sectors per track }; - my $disk_sectors = fold_left { $::a + $::b } map { $_->{size} } @{$live->{media}{partitions}}; - $disk_sectors += $geom->{sectors}; # keep one more track - $geom->{cylinders} = int($disk_sectors / ($geom->{sectors} * $geom->{heads})); + my $required_sectors = fold_left { $::a + $::b } map { $_->{size} } @{$live->{media}{partitions}}; + $required_sectors += $geom->{sectors}; # keep one more track + $geom->{cylinders} = int($required_sectors / ($geom->{sectors} * $geom->{heads})); + my $total_sectors = $geom->{cylinders} * $geom->{heads} * $geom->{sectors}; mkdir_p(dirname($dest)); - MDV::Draklive::Utils::device_allocate_file($dest, $disk_sectors * $common::SECTORSIZE); + MDV::Draklive::Utils::device_allocate_file($dest, $total_sectors * $common::SECTORSIZE); my $hd = bless { - totalsectors => $geom->{cylinders} * $geom->{heads} * $geom->{sectors}, + totalsectors => $total_sectors, geom => $geom, file => $dest, }, 'partition_table::dos'; |