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相关的众多有用答案。