summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDieter Plaetinck <dieter@plaetinck.be>2010-12-20 22:06:49 +0100
committerDieter Plaetinck <dieter@plaetinck.be>2010-12-20 22:06:49 +0100
commitc1b8281c0b5688a3f9da90cbd8eb1a2453f1268e (patch)
tree5db1b95628ef923b1a8209008c3cb624b6119d7b
parent6fbfe607316e6bacdf785484939246fe555f1028 (diff)
make default root size in autoprepare more sensible for small disks
-rw-r--r--src/core/libs/lib-ui-interactive.sh21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/core/libs/lib-ui-interactive.sh b/src/core/libs/lib-ui-interactive.sh
index 8be11d7..4412af2 100644
--- a/src/core/libs/lib-ui-interactive.sh
+++ b/src/core/libs/lib-ui-interactive.sh
@@ -268,29 +268,32 @@ interactive_autoprepare()
DISC=${BLOCKFRIENDLY[0]}
fi
- get_blockdevice_size $DISC MiB
FSOPTS=()
for fs in ext2 ext3 ext4 reiserfs xfs jfs vfat nilfs2
do
check_is_in $fs "${possible_fs[@]}" && FSOPTS+=($fs "${filesystem_names[$fs]}")
done
+ get_blockdevice_size $DISC MiB
+ local size_left=$BLOCKDEVICE_SIZE
- ask_number "Enter the size (MiB) of your /boot partition. Recommended size: 100MiB\n\nDisk space left: $BLOCKDEVICE_SIZE MiB" 16 $BLOCKDEVICE_SIZE 100 || return 1
+ ask_number "Enter the size (MiB) of your /boot partition. Recommended size: 100MiB\n\nDisk space left: $size_left MiB" 16 $size_left 100 || return 1
BOOT_PART_SIZE=$ANSWER_NUMBER
+ size_left=$(($size_left-$BOOT_PART_SIZE))
- BLOCKDEVICE_SIZE=$(($BLOCKDEVICE_SIZE-$BOOT_PART_SIZE))
-
- ask_number "Enter the size (MiB) of your swap partition. Recommended size: 256MiB\n\nDisk space left: $BLOCKDEVICE_SIZE MiB" 1 $BLOCKDEVICE_SIZE 256 || return 1
+ ask_number "Enter the size (MiB) of your swap partition. Recommended size: 256MiB\n\nDisk space left: $size_left MiB" 1 $size_left 256 || return 1
SWAP_PART_SIZE=$ANSWER_NUMBER
-
- BLOCKDEVICE_SIZE=$(($BLOCKDEVICE_SIZE-$SWAP_PART_SIZE))
+ size_left=$(($size_left-$SWAP_PART_SIZE))
ROOT_PART_SET=""
while [ "$ROOT_PART_SET" = "" ]
do
- ask_number "Enter the size (MiB) of your / partition. Recommended size:7500. The /home partition will use the remaining space.\n\nDisk space left: $BLOCKDEVICE_SIZE MiB" 1 $BLOCKDEVICE_SIZE 7500 || return 1
+ local suggest_root=7500
+ # if the disk is too small to hold a 7.5GB root and 5GB home (these are arbitrary numbers), just give root 3/4 of the size, if that's too small leave it up to the user
+ [ $(($suggest_root+5000)) -gt $size_left ] && suggest_root=$(($size_left*3/4))
+ ask_number "Enter the size (MiB) of your / partition. Recommended size:7500. The /home partition will use the remaining space.\n\nDisk space left: $size_left MiB" 1 $size_left $suggest_root || return 1
ROOT_PART_SIZE=$ANSWER_NUMBER
- ask_yesno "$(($BLOCKDEVICE_SIZE-$ROOT_PART_SIZE)) MiB will be used for your /home partition. Is this OK?" yes && ROOT_PART_SET=1
+ size_left=$(($size_left-$ROOT_PART_SIZE))
+ ask_yesno "$size_left MiB will be used for your /home partition. Is this OK?" yes && ROOT_PART_SET=1
done
ask_option no 'Filesystem selection' "Select a filesystem for / and /home:" required "${FSOPTS[@]}" || return 1