It’s holiday season and so I got a hold of playing some games longly missed on Windows. Booting Windows 10 certainly unveiled several pending updates (Antivirus, Geforce, Windows updates). Since Windows 10 does not explicitly tell about big updates anymore I just did let it reboot several times, waiting for manual grub selection then.
Though this time the update essentially broke GRUB. “error: unknown filesystem. Entering rescue mode…” is certainly not what I expect from a Windows 10 update. After googling a bit I found this thread including an explanation as well as a solution for the problem: The Windows 10 update adds yet another hidden partition, but essentially rewrites the partition table which then breaks GRUB finding the correct /boot partition containing grub2/. Congrats Microsoft!
So, Windows 10 “Upgrade to Windows 10 Home, version 1511, 10586” breaks grub2 because boot block grub2 still thinks it should boot grub2 from (hd0,msdos2) when it now needs to boot from (hd0,msdos3).
The solution is simple but nasty without bash-completion and English keyboard layout on a German keyboard.
grub rescue> ls (hd0,msdos1)/grub2 error: unknown filesystem. grub rescue> ls (hd0,msdos2)/grub2 error: unknown filesystem. grub rescue> ls (hd0,msdos3)/grub2 ./ ../ themes/ device.map i386-pc/ locale/ fonts/ grubenv grub.cfg
Next set the changed boot prefix and root attributes:
grub rescue> set prefix=(hd0,msdos3)/grub2 grub rescue> set root=(hd0,msdos3) grub rescue> set prefix=(hd0,msdos3)/grub2 root=hd0,msdos3 grub rescue> insmod normal grub rescue> normal
Change from “rescue” to “normal” GRUB mode, and quickly select Fedora from the boot menu. In order to fix GRUB log into Fedora, open a terminal and become root. Now generate a new grub configuration.
sudo -i grub2-mkconfig -o /boot/grub2/grub.cfg grub2-install /dev/sda reboot
Reboot and the GRUB menu should be fixed. Now safely choose to continue the Windows 10 upgrade.