Arch Linux Recovery Article

Arch Linux

Losing GRUB on an Arch Linux + LUKS + Btrfs setup usually means you need to boot from a live Arch ISO, unlock the encrypted partition, mount the Btrfs subvolumes correctly, chroot into the installed system, and then reinstall GRUB with the proper crypto and filesystem support enabled.

The most important part is making sure you mount the correct root subvolume, mount the EFI system partition to the proper location, and configure GRUB so it can unlock your encrypted root device during boot. If any of those pieces are wrong, the system may fail to boot even if GRUB appears to install successfully.

1. Boot the Arch ISO and unlock the LUKS container

Start by booting into the Arch Linux live ISO. After that, identify your disks and encrypted partition:

lsblk
cryptsetup luksOpen /dev/sdXn cryptroot

Replace /dev/sdXn with your actual encrypted partition. Once opened, the decrypted mapper device will usually appear as /dev/mapper/cryptroot.

2. Mount the Btrfs subvolumes

Most Arch Linux Btrfs installations use subvolumes such as @ for the root filesystem and @home for the home directory. Mount the root subvolume first:

mount -o subvol=@ /dev/mapper/cryptroot /mnt
mkdir -p /mnt/home
mount -o subvol=@home /dev/mapper/cryptroot /mnt/home

If your installation uses different subvolume names, substitute the correct ones. Using the wrong subvolume is one of the most common reasons recovery attempts fail.

3. Mount the EFI partition

Next mount the EFI System Partition. On many systems this is a small FAT32 partition:

mkdir -p /mnt/boot/efi
mount /dev/sdX1 /mnt/boot/efi

If your system uses /boot directly instead of /boot/efi, then mount it accordingly. The critical thing is that the EFI partition must be mounted to the same path your installed system expects.

4. Chroot into the installed system
arch-chroot /mnt

Once inside the chroot, you are effectively working inside your installed Arch system, which allows you to reinstall boot packages and regenerate the GRUB configuration.

5. Reinstall required packages
pacman -S grub efibootmgr btrfs-progs cryptsetup

These packages provide the bootloader itself, EFI boot manager support, Btrfs utilities, and LUKS encryption support.

6. Configure GRUB for encrypted boot

Edit GRUB’s defaults file:

nano /etc/default/grub

Ensure this line is present:

GRUB_ENABLE_CRYPTODISK=y

Then make sure your kernel command line includes the LUKS device mapping:

GRUB_CMDLINE_LINUX="cryptdevice=UUID=<your-luks-uuid>:cryptroot root=/dev/mapper/cryptroot"

To find the UUID of the encrypted partition:

blkid /dev/sdXn

Replace <your-luks-uuid> with the UUID of the encrypted partition, not the decrypted mapper device.

7. Install GRUB to EFI
grub-install --target=x86_64-efi \
  --efi-directory=/boot/efi \
  --bootloader-id=GRUB

This installs the GRUB EFI executable into the mounted EFI partition and registers it under the bootloader ID GRUB.

8. Generate the GRUB configuration
grub-mkconfig -o /boot/grub/grub.cfg

This step rebuilds the GRUB menu and boot instructions so the new install can find your kernel, initramfs, and encrypted root filesystem.

9. Exit, unmount, and reboot
exit
umount -R /mnt
reboot

After rebooting, GRUB should load, prompt for the LUKS passphrase if needed, and then boot into your Arch Linux system.

Common failure points
  • Wrong Btrfs subvolume mounted as root
  • EFI partition mounted to the wrong directory
  • Missing GRUB_ENABLE_CRYPTODISK=y
  • Incorrect UUID in cryptdevice=
  • GRUB installed while EFI partition was not mounted
If GRUB still does not appear

Check existing EFI boot entries:

efibootmgr -v

If no GRUB entry exists, create one manually:

efibootmgr --create --disk /dev/sdX --part 1 \
  --label "GRUB" \
  --loader /EFI/GRUB/grubx64.efi
Alternative boot managers

If GRUB continues to be troublesome, many Arch users prefer systemd-boot for simpler EFI setups, or rEFInd for a friendlier graphical boot menu. GRUB works with LUKS and Btrfs, but it is more sensitive to configuration mistakes than some alternatives.

Helpful diagnostic commands
lsblk -f
blkid
cat /etc/fstab

These commands help verify your partition layout, UUID values, and mount configuration if something still does not line up.

lsblk
cryptsetup luksOpen /dev/sdXn cryptroot

mount -o subvol=@ /dev/mapper/cryptroot /mnt
mkdir -p /mnt/home
mount -o subvol=@home /dev/mapper/cryptroot /mnt/home

mkdir -p /mnt/boot/efi
mount /dev/sdX1 /mnt/boot/efi

arch-chroot /mnt

pacman -S grub efibootmgr btrfs-progs cryptsetup

nano /etc/default/grub

grub-install --target=x86_64-efi \
  --efi-directory=/boot/efi \
  --bootloader-id=GRUB

grub-mkconfig -o /boot/grub/grub.cfg

exit
umount -R /mnt
reboot
Quality, Reliability & Service
Thank You For Visiting
Brooks Computing Systems - Jacksonville
Visit https://bcs.archman.us