Windows 8.1反复破坏GRUB UEFI启动管理器
我试图获得双启动Windows 8.1 / Ubuntu Precise安装。 我的笔记本电脑是Sony SVT1313Z9ES。 它似乎有一个错误的UEFI实现,无论配置的UEFI启动管理器如何,它总是查找EFI/Microsoft/Boot/bootmgfw.efi
。 我已经安装了Windows 8.1和Ubuntu,并且在我的EFI文件系统中都有两个EFI管理器。
经过广泛阅读后,我尝试用GRUB启动管理器grubx64.efi
替换bootmgfw.efi
– 以及EFI/Boot
grubx64.efi
。 这工作正常,直到我从GRUB启动Windows。 Windows启动很好,但是在第一次关闭后我发现bootmanager已经损坏了。 看起来Windows 8.1已经尝试用自己的GRUB引导管理器替换它,并且无法以某种方式编写它。 包含EFI文件的FAT32文件系统已损坏。 fsck.vfat
报告Free cluster summary wrong
,并在EFI文件上运行md5sum
报告Input/output error
。 EFI文件系统上的所有其他文件都没有损坏,只有当前活动的启动管理器受到影响。
FWIW,我的EFI分区是磁盘最末端的512MB GPT分区 – 但是有大量的可用空间,大约450MB。 分区是否如此接近驱动器的末端会导致任何问题?
如何防止Windows以这种方式弄乱启动管理器?
这是通过将由GRUB bootmgfw.efi
的备份Windows版本的bootmgfw.efi
移动到EFI分区的Microsoft/Boot
子目录之外来解决的。 我在amoe/stock_windows_bootloader.efi
下安装了它并相应地配置了GRUB。 这似乎可以防止腐败,原因我并不理解。
对于调试此问题的任何人,我建议在Windows中禁用快速启动function ,这显然有可能破坏EFI分区 。
非常感谢罗德史密斯与UEFI相关的众多有用答案。