Well, wasn’t expecting this…
I rebooted my laptop, and it keeps booting to the grub shell.
I was going to arch-chroot into it and update grub, and rebuild intarimfs, however, I guess I don’t know how to with BTRFS subvolumes that are LUKS encrypted.
I would appreciate any help, and am willing to learn.
I could even jump on a call of some kind if anyone has time to help…
Arch
BTRFS encrypted with LUKS (No LVM)
GRUB
I live booted into the live usb
cryptsetup luksOpen /dev/nvme0n1p2 arch
mount /dev/mapper/arch /mnt
arch-chroot /mnt
Output:
mount: /mnt/proc: mount point does not exist
dmesg(1) may have more information after failed mount system call.
=> ERROR: failed to setup chroot /mnt
So I browsed /mnt and it lists subvolumes. However, I am not sure how to go about arch-chrooting into this.
I cannot take credit for finding the solution. Someone on a discord chat I found was able to help me. The fix:
1 Open a terminal:
Unlock the LUKS partition:
cryptsetup luksOpen /dev/nvme0n1p2 arch
2 Mount the BTRFS filesystem: Since BTRFS has subvolumes, you need to mount the correct subvolume:
mount -o subvol=@ /dev/mapper/arch /mnt
3 Mount the necessary virtual filesystems:
4 Bind the boot partition (if separate): If you have a separate boot partition, you need to mount it too:
mount /dev/nvme0n1p1 /mnt/boot
5 Chroot into your system:
arch-chroot /mnt
6 Fix your fstab: Ensure that your /etc/fstab file inside the chroot environment is correctly set up. You might need to generate a new one using genfstab:
genfstab -U /mnt >> /mnt/etc/fstab
7 Update GRUB: Reinstall and update GRUB to ensure it is correctly installed:
Exit the chroot environment:
exit
Unmount all the filesystems:
bash
umount -R /mnt cryptsetup luksClose arch
8 Reboot:
Thanks for sharing the solution!
I will always try to share the solutions, even if I find them elsewhere. Changes are it could help someone else out!