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.

  • Hellmo_luciferrariOP
    link
    fedilink
    English
    102 months ago

    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:

    
    mount --types proc /proc /mnt/proc
    mount --rbind /sys /mnt/sys
    mount --make-rslave /mnt/sys
    mount --rbind /dev /mnt/dev
    mount --make-rslave /mnt/dev
    

    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:

    grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
    grub-mkconfig -o /boot/grub/grub.cfg
    

    Exit the chroot environment:

    exit

    Unmount all the filesystems:

    bash

    umount -R /mnt
    cryptsetup luksClose arch
    

    8 Reboot:

    reboot
    
    • @kitnaht@lemmy.world
      link
      fedilink
      62 months ago

      Hell yeah dude. Props for the solution! We need more things like this for search engines to index so that less people rely on centralized places like Reddit.

      • Hellmo_luciferrariOP
        link
        fedilink
        English
        22 months ago

        I am fully with you!

        Thank you! Wish I was the one who figured it out. I am just sharing what was taught to me!

        That is exactly the reason I joined Lemmy, to ditch centralization.

      • Hellmo_luciferrariOP
        link
        fedilink
        English
        52 months ago

        I will always try to share the solutions, even if I find them elsewhere. Changes are it could help someone else out!