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)


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...,

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?

  • Where is your kernel and initrd? – jasonwryan Sep 23 '16 at 2:46
  • I booted from my thumb drive, mounted my / (/dev/sda4) to /mnt and chrooted to /mnt and a # find / -name "initrd" doesn't return a thing, that's a problem right there, isn't it? – stdcerr Sep 23 '16 at 2:49
  • Yep... Include details of your partitions etc in your question. And where is your ESP? – jasonwryan Sep 23 '16 at 2:50
  • @jasonwryan I revised my question, please see above – stdcerr Sep 23 '16 at 3:03
  • 2
    You need to mount your ESP to /boot and reinstall linux and then update your arch.conf and /etc/fstab. – jasonwryan Sep 23 '16 at 3:52

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


  • 1
    The EFI system partition is not always /dev/sda1. You need to run fdisk -l to know what it is – TheInitializer Oct 16 '16 at 16:50

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.