无法在 Sony VAIO Ubuntu 15.04 双启动上进入 Grub(UEFI)

无法在 Sony VAIO Ubuntu 15.04 双启动上进入 Grub(UEFI)

好的。我尝试加载 GRUB 已经很长时间了(尝试了两年左右)。我的 Sony VAIO ( SVS151190X) 上装有 Windows 7,我正尝试通过 GRUB 启动 Ubuntu 15.04,但我无法进入 GRUB...

这篇文章总体来说细节的延伸类似/相同问题发布于:https://askubuntu.com/questions/666690/cannot-boot-ubuntu-15-04-using-sony-vaio-with-win-8-1-pre-installed

我尝试过的事情:

  1. 使用 easyBCD(是的,我意识到它只适用于基于 MBR 的系统,所以我撤销了用它做的所有事情
  2. 在 Windows 中使用cmd 命令将bcdedit的路径更改为,但没有成功,我运行了 boot-repair 并使用它来重新安装 grub,然后我返回 Windows 并将 的路径更改为 ,但仍然没有成功。然后我将 的路径重置为原始 Windows 路径 ( )。{bootmgr}/EFI/ubuntu/grubx64.efi{bootmgr}/EFI/ubuntu/shimx64.efi{bootmgr}/EFI/Microsoft/Boot/bootmgfw.efi
  3. 然后,我尝试了其他文章中提到的方法:用 grubx64.efi 文件替换 bootmgfw.efi, 但没有用/EFI/Microsoft。和中还有许多其他 efi 启动文件(用于 UEFI 启动的文件,如 grub.cfg 中所述,我将其用作参考,以弄清某些文件的作用)/EFI/Boot。 我替换了每个都带有 grubx64.efi(当然是重命名了)。每次替换时,我都会将 windows 文件从 重命名file.efifile.win.efi

顺便说一句,我试图直接编辑 grub.cfg(小心地使用我应该编辑的文件作为参考,此外还在文件中搜索对 bootmgfw.efi 的所有引用。我只编辑了列表,特别是我重命名 Windows 文件时的路径;没有其他内容(除了列表下方有一个 Windows 路径)。现在,我必须这样做的原因是因为sudo grub-update返回: /usr/sbin/grub-probe: error: failed to get canonical path of /cow. 这是在实时会话中安装 boot-repair 之后发生的,因为在我安装它之前,boot-repair 只是一个未知命令...但是然后我现在在这个实时会话中再次尝试了它(之后sudo apt-get install grub)并且它工作正常,我确保 Windows 路径设置正确,但这并不重要,直到我真正获得 grub 的访问权限。

此外,我的 BIOS 仅包含从内部硬盘、外部设备、磁盘驱动器或网络启动的选项。没有选择 Windows 或 Ubuntu 的选项,只需 HDD

我查看过很多帮助页面,包括:

那么,在我上面列出的方法对您不起作用之后,是否有人成功地在 Windows 上双启动了 Ubuntu,并且您找到了有效的解决方案?

非常感谢您的帮助,提前谢谢。

编辑:需要澄清的是,Ubuntu 已安装,grub 引导加载程序也已安装,我只是无法在启动笔记本电脑时到达 grub 引导加载程序。

答案1

许多索尼的固件 (EFI) 质量很差,除了 Windows 启动管理器(即 )之外,无法启动任何其他程序EFI/Microsoft/Boot/bootmgfw.efi。我知道的唯一解决方法是用 GRUB 替换该文件(或者,如果安全启动处于活动状态,则使用 Shim,将 GRUB 存储在EFI/Microsoft/Boot目录中的正常文件名中)。引导修复程序可以自动执行此操作,但您必须进入高级菜单并选择适当的选项,该选项称为“备份和替换启动文件”(我不记得确切的措辞)。

您还可以尝试另一种方法,即使用零售(而非 OEM)磁盘上的全新安装替换原有的 Windows 安装。请参阅这里了解如何合法获取各种 Windows 安装介质。此过程的目的是消除大多数计算机中存在的制造商特定的繁琐程序,这些繁琐程序可能会给启动过程增加额外的复杂性。

最彻底的解决方案是在 BIOS/CSM/旧模式下重新安装所有内容,绕过 EFI 模式启动。索尼的限制仅适用于 EFI 模式,因此 BIOS 模式启动应该可以绕过这些问题;但是,如果不完全重新安装,这种转换将很难进行,即使重新安装,也会出现问题。请参阅我的 CSM 问题页面了解详情。

我知道你说你已经尝试了很多方法,但都没有用。不幸的是,你的问题是你的电脑有缺陷。如果你买的时间不长,我建议你把它退回商店退款,但我怀疑两年后他们是否会把它退回来。

答案2

我似乎已经设法在 Vaio SVS1511T9ES 上找到了 GRUB。这是一个漫长的过程,有许多奇怪的步骤,显然可能对您(或任何未来的读者)有用,也可能没用,但为了帮助某人,我还是在这里发帖:

双启动 Ubuntu 16.04 + Windows 7 UEFI — GRUB 菜单不出现

答案3

我更换硬盘后的情况:

  1. 使用 UEFI + 安全启动
  2. 已安装 Windows 10
  3. 已安装 Ubuntu 19.04

系统每次都会启动到 Windows。没有 Grub 的迹象。事实上,即使进入 Windows 并选择“高级启动选项”和“Ubuntu”也会启动到 Windows。

根据之前使用该机器(Sony Vaio S1513Z9E/B)的经验,让 EFI 启动 Windows 以外的任何系统的唯一方法是替换文件 /EFI/Microsoft/Boot/bootmgfw.efi。

请注意,我曾尝试替换引导记录和 BCDEdit,但无济于事。

步骤 1. 替换 bootmgfw.efi

  1. 启动 Windows 10
  2. 运行“diskpart”
  3. 执行‘列出磁盘’
  4. 选择启动磁盘,例如“sel disk 0”
  5. 执行‘列出卷’
  6. 选择 EFI 卷,例如“sel vol 2”
  7. 分配一个可用的驱动器号,例如“assign letter=E:”

现在必须将 Windows 启动管理器重命名并替换为 Ubuntu“shim64x”启动管理器。此示例仅适用于 UEFI + 安全启动!

  1. cd /d E:\EFI\Microsoft\Boot\
  2. 移动 bootmgfw.efi bootmgfw_org.efi
  3. 复制 E:\EFI\ubuntu*.efi
  4. 复制 shimx64.efi bootmgfw.efi

从 E:\EFI\ubuntu\ 至少需要 shimx64.efi 和 grubx64.efi。

现在重新启动计算机。它应该启动到 Grub。Grub 有菜单选项 Ubuntu 和 Windows 10。通过选择“Ubuntu”,它将按预期启动 Ubuntu。

Windows 的条目有问题。它仍然指向 bootmgfw.efi,这将错误地启动 Ubuntu。

为了创建正确加载 Windows 的 grub 条目,请按以下步骤操作。

  1. 找到 EFI 分区的 blkid,例如“sudo blkid /dev/sda2”(sda2 将是 EFI 分区)。
  2. 您将需要 UUID 字段的值(而不是 PARTUUID)。
  3. 编辑 /etc/grub.d/40_custom 以添加以下条目, menuentry "Windows 10 UEFI" --class windows --class os { insmod ntfs search --no-floppy --set=root --fs-uuid D604-55F0 chainloader (${root})/EFI/Microsoft/Boot/bootmgfw_org.efi }
  4. 另一个入口,功能相同。menuentry "Windows 10 UEFI" { search --set=root --fs-uuid D604-55F0 --file /EFI/Microsoft/Boot/bootmgfw_org.efi chainloader /EFI/Microsoft/Boot/bootmgfw_org.efi }
  5. 重新创建 grub 配置,例如“sudo update-grub”。

此后,grub 菜单项“Ubuntu”将启动 Ubuntu。菜单项“Windows 10 UEFI”将启动 Windows 10。

请注意,上面提到的“bootmgfw_org.efi”是原始的重命名的 Windows 启动管理器。必须以这种方式完成,因为 Vaio 拒绝启动任何其他文件。尝试编辑/重新配置 BCD 以使其按照 UEFI 规范启动 Ubuntu 失败了。

相关内容