You are currently viewing Windows 10 version 1903, May 2019 Update Will Break Your Linux

Windows 10 version 1903, May 2019 Update Will Break Your Linux

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.

Now regenerating fstab. We need to regenerate since Linux partition info are saved into /etc/fstab file. So removing previously installed fstab and creating a new fstab.

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;

arch-chroot /mnt

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

Finally generating grub.cfg

grub-mkconfig -o /boot/grub/grub.cfg

Now it is all done and Linux is able to boot normally.