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
    arrow-up
    10
    ·
    2 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
      arrow-up
      6
      ·
      2 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
        arrow-up
        2
        ·
        2 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
        arrow-up
        5
        ·
        2 months ago

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