Refind

rEFInd is a UEFI boot manager capable of launching EFISTUB kernels. It is designed to be platform-neutral and to simplify booting multiple operating systems like Linux , Windows and Mac.

I faced some difficulties managing grub ↗ when i dualbooted Arch with Linux Mint . When i looked for alternatives to grub in Arch wiki, I found about Refind . Since i found it to quite simple to understand and feature complete, i decided to stick with it. The official website ↗ is great source of information.

Even after moving to Alpine Linux i’m using refind as it offers first class support to BTRFS filesystem unlike the newer alternatives like limine ↗ . Unlike grub, there is no need run any update command after making changes to the config file. The changes are automatically picked up by refind and the software works exactly the same in all distributions that i’ve used as there is a single configuration file in the EFI partition.

I have updated all below information in the Alpine Linux wiki ↗ .

Files and locations

Given below is the file and folders used by Refind. A default installation will install everything except the themes. I added icons for Alpine Linux and ensure that BTRFS drivers are available at the appropriate folder.

prabu@homepc2 > tree /boot/efi/EFI/refind/ -L 1
/boot/efi/EFI/refind/
├── BOOT.CSV
├── drivers_x64
├── icons
├── keys
├── refind.conf
├── refind.conf-sample
├── refind.conf~
├── refind_x64.efi
├── themes
└── vars

6 directories, 5 files

prabu@homepc2 > tree /boot/efi/EFI/refind/drivers_x64/ -L 1
/boot/efi/EFI/refind/drivers_x64/
└── btrfs_x64.efi

1 directory, 1 file

Sample configuration

With the below configuration in a single config file i can enable or disable any OS to boot. With BTRFS filesystem and refind, maintaining a rescue OS or adding an option for Alpine Linux edge running KDE is quite easy and disabling is even easier.

prabu@homepc2 ~> cat /boot/efi/EFI/refind/refind.conf|grep -v '^ *#'|grep "\S"
timeout 3
use_nvram false
showtools
dont_scan_dirs +,EFI/BOOT,EFI/Linux,EFI/systemd,@/boot,EFI/alpine,EFI/grub
menuentry "Alpine Linux" {
    icon     /EFI/refind/icons/os_alpine.png
    volume   BTRFSVOL
    loader   @/boot/vmlinuz-lts
    options  "root=UUID=823a3283-30a7-4fef-b50b-8a2230c71b5b rw rootflags=subvol=@ rootfstype=btrfs zswap.enabled=1 zswap.compressor=lzo zswap.max_pool_percent=25 initrd=@\boot\intel-ucode.img initrd=@\boot\initramfs-lts"
    # PARTUUID not working for alpine
 }
menuentry "Alpine Rescue" {
    icon     /EFI/refind/icons/tool_rescue.png
    volume   BTRFSVOL
    loader   @arescue/boot/vmlinuz-lts
        # Early loading of CPU microcode requires initrd line to be moved to options
    # initrd   @arescue/boot/initramfs-lts
    options  "root=UUID=823a3283-30a7-4fef-b50b-8a2230c71b5b rw rootflags=subvol=@arescue rootfstype=btrfs zswap.enabled=1 zswap.compressor=lzo zswap.max_pool_percent=25 initrd=@arescue\boot\intel-ucode.img initrd=@arescue\boot\initramfs-lts"
    # PARTUUID not working for alpine
 }
include themes/refind-theme-regular/theme.conf

Best practices


© Prabu Anand K 2020-2026