6

I have installed Arch Linux for the first time, I have attempted to setup my UEFI boot process but must have failed somewhere, on bootup I do see the boot menu with the Arch Linux option but when I select it, I get a message /vmlinuz-linux:Not Found i.e. it can't find the kernel to boot. I've followed the instructions on https://wiki.archlinux.org/index.php/Installation_guide but must have messed up somewhere.

How can I fix this?

partition layout:

/dev/sda1 EFI System (512M)
/dev/sda2 Linux fs (244M)
/dev/sda3 Linux fs (1M)
/dev/sda4 Linux fs (465G)

/etc/fstab:

#/dev/sda4  
UUID=41d8483f-0d29-4234-bf1e-3c55346b5667  /  ext4    rw,realtime,data=unordered 0 1

esp was setup in /boot/

edit 1
Oh yeah I can anytime boot from my USB thumb drive for troubleshooting...,

edit2
I see, my /boot/loder/entries/arch.conf looks like:

title          Arch Linux
linux          /vmlinuz-linux
initrd         /initramfs-linux.img
options        root=PARTUUID=41d8483f-0d29-4234-bf1e-3c55346b5667 rw

but there's no files in my / at all only the directories. Might that be the problem?

stdcerr
  • 2,037
  • 12
  • 42
  • 65

2 Answers2

6

Boot from your bootable USB Arch-linux , mount all your partitions and chroot into the system.

As montioned jasonwryan :

You need to mount your ESP to /boot

First create the efi folder:

mkdir /boot/efi

mount the esp partition

mount /dev/sda1 /boot/efi

Verify your /etc/fstab , the esp mount point need to be added to fstab.

Create a new sub-directory /boot/efi/EFI/arch/

mkdir -p /boot/efi/EFI/arch/

Move /boot/vmlinuz-linux , initramfs-linux.img and initramfs-linux-fallback.img :

cp /boot/vmlinuz-linux /boot/efi/EFI/arch/vmlinuz-linux.efi
cp /boot/initramfs-linux.img /boot/initramfs-linux-fallback.img /boot/efi/EFI/arch

Run mkinitcpio -p linux then update GRUB:

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

`

GAD3R
  • 63,407
  • 31
  • 131
  • 192
0

The GAD3R answer may be applicable to grub, but not the systemd-boot you are using. The problem appears to be simply that your UUID is 41d8... but your options specify PARTUUID, which would be a different ID.

The simple correction is in your arch.conf change the options to be root=UUID=41d... etc

The method is simple and works well.

NO problem with files or directories. The referenced linux and initrd files should not be in your "/" ie 41d... partition at all. They should be in the efi partition at the top level, not in a directory (with your version of arch.conf). This is confusing, because the eg "linux" instruction instructs them to be found in "/", but this refers to the top level of the efi partition, and not the os partition. With your efi partition mounted to an otherwise empty /boot directory in the os, you should see them (when rooted in the 41d... partition) as in the /boot directory.

Alternatively, if you might have different kernels for your different flavours of Arch, find the kernel version with uname -r then if this was 4.19.66-1-lts you mkdir /boot/4.19.66-1-lts then move those two files from /boot to /boot/4.19.66-1-lts , and change your particular arch.conf to read eg linux /4.19.66-1-lts/vmlinuz-linux

I have done this with mine, but have not yet had different kernels in place.