artix

posix artix installation script
git clone https://git.awy.one/artix.git
Log | Files | Refs | README | LICENSE

commit 427d6f2be603f866416a7610ec9b47ef7ca8b5f4
parent f6b8ed6fa8ba2678f24a6ecbaf5696783f54a627
Author: awy <awy@awy.one>
Date:   Thu, 10 Apr 2025 14:06:13 +0300

install.sh

Diffstat:
Minstall.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