artix

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

commit 97a9ce3a481e8e4433532849c8be018ab6226f9b
parent 712c0d48dd5e2dde9fc909df61e3186449903e23
Author: awy <awy@awy.one>
Date:   Sun, 13 Apr 2025 18:45:43 +0300

efistub

Diffstat:
Minstall.sh | 15++++++---------
Alinuxx64.efi.stub | 0
Mpost_chroot.sh | 28++++++++++++++++++----------
3 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/install.sh b/install.sh @@ -27,13 +27,15 @@ binkernel() mount /dev/"$bootdrive" /mnt/boot pacman -Sy --confirm case $kerneltype in - 1) basestrap /mnt base dinit elogind-dinit linux linux-headers ;; - 2) basestrap /mnt base dinit elogind-dinit linux-zen linux-zen-headers ;; + 1) basestrap /mnt base dinit elogind-dinit linux ;; + 2) basestrap /mnt base dinit elogind-dinit linux-zen ;; *) printf "Invalid kernel" && exit 1 ;; esac if [ "$encryption" = 1 ]; then basestrap /mnt cryptsetup lvm2 lvm2-dinit fi + mkdir -p /mnt/usr/lib/systemd/boot/efi + cp linuxx64.efi.stub /mnt/usr/lib/systemd/boot/efi } customkernel() @@ -88,7 +90,7 @@ getuserdata() done while true; do clear - printf "Do you want to use encryption (LUKS)?" + printf "Do you want to use encryption (LUKS)? Y/N: " read -r answer case "$answer" in y|Y) @@ -102,7 +104,7 @@ getuserdata() esac done if [ "$encryption" = 1 ]; then - printf "Enter the passphrase for encrypted volumes:" + printf "Enter the passphrase for encrypted volumes: " cryptpass=$(getpass) fi } @@ -163,11 +165,6 @@ export cryptpass cp post_chroot.sh /mnt artix-chroot /mnt ./post_chroot.sh -if [ "$kerneltype" != 3 ]; then - mv /mnt/boot/EFI/grub /mnt/boot/EFI/BOOT - mv /mnt/boot/EFI/BOOT/grubx64.efi /mnt/boot/EFI/BOOT/BOOTX64.EFI -fi - umount -R /mnt echo "Linux is successfully installed!" diff --git a/linuxx64.efi.stub b/linuxx64.efi.stub Binary files differ. diff --git a/post_chroot.sh b/post_chroot.sh @@ -21,20 +21,28 @@ export LC_COLLATE="C" echo "$hostname" > /etc/hostname UUID_ROOT=$(blkid -s UUID -o value /dev/"$rootdrive") -UUID_CRYPTROOT=$(blkid -s UUID -o value /dev/mapper/cryptlvm) +if [ "$encryption" = 1 ]; then + UUID_CRYPTROOT=$(blkid -s UUID -o value /dev/mapper/cryptlvm) +fi binkernel() { - pacman -S grub os-prober efibootmgr --noconfirm + pacman -S efibootmgr --noconfirm echo "options hid_apple fnmode=0" > /etc/modprobe.d/hid_apple.conf + mkdir -p /etc/kernel + mkdir -p /boot/EFI/BOOT +cat <<EOL >> /etc/mkinitcpio.d/linux.preset +ALL_kver="/boot/vmlinuz-linux" +PRESETS=('default') +default_uki="/boot/EFI/BOOT/BOOTX64.efi" +EOL if [ "$encryption" = 1 ]; then - sed -i "s#GRUB_CMDLINE_LINUX_DEFAULT=.*#GRUB_CMDLINE_LINUX_DEFAULT=\"loglevel=3 quiet options cryptdevice=UUID=$UUID_ROOT:cryptlvm root=UUID=$UUID_CRYPTROOT rw intel_iommu=on\"#g" /etc/default/grub + echo "cryptdevice=UUID=$UUID_ROOT:cryptlvm root=UUID=$UUID_CRYPTROOT rw intel_iommu=on" > /etc/kernel/cmdline sed -i "s#HOOKS=.*#HOOKS=(base udev autodetect microcode modconf keyboard keymap consolefont block encrypt lvm2 filesystems fsck)#g" /etc/mkinitcpio.conf - sed -i "/^#GRUB_ENABLE_CRYPTODISK/s/^#//" /etc/default/grub - # for grub to work - printf "%s" "$cryptpass" | cryptsetup luksConvertKey --pbkdf pbkdf2 /dev/"$rootdrive" -d - + # # for grub to work + # printf "%s" "$cryptpass" | cryptsetup luksConvertKey --pbkdf pbkdf2 /dev/"$rootdrive" -d - else - sed -i "s#GRUB_CMDLINE_LINUX_DEFAULT=.*#GRUB_CMDLINE_LINUX_DEFAULT=\"loglevel=3 quiet options root=UUID=$UUID_ROOT rw intel_iommu=on\"#g" /etc/default/grub + echo "root=UUID=$UUID_ROOT rw intel_iommu=on" > /etc/kernel/cmdline sed -i "s#HOOKS=.*#HOOKS=(base udev autodetect microcode modconf keyboard keymap consolefont block filesystems fsck)#g" /etc/mkinitcpio.conf fi case $kerneltype in @@ -42,8 +50,8 @@ binkernel() 2) pacman -S linux-zen-headers --noconfirm ;; *) printf "Invalid kernel" && exit 1 ;; esac - sed -i "s#GRUB_TIMEOUT=.*#GRUB_TIMEOUT=1#g" /etc/default/grub - grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub + _diskdrivewop="${diskdrive%p}" + efibootmgr -c -d /dev/"$_diskdrivewop" -p "${partitions%% *}" -L "linux" -l '\EFI\BOOT\BOOTX64.EFI' } customkernel() @@ -74,7 +82,7 @@ customkernel() } case $kerneltype in - 1 | 2) binkernel && grub-mkconfig -o /boot/grub/grub.cfg ;; + 1 | 2) binkernel ;; 3) customkernel ;; *) printf "Invalid kernel" && exit 1 ;; esac