commit 427d6f2be603f866416a7610ec9b47ef7ca8b5f4
parent f6b8ed6fa8ba2678f24a6ecbaf5696783f54a627
Author: awy <awy@awy.one>
Date: Thu, 10 Apr 2025 14:06:13 +0300
install.sh
Diffstat:
M | install.sh | | | 44 | +++++++++++++++++++++++++++++++++++++++----- |
1 file changed, 39 insertions(+), 5 deletions(-)
diff --git a/install.sh b/install.sh
@@ -1,15 +1,23 @@
#!/bin/sh
set -e
-dinitctl start ntpd
-
cpuvendor=$(grep -m 1 'vendor_id' /proc/cpuinfo | awk '{print $3}')
diskpart()
{
mkfs.fat -F32 /dev/"$bootdrive"
- mkfs.ext4 -F /dev/"$rootdrive"
- mount /dev/"$rootdrive" /mnt
+ case $encryption in
+ 0)
+ mkfs.ext4 -F /dev/"$rootdrive"
+ mount /dev/"$rootdrive" /mnt
+ ;;
+ 1)
+ printf "%s" "$cryptpass" | cryptsetup luksFormat /dev/"$rootdrive" -d -
+ printf "%s" "$cryptpass" | cryptsetup open /dev/"$rootdrive" cryptlvm -d -
+ mkfs.btrfs /dev/mapper/cryptlvm
+ mount /dev/mapper/cryptlvm /mnt
+ ;;
+ esac
mkdir /mnt/boot
mkdir /mnt/home
}
@@ -24,6 +32,9 @@ binkernel()
2) basestrap /mnt base dinit elogind-dinit linux-zen linux-zen-headers ;;
*) printf "Invalid kernel" && exit 1 ;;
esac
+ if [ "$encryption" = 1 ]; then
+ basestrap /mnt cryptsetup lvm2 lvm2-dinit ;;
+ fi
}
customkernel()
@@ -76,6 +87,25 @@ getuserdata()
echo "Invalid response. Please enter 'y' or 'n'." && sleep 3 ;;
esac
done
+ while true; do
+ clear
+ printf "Do you want to use encryption (LUKS)?"
+ read -r answer
+ case "$answer" in
+ y|Y)
+ encryption=1
+ break ;;
+ n|N)
+ encryption=0
+ exit 1 ;;
+ *)
+ echo "Invalid response. Please enter 'y' or 'n'." && sleep 3 ;;
+ esac
+ done
+ if [ "$encryption" = 1 ]; then
+ printf "Enter the passphrase for encrypted volumes:"
+ cryptpass=$(getpass)
+ fi
}
clear
@@ -117,7 +147,11 @@ else
echo "UUID=$UUID_BOOT /boot/efi vfat defaults,noatime 0 2" > /mnt/etc/fstab
fi
-echo "UUID=$UUID_ROOT / ext4 defaults,noatime 0 1" >> /mnt/etc/fstab
+if [ "$encryption" = 1 ]; then
+ echo "UUID=$UUID_ROOT / btrfs defaults,noatime 0 1" >> /mnt/etc/fstab
+else
+ echo "UUID=$UUID_ROOT / ext4 defaults,noatime 0 1" >> /mnt/etc/fstab
+fi
export diskdrive
export rootdrive