You are not logged in.

#1 2026-05-19 22:47:48

Thumbkin
Member
Registered: 2026-05-19
Posts: 1

rEFInd with BTRFS - Invalid Loader File

Hi

I setup a clean Arch install with BTRFS in dual boot with windows but I can not get Arch to load.
rEFInd keeps giving me error 'Invalid Loader File! Error: Not found while loading vmlinuz-linux'

I already searched around and based my refind.conf on a lot of other posts but yet I can not get arch to load

Arch is taken up a whole disk with a:
- 2GB EFI partition
- 128GB SWAP partition
- Remainder space is used for the BTRFS partition

I use the following subvolume structure:
# btrfs subvolume list -ta /

ID	gen	top level	path	
--	---	---------	----	
256	22	5		<FS_TREE>/@arch
257	16	5		<FS_TREE>/@home
258	20	5		<FS_TREE>/@logs
259	10	5		<FS_TREE>/@snapshots
260	17	5		<FS_TREE>/@cache
261	14	256		@arch/var/lib/portables
262	14	256		@arch/var/lib/machines

# lsblk

/dev/nvme3n1p1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="640A-B517" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="6b8a5338-bde0-4bc8-aead-ab980f8b3676"
/dev/nvme3n1p2: LABEL="SWAP" UUID="91c0b856-de8d-4ade-9717-0025cca15548" TYPE="swap" PARTUUID="580eed9d-a68c-42d6-9703-a696e3d2e6bd"
/dev/nvme3n1p3: LABEL="ARCH" UUID="8cbb3944-ce78-4d60-9f0e-d883cee76e97" UUID_SUB="df6dcc9b-1203-4447-9945-ecb0b2b67cf5" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="5c966624-9581-4dd9-a42b-d2b1651943d3"

I ommited the other drives present cause they are not involved in my setup

# fstab

# /dev/nvme3n1p3 LABEL=ARCH
UUID=8cbb3944-ce78-4d60-9f0e-d883cee76e97	/         	btrfs     	rw,noatime,nodiratime,compress=zstd:3,ssd,discard=async,space_cache=v2,autodefrag,commit=120,subvol=/@arch	0 0

# /dev/nvme3n1p3 LABEL=ARCH
UUID=8cbb3944-ce78-4d60-9f0e-d883cee76e97	/home     	btrfs     	rw,noatime,nodiratime,compress=zstd:3,ssd,discard=async,space_cache=v2,autodefrag,commit=120,subvol=/@home	0 0

# /dev/nvme3n1p3 LABEL=ARCH
UUID=8cbb3944-ce78-4d60-9f0e-d883cee76e97	/var/log  	btrfs     	rw,noatime,nodiratime,compress=zstd:3,ssd,discard=async,space_cache=v2,autodefrag,commit=120,subvol=/@logs	0 0

# /dev/nvme3n1p3 LABEL=ARCH
UUID=8cbb3944-ce78-4d60-9f0e-d883cee76e97	/var/cache/pacman/pkg	btrfs     	rw,noatime,nodiratime,compress=zstd:3,ssd,discard=async,space_cache=v2,autodefrag,commit=120,subvol=/@cache	0 0

# /dev/nvme3n1p3 LABEL=ARCH
UUID=8cbb3944-ce78-4d60-9f0e-d883cee76e97	/.snapshots	btrfs     	rw,noatime,nodiratime,compress=zstd:3,ssd,discard=async,space_cache=v2,autodefrag,commit=120,subvol=/@snapshots	0 0

# /dev/nvme3n1p1 LABEL=EFI
UUID=640A-B517      	/efi      	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro	0 2

# /dev/nvme3n1p2 LABEL=SWAP
UUID=91c0b856-de8d-4ade-9717-0025cca15548	none      	swap      	defaults  	0 0

# files in /efi

/efi
└── EFI
    ├── refind
    │   ├── BOOT.CSV
    │   ├── drivers_x64
    │   ├── icons
    │   ├── keys
    │   ├── refind.conf
    │   └── refind_x64.efi
    └── tools

note that my tree only goes 3 levels deep for output reasons, the dir drivers_x64 does contain btrfs_x64.efi

# files in /boot

/boot
├── initramfs-linux.img
├── intel-ucode.img
└── vmlinuz-linux

# my refind.conf

timeout 10
use_nvram true
resolution 3840 2160
use_graphics_for for windows,linux
showtools about,shell,reboot,shutdown,exit

scan_all_linux_kernels
extra_kernel_version_strings linux
scanfor manual,external # 'external' allows refind to find external USB drive with live ARCH in case we broke it

# blkid
# /dev/nvme3n1p3: LABEL="ARCH" UUID="8cbb3944-ce78-4d60-9f0e-d883cee76e97" UUID_SUB="df6dcc9b-1203-4447-9945-ecb0b2b67cf5" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="5c966624-9581-4dd9-a42b-d2b1651943d3"

# I left out loading intel-ucode for now because i want Arch to load first
menuentry "Arch Linux" {
	icon	/EFI/refind/icons/os_arch.png
	volume	5C966624-9581-4DD9-A42B-D2B1651943D3
	loader	/arch/boot/vmlinuz-linux
	initrd	/arch/boot/initramfs-linux.img
	options	"root=UUID=8cbb3944-ce78-4d60-9f0e-d883cee76e97 rw rootflags=subvol=arch"
}

menuentry "Windows 11" {
	icon	\EFI\refind\os_win.png
	loader 	\EFI\Microsoft\Boot\bootmgfw.efi
	disabled
}

Thank you for any help

Last edited by Thumbkin (2026-05-19 22:55:28)

Offline

#2 2026-07-09 19:41:00

ua4000
Member
Registered: 2015-10-14
Posts: 561

Re: rEFInd with BTRFS - Invalid Loader File

The "arch" prefix looks strange in the refind.conf:

	loader	/arch/boot/vmlinuz-linux
	initrd	/arch/boot/initramfs-linux.img

And did you saw the "Not Found error ..." hint on https://wiki.archlinux.org/title/REFInd ?

Offline

#3 2026-07-10 22:23:07

euromatlox
Member
Registered: 2017-02-10
Posts: 150

Re: rEFInd with BTRFS - Invalid Loader File

Not sure of anything but...

As stated earlier, looks strange to have vmlinuz-linuz under /boot and use /arch/boot in config file. Same for initramfs-linux.img.

Perhaps also missing an initrd line for intel-ucode.

Almost two months from the date of help request and no replies from original author, perhaps this topic should be closed (mark solved) ?

Last edited by euromatlox (2026-07-10 22:33:21)

Offline

#4 2026-07-11 15:25:17

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 15,236

Re: rEFInd with BTRFS - Invalid Loader File

Almost two months from the date of help request and no replies from original author, perhaps this topic should be closed (mark solved) ?

Thanks for the hint, next time please use the report button to ensure moderators see it.

Moderator Note
Closing as it seems OP (Thumbkin)  is no longer interested in solving this.


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

Board footer

Powered by FluxBB