diff options
author | Olivier Blin <oblin@mandriva.com> | 2008-03-20 01:18:59 +0000 |
---|---|---|
committer | Olivier Blin <oblin@mandriva.com> | 2008-03-20 01:18:59 +0000 |
commit | e3d14963955b8e25f449bd1eb145115b20947dfd (patch) | |
tree | 19941ed8b80479a984fe54b5db685748f8442529 | |
parent | aa03c614d14d73e9cb71bd07066d3a5cb9808cc4 (diff) | |
download | draklive-install-e3d14963955b8e25f449bd1eb145115b20947dfd.tar draklive-install-e3d14963955b8e25f449bd1eb145115b20947dfd.tar.gz draklive-install-e3d14963955b8e25f449bd1eb145115b20947dfd.tar.bz2 draklive-install-e3d14963955b8e25f449bd1eb145115b20947dfd.tar.xz draklive-install-e3d14963955b8e25f449bd1eb145115b20947dfd.zip |
check available space before formatting and installing (#22764)
-rwxr-xr-x | draklive-install | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/draklive-install b/draklive-install index 7c2ab5a..ef23741 100755 --- a/draklive-install +++ b/draklive-install @@ -48,7 +48,7 @@ sub install_live() { display_start_message(); init_hds($in, $all_hds, $fstab); - ask_partitions_loop($in, $all_hds, $fstab); + ask_partitions_loop($in, $all_hds, $fstab, $copy_source); prepare_root($in, $all_hds); copy_root($in, $copy_source); complete_install($in, $all_hds); @@ -111,7 +111,7 @@ sub init_hds { } sub ask_partitions_loop { - my ($in, $all_hds, $fstab) = @_; + my ($in, $all_hds, $fstab, $copy_source) = @_; while (1) { eval { ask_partitions($in, $all_hds, $fstab) }; @@ -122,7 +122,7 @@ sub ask_partitions_loop { } sub ask_partitions { - my ($in, $all_hds, $fstab) = @_; + my ($in, $all_hds, $fstab, $copy_source) = @_; fs::partitioning_wizard::main($in, $all_hds, $fstab, [], undef, {}, 'skip_mtab'); mkdir_p($::prefix) or die "unable to create $::prefix"; @@ -131,6 +131,13 @@ sub ask_partitions { fs::any::check_hds_boot_and_root($all_hds, $fstab); fs::partitioning::choose_partitions_to_format($in, $fstab); umount_all($fstab); + + my $total = get_total_size($in, $copy_source); + my $available = fs::any::getAvailableSpace($fstab, 'skip_mounted'); + die N("Not enough space available (%s available while %s are needed)", + formatXiB($available), formatXiB($total)) . "\n" + if $total > $available; + fs::partitioning::format_mount_partitions($in, $all_hds, $fstab); } |