I recently got upgraded Windows in my dual boot machine with Arch Linux. After update Linux is no more able to start. It ended with GRUB rescue mode. It may happen with any Linux which is dual booting with Windows.
Windows while updating created a new partition in my hard disk. I don’t why it has been created since it never happened to me till this update. Due to this partition label of my Linux space changed one level up. That was the problem and GRUB is unable to load Linux with that new change.
Here is how to solve this similar problem if you faced it. Although I am using Arch Linux but this process is similar to all Linux distro.
How to fix Linux unable to boot after changing/resizing partition
Create a bootabel drive with the Linux you use. We need to boot into live system and do our stuffs there. In Windows, rufus is I liked most.
Boot with the bootabe USB.
We need to know our Linux partitions. So do;
cfdisk to get the Linux partitions you have. For exmaple let’s say; /dev/sda9 > root , /dev/sda10 > home & /dev/sda2 > EFI
Now mounting all these partitions to
/mnt in my case.
mount /dev/sda9 /mnt mount /dev/sda10 /mnt/home mount /dev/sda2 /mnt/boot/efi
It may be different in your case. I had EFI partition mounted in
/boot/efi while installing. Make sure it is mounted the correct partition.
fstab. We need to regenerate since Linux partition info are saved into
/etc/fstab file. So removing previously installed
fstab and creating a new
rm /mnt/etc/fstab genfstab -U /mnt >> /mnt/etc/fstab
Now reinstalling GRUB. Do do so we need to enter root. Which is done by using
chroot. It is different other distro. In Arch Linux;
There are different commands to install GRUB in Legacy and UEFI mode. Mine is UEFI hence for UEFI in Arch Linux the command is;
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
Now it is all done and Linux is able to boot normally.