Add swapfile as an alternative to swap partition
This commit is contained in:
parent
f4335e27c4
commit
6eae17537e
67
install.sh
67
install.sh
|
@ -46,7 +46,6 @@ exitIfCancel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
partDisks() {
|
partDisks() {
|
||||||
# TODO: Add swapfile as an alternative to swap partition
|
|
||||||
whiptail --yesno "Do you want me to automatically partition and format a disk for you?" 0 0
|
whiptail --yesno "Do you want me to automatically partition and format a disk for you?" 0 0
|
||||||
whipStatus=$?
|
whipStatus=$?
|
||||||
|
|
||||||
|
@ -60,8 +59,8 @@ partDisks() {
|
||||||
if [ $whipStatus -eq 1 ]; then
|
if [ $whipStatus -eq 1 ]; then
|
||||||
calcHeightAndRun "whiptail --msgbox \"You will partition the disk yourself with gdisk and then, when finished, you will continue with the installation.\" HEIGHT 62 3>&1 1>&2 2>&3"
|
calcHeightAndRun "whiptail --msgbox \"You will partition the disk yourself with gdisk and then, when finished, you will continue with the installation.\" HEIGHT 62 3>&1 1>&2 2>&3"
|
||||||
gdisk $disk
|
gdisk $disk
|
||||||
parts=$(lsblk $disk -nl | wc -l)
|
parts=$(lsblk $disk -pnl | sed -n '2~1p' | wc -l)
|
||||||
[ $parts -eq 1 ] && logAndExit "You must at least create boot and root partitions." "partDisks"
|
[ $parts -lt 2 ] && logAndExit "You must at least create boot and root partitions." "partDisks"
|
||||||
|
|
||||||
# TODO: Ask for home partition
|
# TODO: Ask for home partition
|
||||||
formatOptions $(lsblk ${disk} -pnlo NAME,SIZE,MOUNTPOINTS | sed -n '2~1p')
|
formatOptions $(lsblk ${disk} -pnlo NAME,SIZE,MOUNTPOINTS | sed -n '2~1p')
|
||||||
|
@ -73,35 +72,68 @@ partDisks() {
|
||||||
exitIfCancel "You must select the root partition." "partDisks"
|
exitIfCancel "You must select the root partition." "partDisks"
|
||||||
rootPart=$(echo $result | cut -d' ' -f1)
|
rootPart=$(echo $result | cut -d' ' -f1)
|
||||||
|
|
||||||
whiptail --yesno "Do you have a swap partition?" 0 0
|
parts=$(lsblk $disk -pnl | sed -n '2~1p' | awk '$0!~v' v="$bootPart|$rootPart" | wc -l)
|
||||||
if [ $? -eq 0 ]; then
|
if [ $parts -gt 0 ]; then
|
||||||
formatOptions $(lsblk ${disk} -pnlo NAME,SIZE,MOUNTPOINTS | sed -n '2~1p' | awk '$0!~v' v="$bootPart|$rootPart")
|
whiptail --yesno "Do you have a swap partition?" 0 0
|
||||||
result=$(whiptail --title "Select the swap partition." --menu "" 0 0 0 "${options[@]}" 3>&1 1>&2 2>&3)
|
if [ $? -eq 0 ]; then
|
||||||
exitIfCancel "You must select the swap partition." "partDisks"
|
formatOptions $(lsblk ${disk} -pnlo NAME,SIZE,MOUNTPOINTS | sed -n '2~1p' | awk '$0!~v' v="$bootPart|$rootPart")
|
||||||
swapPart=$(echo $result | cut -d' ' -f1)
|
result=$(whiptail --title "Select the swap partition." --menu "" 0 0 0 "${options[@]}" 3>&1 1>&2 2>&3)
|
||||||
|
exitIfCancel "You must select the swap partition." "partDisks"
|
||||||
|
swapPart=$(echo $result | cut -d' ' -f1)
|
||||||
|
else
|
||||||
|
whiptail --yesno "Do you want a swapfile?" 0 0
|
||||||
|
[ $? -eq 0 ] && createSwapfile
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
whiptail --yesno "Do you want a swapfile?" 0 0
|
||||||
|
[ $? -eq 0 ] && createSwapfile
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
autoPart
|
|
||||||
bootPart=${disk}1
|
bootPart=${disk}1
|
||||||
swapPart=${disk}2
|
rootPart=${disk}2
|
||||||
rootPart=${disk}3
|
|
||||||
|
whiptail --yesno "Do you want to create a swap space?" 0 0
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
result=$(whiptail --title "Select the swap space." 0 0 0 "Partition" "" "Swapfile" "")
|
||||||
|
exitIfCancel "You must select a swap space." "partDisks"
|
||||||
|
if [ "$result" = "Partition" ]; then
|
||||||
|
swapPart=${disk}2
|
||||||
|
rootPart=${disk}3
|
||||||
|
else
|
||||||
|
createSwapfile
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
autoPart
|
||||||
fi
|
fi
|
||||||
|
|
||||||
formatPart
|
formatPart
|
||||||
mountPart
|
mountPart
|
||||||
}
|
}
|
||||||
|
|
||||||
|
createSwapfile() {
|
||||||
|
swapfile=/mnt/swapfile
|
||||||
|
dd if=/dev/zero of=$swapfile bs=1M count=512 status=progress
|
||||||
|
chmod 600 $swapfile
|
||||||
|
mkswap $swapfile
|
||||||
|
swapon $swapfile
|
||||||
|
}
|
||||||
|
|
||||||
autoPart() {
|
autoPart() {
|
||||||
parted -s $disk mklabel gpt 2>&1 | debug
|
parted -s $disk mklabel gpt 2>&1 | debug
|
||||||
|
|
||||||
sgdisk $disk -n=1:0:+300M -t=1:ef00 2>&1 | debug
|
sgdisk $disk -n=1:0:+300M -t=1:ef00 2>&1 | debug
|
||||||
sgdisk $disk -n=2:0:+1024M -t=2:8200 2>&1 | debug
|
if [ -n "$swapPart" ]; then
|
||||||
sgdisk $disk -n=3:0:0 2>&1 | debug
|
sgdisk $disk -n=2:0:+1024M -t=2:8200 2>&1 | debug
|
||||||
|
sgdisk $disk -n=3:0:0 2>&1 | debug
|
||||||
|
else
|
||||||
|
sgdisk $disk -n=2:0:0 2>&1 | debug
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
formatPart() {
|
formatPart() {
|
||||||
mkfs.fat -F 32 "$bootPart" 2>&1 | debug
|
mkfs.fat -F 32 "$bootPart" 2>&1 | debug
|
||||||
mkswap "$swapPart" 2>&1 | debug
|
[ -n "$swapPart" ] && mkswap "$swapPart" 2>&1 | debug
|
||||||
mkfs.ext4 "$rootPart" 2>&1 | debug
|
mkfs.ext4 "$rootPart" 2>&1 | debug
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +142,7 @@ mountPart() {
|
||||||
mkdir -p /mnt/boot/efi
|
mkdir -p /mnt/boot/efi
|
||||||
# TODO: Ask where to mount the bootPart
|
# TODO: Ask where to mount the bootPart
|
||||||
mount "$bootPart" /mnt/boot/efi 2>&1 | debug
|
mount "$bootPart" /mnt/boot/efi 2>&1 | debug
|
||||||
swapon "$swapPart" 2>&1 | debug
|
[ -n "$swapPart" ] && swapon "$swapPart" 2>&1 | debug
|
||||||
}
|
}
|
||||||
|
|
||||||
debug() {
|
debug() {
|
||||||
|
@ -179,6 +211,9 @@ installImportantPackages() {
|
||||||
|
|
||||||
generateFstab() {
|
generateFstab() {
|
||||||
genfstab -U /mnt > /mnt/etc/fstab
|
genfstab -U /mnt > /mnt/etc/fstab
|
||||||
|
if [ -n "$swapfile" ]; then
|
||||||
|
echo "/swapfile none swap defaults 0 0" > /mnt/etc/fstab
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeZone() {
|
setTimeZone() {
|
||||||
|
|
Loading…
Reference in New Issue