Hello everyone,

I’m having trouble getting rEFInd to boot Arch Linux directly from an ISO. I installed rEFInd on a USB drive (using refind-flashdrive), set up refind.conf file and wrote the ISO file to separate partition, but I’m encountering issues when trying to boot into it.

Here’s the output of the lsblk command:

NAME   FSTYPE  FSVER            LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sdb                                                                                             
├─sdb1 vfat    FAT12            REFIND      B28E-9C53                                           
└─sdb2 iso9660 Joliet Extension ARCH_202508 2025-08-01-13-39-26-00                              

Menuentry from refind.conf

menuentry "Arch Linux" {
    icon     /EFI/refind/icons/os_arch.png
    volume   "ARCH_202508"
    loader   /arch/boot/x86_64/vmlinuz-linux
    initrd   /arch/boot/x86_64/initramfs-linux.img
    options  "root=UUID=2025-08-01-13-39-26-00 rw"
}

When I select the Arch Linux entry in rEFInd, I receive the following output:

:: running early hook [udev]
Starting systemd-udevd version 257.7-2-arch
:: running early hook [archiso_pxe_nbd]
:: running hook [udev]
:: Triggering uevents...
:: running hook [memndisk]
:: running hook [archiso]
:: running hook [archiso_loop_mnt]
:: running hook [archiso_pxe_common]
:: running hook [archiso_pxe_nbd]
:: running hook [archiso_pxe_http]
:: running hook [archiso_pxe_nfs]
Waiting 10 seconds for device /dev/disk/by-uuid/2025-08-01-13-39-26-00 ...
:: Mounting '' to ’run/archiso/bootmnt’
ERROR: '' device did not show up after 30 seconds...
Falling back to interactive prompt
You can try to fix the problem manually, log out when you are finished
sh: can't access tty: job control turned off
[rootfs ~]#

The only way I found that worked was to use the loader /EFI/BOOT/BOOTx64.EFI in configuration, which works but is not what I want.

I would appreciate any guidance on how to resolve this issue.

  • chameleon@fedia.io
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    root= isn’t correct for booting a live image like this. You need to use some specific parameters to guide the initramfs to where it can find the /boot/x86_64/airootfs.sfs file, and in general, something like that will be the case for most distros but there are lots of unique mechanisms. Looking at the grub.cfg, /loader/entries or similar files will usually get you some things you can put into your favorite search engine to hopefully find some documentation. For Arch it’s part of mkinitcpio-archiso: https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/-/blob/master/docs/README.bootparams?ref_type=heads

    I don’t have a setup to test it but if If I’m not mistaken something like this should work:

    options  "archisosearchuuid=2025-08-01-13-39-26-00"