我有一个 Ubuntu 13.10 和 Windows 8 双启动,运行正常,升级到 Windows 8.1 会按预期破坏 grub2。但是,这次启动修复无法为我恢复 grub。我的笔记本电脑直接进入 Windows。
我仔细检查了 Windows 8.1 是否重新启用了快速启动,因此我已将其禁用。在我的 BIOS 中,UEIF 用于启动,安全启动已禁用。
我有一个 500GB 的 GPT 分区,其中 sda1 是 efi 分区,sda2 是 /boot,sda3 是 ubuntu 的 /,sda7 是交换区域。对于 Windows,sda4 是 msft 保留,sda5 是 c://,sda6 是 Windows 恢复。这些(至少)是我的原始设置。
这是启动信息:http://paste.ubuntu.com/7051548/
我还尝试从实时 ubuntu 会话挂载我的硬盘,然后在 /dev/sda 上重新安装 grub,但也没有用。
还有什么其他方法我可以尝试来恢复我的 Ubuntu 吗?
答案1
看起来您已经运行了 Boot-Repairs 的“有缺陷的”UEFI 修复程序。我以为您只能启动 grub/shim。这会将 Windows efi 文件重命名为备份名称,并将 Windows 文件重命名为 grub/shim。
要撤消并将文件重命名为原始名称,只需勾选 Boot-Repair 的“恢复 EFI 备份”选项。
使用重命名的文件,您无法直接从 UEFI 菜单启动 Windows,因为它实际上是 shim。并且 Windows 更新可能会重写 bootmgfw.efi 文件并覆盖 shim 版本,因此如果您只能启动 Windows 版本,则必须重新运行启动修复。如果您可以在 UEFI 菜单中启动 Ubuntu 条目,请撤消重命名。
Boot-Repairs 重命名将此 /EFI/microsoft/boot/shimx64.efi 复制到 bootmgfw.efi 实际的 Windows 启动文件(最初为 bootmgfw.efi)变为:/EFI/Microsoft/Boot/bkpbootmgfw.efi
此外,grub 确实有一个错误,在启用安全启动的情况下,无法从 grub 菜单启动 Windows 8.1。
UEFI NVRAM 启动条目缓存在 BCD 存储中 BCD 对某些 UEFI 全局变量具有 1:1 映射,每次操作 {fwbootmgr} 时,NVRAM 都会自动更新
替代 Boot-Repairs 重命名 shim。有些系统最好从 Windows 内部注册 grub/shim - 对于那些不断将 Windows 重置为默认设置的人
Windows 8.1 Ubuntu 13.10 双启动时不显示 Grub
bcdedit /设置 {bootmgr} 路径 \EFI\ubuntu\grubx64.efi
答案2
你的 Ubuntu 是以 UEFI 模式安装的吗?
仅从个人经验来看,在经历了许多与 Windows 双启动的艰难斗争之后,我总是以虚拟机的形式运行,在大多数情况下,这种方式效果很好(资源允许)。