diff --git a/pikainstall/usr/lib/pika/pikainstall/pika-install-chroot.sh b/pikainstall/usr/lib/pika/pikainstall/pika-install-chroot.sh index cd1a4e6..36d3f21 100755 --- a/pikainstall/usr/lib/pika/pikainstall/pika-install-chroot.sh +++ b/pikainstall/usr/lib/pika/pikainstall/pika-install-chroot.sh @@ -1,7 +1,12 @@ #! /bin/bash apt remove casper -y apt autoremove -y -/tmp/albius-crypttab.sh +if [ -f /tmp/albius-crypttab.sh ] +then + chmod +x /tmp/albius-crypttab.sh + /tmp/albius-crypttab.sh +fi +chmod +x /tmp/albius-refind_linux.sh /tmp/albius-refind_linux.sh refind-install apt install -y /var/cache/apt/archives/pika-refind-theme*.deb diff --git a/pikainstall/usr/bin/pikainstall b/pikainstall/usr/lib/pika/pikainstall/pikainstall similarity index 75% rename from pikainstall/usr/bin/pikainstall rename to pikainstall/usr/lib/pika/pikainstall/pikainstall index f062cf7..508f869 100755 --- a/pikainstall/usr/bin/pikainstall +++ b/pikainstall/usr/lib/pika/pikainstall/pikainstall @@ -3,6 +3,7 @@ # import libs import argparse import subprocess +import os # Version version="1.0" @@ -12,6 +13,24 @@ image="/cdrom/casper/filesystem.squashfs" # Print Program info print("pikainstall " + version + ": PikaOS terminal installer! for " + dist + ".") +### text files +_REFIND_SETUP_FILE = """#!/usr/bin/bash +touch /boot/refind_linux.conf +echo '"'Boot with standard options'"' '"'nvidia-drm.modeset=1 root=UUID={ROOT_PART_UUID} quiet splash ---'"' > /boot/refind_linux.conf +echo '"'Boot with logging'"' '"'nvidia-drm.modeset=1 root=UUID={ROOT_PART_UUID} ---'"' >> /boot/refind_linux.conf +echo '"'Boot with safe graphics'"' '"'nvidia-drm.modeset=1 root=UUID={ROOT_PART_UUID} nomodeset ---'"' >> /boot/refind_linux.conf +""" + +_CRYPTTAB_SETUP_FILE = """#!/usr/bin/bash +cat /etc/crypttab +echo "crypt_root UUID={ROOT_PART_UUID} none luks,discard" > /etc/crypttab +echo "crypt_home UUID={HOME_PART_UUID} /keyfile.txt luks" >> /etc/crypttab +touch /keyfile.txt +openssl genrsa > /keyfile.txt +echo "{LUKS_PASSWD}" | cryptsetup luksAddKey UUID={HOME_PART_UUID} /keyfile.txt - +""" + + # Global Functions ## List to string def listToString(s): @@ -108,6 +127,31 @@ subprocess.run(squashfs_cmd) efi_flag_cmd = ['/usr/lib/pika/pikainstall/partition-helper.sh', 'flag', listToString(args.efi), 'bls_boot', 'on'] subprocess.run(efi_flag_cmd) + +CHROOT_PATH = listToString(args.root) + +# Write crypttab script if system has encryption +if home_encrypt == "luks_none": + CRYPTTAB_FILE_PATH = '/tmp/albius-crypttab.sh' + CHROOT_CRYPTTAB_FILE_PATH=os.path.join(dir,file) + with open(CHROOT_CRYPTTAB_FILE_PATH, "w") as file: + albius_crypttab_file = _CRYPTTAB_SETUP_FILE.format( + ROOT_PART_UUID=root_uuid, + HOME_PART_UUID=home_uuid, + LUKS_PASSWD=home_passwd, + ) + file.write(albius_crypttab_file) + +# Write refind script if system has encryption +REFIND_FILE_PATH = '/tmp/albius-refind_linux.sh' +CHROOT_REFIND_FILE_PATH=os.path.join(dir,file) +with open(CHROOT_REFIND_FILE_PATH, "w") as file: + refind_crypttab_file = _REFIND_SETUP_FILE.format( + ROOT_PART_UUID=root_uuid, + ) + file.write(refind_crypttab_file) + + ## Run pika-install-script bind_dev_cmd = ['/usr/lib/pika/pikainstall/pika-install-host.sh', listToString(args.root)] subprocess.run(bind_dev_cmd)