#!/bin/bash set -e touch /etc/vconsole.conf # Check if there are entries in crypttab crypt_check=$(cat /etc/crypttab | grep -v '^#' || true) if [[ -n $crypt_check ]] then # Use the first crypttab entry as luks for booster (valid for calamares and probably most installers) if cat /etc/crypttab | grep -v '^#' | head -n1 | cut -f2 | grep -i "UUID=" then # Check if luks is already configured in refind if cat /boot/refind_linux.conf | grep -i 'rd.luks' then true else sed -i "s#root=#rd.luks.name="$(cat /etc/crypttab | grep -v '^#' | head -n1 | cut -f2 | sed "s#UUID=##")"="$(cat /etc/crypttab | grep -v '^#' | head -n1 | cut -f1)" root=#" /boot/refind_linux.conf fi else echo -e "ERROR 1: /etc/crypttab is invalid!\nFirst crypttab entry (presumed to be root luks) is not defined via UUID\nPlease make sure to define luks for root as the first entry in /etc/crypttab via UUID (use blkid)" exit 1 fi fi # Add nvidia support if an nvidia card is detected if lspci -k | grep -iEA3 '^[[:alnum:]]{2}:[[:alnum:]]{2}.*VGA|3D|DISPLAY' | grep -i nvidia && lspci -k | grep -iEA3 '^[[:alnum:]]{2}:[[:alnum:]]{2}.*VGA|3D|DISPLAY' | grep -i -E 'kernel modules|kernel driver' | grep -i nvidia then if cat /etc/booster.yaml | grep -i 'nvidia' then true else echo 'modules_force_load: nvidia,usbhid' >> /etc/booster.yaml fi else if cat /etc/booster.yaml | grep -i 'usbhid' then true else echo 'modules_force_load: usbhid' >> /etc/booster.yaml fi fi cp -f /usr/lib/booster/update-initramfs /usr/sbin/update-initramfs chmod +x /usr/sbin/update-initramfs update-initramfs -c -k all rm /boot/initrd.img* || true