You are not logged in.

#1 2020-04-10 12:42:55

CountZukula
Member
Registered: 2017-11-04
Posts: 48

[solved] Configuration problem: BTRFS subvolume as root + rEFInd

I just installed Arch on a fresh system, haven't had much experience with EFI and related boot loaders and I'm hitting a snag. I managed to get rEFInd showing as the boot loader and I'm seeing the manual stanza I've enabled in refind.conf. No automatic detection is happening though, which is optional at this point. When attempting to boot using the manual stanza I get the following error:

Starting vmlinuz-linux
Using load options 'root=PARTUUID=d0270ec3-aaae-4639-bea2-fb4743501438 rw add_efi_memmap rootflags=subvol=arch initrd=\boot\initramfs-linux.img'
Invalid loader file!
Error: Not Found while loading vmlinuz-linux

My Arch install is located on a btrfs subvolume "arch" on nvme0n1p2. Mounting that with

mount -t btrfs -o subvol=arch /dev/nvme0n1p2

as expected.

root@archiso ~ # mount /dev/nvme0n1p2 /mnt/btrfsroot/                                                                                                                                                                                                                                                                                                                     
root@archiso ~ # btrfs subvol list /mnt/btrfsroot                                                                                                                                                                                                                                                                                                                         
ID 257 gen 48 top level 5 path arch
ID 260 gen 16 top level 257 path arch/var/lib/portables
ID 261 gen 17 top level 257 path arch/var/lib/machines

nvme0n1p1 contains the efi partition

/dev/nvme0n1p1: UUID="ED79-2FDD" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="primary" PARTUUID="ec48a6da-d228-4ef9-925b-469a2d503338"
/dev/nvme0n1p2: LABEL="os" UUID="e27af6d9-8f5f-46c7-856e-16a6d23713ad" UUID_SUB="78858572-16b4-413b-b82d-abb0d5d44e3a" BLOCK_SIZE="4096" TYPE="btrfs" PARTLABEL="primary" PARTUUID="d0270ec3-aaae-4639-bea2-fb4743501438"
/dev/sda1: LABEL="ARCH_202004" UUID="C246-90EF" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="Microsoft Basic Data" PARTUUID="4b4b04e8-4969-4cfb-b460-d6c5ccbef9ef"
/dev/loop0: TYPE="squashfs"

Menuentry in refind.conf

menuentry "Arch Linux Manual refind.conf" {
    icon     /EFI/refind/icons/os_arch.png
    volume   os
    loader   /boot/vmlinuz-linux
    initrd   /boot/initramfs-linux.img
    options  "root=PARTUUID=d0270ec3-aaae-4639-bea2-fb4743501438 rw add_efi_memmap rootflags=subvol=arch"
    submenuentry "Boot using fallback initramfs" {
        initrd /boot/initramfs-linux-fallback.img
    }
    submenuentry "Boot to terminal" {
        add_options "systemd.unit=multi-user.target"
    }
}

As far as I understood, the refind-linux.conf file in my arch/boot folder is only used by the automatic detection, so that's irrelevant at this point? Oh yeah, and my /boot folder is located within the arch root subvolume.

root@archiso ~ # ls /mnt/btrfsroot/arch/boot                                                                                                                                                                                                                                                                                                                         
initramfs-linux.img  initramfs-linux-fallback.img  intel-ucode.img  refind_linux.conf  vmlinuz-linux

Any ideas on how to proceed here? I have yet to try and include the intel-ucode.img file, assuming that I have to get this working before finalising the proper kernel boot parameters (mentioning this for completeness).

Last edited by CountZukula (2020-04-10 17:50:25)

Offline

#2 2020-04-10 17:50:08

CountZukula
Member
Registered: 2017-11-04
Posts: 48

Re: [solved] Configuration problem: BTRFS subvolume as root + rEFInd

Silly of me: forgot to check whether rEFInd had its drivers available. Without specifying `alldrivers`, in my case, no driver was copied to the efi partition. This fixed it.

refind-install --usedefault /dev/sdXY --alldrivers

Offline

Board footer

Powered by FluxBB