You are not logged in.

#1 2024-02-08 18:46:43

Registered: 2024-02-08
Posts: 11

Can only access UEFI settings after prescribed installation

I have successfully installed Arch Linux several times on various machines using the installation procedure outlined here. However, following the procedure with the latest installer has so far failed to produce a working installation. Instead, I end up booting into a GRUB menu whose only option is the UEFI firmware settings interface. I will provide a detailed account of another attempt to run through the installation in accordance with the prescribed procedure.

I skip the setting of keymaps or fontsizes, as I am satisfied with the default US keyboard layout and I do not find the small terminal font to present any difficulties.

Checking the UEFI bitness:

cat /sys/firmware/efi/fw_platform_size

It returns 64.

Unblocking my wifi device and connecting to the internet:

rfkill unblock all
iwctl station wlan0 scan
iwctl station wlan0 connect MYROUTERNAME
Type the network passphrase for MYROUTERNAME psk.
Passphrase: **************************

Verify accuracy of the system clock:


I get an accurate response. Next, I partition the disk such that I end up with the following:

Device             Start           End       Sectors      Size               Type
/dev/nvme0n1p1      2048       2099199       2097152        1G         EFI System
/dev/nvme0n1p2   2099200       4196351       2097152        1G         Linux swap
/dev/nvme0n1p3   4196352    2000408575    1996212224    951.9G   Linux filesystem

And I verify the changes with lsblk. Next, I format the partitions like so:

mkfs.fat -F 32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
mkfs.ext4 /dev/nvme0n1p3

Next, I mount them in the following order:

mount --mkdir /dev/nvme0n1p3 /mnt
mount --mkdir /dev/nvme0n1p1 /mnt/boot
swapon /dev/nvme0n1p2

Next, I install the core system packages with pacstrap, adding linux-headers which is not explicitly called out in the installation:

pacstrap -K base linux linux-firmware linux-headers

And that goes off without a hitch. Next, I generate the fstab file:

genfstab -U /mnt >> /mnt/etc/fstab
# /dev/nvme0n1p3
UUID=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX    /     ext4       rw,relatime   0   1

# /dev/nvme0n1p1
UUID= XXXX-XXXX         /boot     vfat      rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro   0   2

# /dev/nvme0n1p2
UUID=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX    none    swap     defaults      0   0

After which I chroot into the newly mounted system:

arch-chroot /mnt

Set up time:

ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
hwclock --systohc

I install nano for the brief text editing tasks that follow, then perform the prescribed steps for locale generation and hostname setting. Though the instructions say I usually shouldn't have to manually run mkinitcpio, I do it anyway. There are a few warnings about missing firmware, but no errors, and the command reports 'image generation successful'. Then, I run passwd to change the root user password. Now, here is where I'm wondering if I'm botching something, the process of setting up the bootloader. Historically I've had no problem with this, but it seems like I can't get it to work this time around.

I install grub and efibootmgr, and follow the instructions given here.

It looks like before I run the grub-install command, I should have /boot/EFI waiting, so I create that with mkdir, then run the command:

mkdir /boot/EFI
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

This reports installation with no errors. Then I move on to the configuration:

grub-mkconfig -o /boot/grub/grub.cfg

The response looks normal to me:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...

I remember at this point that I want NetworkManager to be available on reboot, so I install that and enable it with systemctl. No problems there. I also install sudo while I'm thinking about it.

Finally, I exit the session, do umount -a, then reboot.

. . . And for some godforsaken, this time it works. Of course it does.

Now, I tried this process seven times in the last two days. The procedure I've reported here is as I've run it, but prior attempts left me only with access to the firmware settings. The only variations are things like "I installed NetworkManager in an earlier part of the process that time", or that in the latter three attempts I installed linux-headers but in the first four I didn't. Is there any reason anyone is aware of why such differences could have this effect?

Last edited by lmkerbey (2024-02-08 19:36:20)


#2 2024-02-09 15:32:46

From: France
Registered: 2021-02-03
Posts: 24

Re: Can only access UEFI settings after prescribed installation


I'm not sure you have to mkdir /boot/EFI before running "grub-install".

What's inside /boot/EFI ?


#3 2024-02-10 12:51:13

From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,824

Re: Can only access UEFI settings after prescribed installation

What is the output of efibootmgr ?

Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

(A works at time B)  && (time C > time B ) ≠  (A works at time C)


Board footer

Powered by FluxBB