BlackArch / blackarch-installer

The official BlackArch Linux installer
https://www.blackarch.org/
104 stars 52 forks source link

EFI installation issue #70

Closed FallenChromium closed 11 months ago

FallenChromium commented 3 years ago

Hi there! My friend has tried to install BlackArch using blackarch-install and failed.

When I've investigated the issue I've found that boot environment check thought that my friend ran an MBR system (even though it was a UEFI-only laptop, CSM disabled), because efivar isn't installed on the full ISO, and it is used to determine whether the system is UEFI or not.

I didn't want to create the issue in the main repo, it'll be nice if you'll rewrite the checks to work without efivar or include it by default in your ISOs. Generally, the more documented installation process for the UEFI systems would be nice.

Peace!

noraj commented 3 years ago

This must be a bug specific to the full ISO because I never had the issue for my UEFI install with the netinstall ISO.

hek5 commented 3 years ago

Hi there! My friend has tried to install BlackArch using blackarch-install and failed.

When I've investigated the issue I've found that boot environment check thought that my friend ran an MBR system (even though it was a UEFI-only laptop, CSM disabled), because efivar isn't installed on the full ISO, and it is used to determine whether the system is UEFI or not.

I didn't want to create the issue in the main repo, it'll be nice if you'll rewrite the checks to work without efivar or include it by default in your ISOs. Generally, the more documented installation process for the UEFI systems would be nice.

Peace!

Hi,

I tried installing blackarch for the very first time this weekend and ran into the same issue ( and also that the target in the grub-install command was i386-pc).

I made a copy of the script, and made some changes to be able to install in UEFI.

Following is the diff output so that you can see the changes I made to /usr/share/blackarch-installer/blackarch-install:

d173 1 a173 1 BOOT_MODE=uefi d989 1 a989 1 wprintf "[?] EFI System partition (${HD_DEV}X): " d993 1 a993 1 wprintf "[?] EFI System partition (${HD_DEV}X): " d997 5 a1001 1 BOOT_FS_TYPE="fat32" d1192 1 a1192 1 mkfs.fat -F32 "$BOOT_PART" > $VERBOSE 2>&1 || d1554 1 a1554 1 chroot $CHROOT grub-install --target=x86_64-efi"$HD_DEV" > $VERBOSE 2>&1

I hope it can help meanwhile a fix is made :)

ps: I changed the architecture to fit my needs but you may wanna leave i386-pc depending on your needs.

FallenChromium commented 3 years ago

My suggestion is to use ls /sys/firmware/efi/efivars (as per ArchLinux wiki). This way you won't need efivars as a dependency (which full ISO doesn't have inside, apparently), and because on UEFI systems systemd automagically mounts efi variables to this partition, it's a good indicator that the system is indeed UEFI. ls returns code 2 if the folder doesn't exist, so it's a drop-in replacement, you can just replace the efivars command and it'll work.

ikstream commented 3 years ago

@FallenChromium, @hek5 can you please verify if #71 solves this issue?

anunna commented 11 months ago

Closing since we know by now that the change works