Suddenly I got kicked into grub rescue after a unintended windows update. Yes, Windows can crawl under your skin sometimes.
Secure Boot was Enabled automatically. First Disable it.
Then Live boot into same OS in this case Garuda linux using USB.
Garuda linux filesystem is BTRFS
1. Check your file partitions
lsblk -l
Check for root partition, and EFI partition. For me it was in /dev/nvme0n1p8 & /dev/nvme0n1p5 respectively.
2. Mount the BTRFS Root partition
sudo mount -o subvol=@ /dev/nvme0n1p8 /mnt
Check if the system files (bin
, etc
, usr
, etc.) appear:
ls /mnt
3. Mount Other Btrfs Subvolumes
sudo mount -o subvol=@home /dev/nvme0n1p8 /mnt/home
sudo mount -o subvol=@log /dev/nvme0n1p8 /mnt/var/log
sudo mount -o subvol=@cache /dev/nvme0n1p8 /mnt/var/cache
4. Mount the EFI Partition
sudo mount --mkdir /dev/nvme0n1p5 /mnt/boot/efi
5. Bind System Directories
sudo mount -t proc /proc /mnt/proc
sudo mount --rbind /sys /mnt/sys
sudo mount --rbind /dev /mnt/dev
sudo mount --rbind /run /mnt/run
6. Chroot Into Your System
sudo arch-chroot
If this works, reinstall GRUB:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
Exit and reboot:
exit
sudo umount -R /mnt
reboot
Error you may encounter:
- When running unmount command
sudo umount -R /mnt
Error:
umount: /mnt/run/user/1000: target is busy.
This happens when some processes are still using /mnt/run/user/1000
. You can try the following command to forcefully unmount it:
sudo umount -l /mnt
Now the unmount was successful, you can continue the steps.