You are not logged in.
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:
timedatectl
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 ...
done
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)
Offline
Hi,
I'm not sure you have to mkdir /boot/EFI before running "grub-install".
What's inside /boot/EFI ?
Offline
What is the output of efibootmgr ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline