好的。我尝试加载 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
我尝试过的事情:
- 使用 easyBCD(是的,我意识到它只适用于基于 MBR 的系统,所以我撤销了用它做的所有事情
- 在 Windows 中使用cmd 命令将
bcdedit
的路径更改为,但没有成功,我运行了 boot-repair 并使用它来重新安装 grub,然后我返回 Windows 并将 的路径更改为 ,但仍然没有成功。然后我将 的路径重置为原始 Windows 路径 ( )。{bootmgr}
/EFI/ubuntu/grubx64.efi
{bootmgr}
/EFI/ubuntu/shimx64.efi
{bootmgr}
/EFI/Microsoft/Boot/bootmgfw.efi
- 然后,我尝试了其他文章中提到的方法:用 grubx64.efi 文件替换 bootmgfw.efi, 但没有用
/EFI/Microsoft
。和中还有许多其他 efi 启动文件(用于 UEFI 启动的文件,如 grub.cfg 中所述,我将其用作参考,以弄清某些文件的作用)/EFI/Boot
。 我替换了每个都带有 grubx64.efi(当然是重命名了)。每次替换时,我都会将 windows 文件从 重命名file.efi
为file.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。
我查看过很多帮助页面,包括:
- 如何修复 Sony Vaio 上的 Windows 8 和 Ubuntu 14.04 双启动问题?
- Ubuntu 12.10 和 Sony VAIO SVS1512 上的 Windows 8 uefi 双启动
- 如何理解 Ubuntu UEFI 安全启动安装?
- https://help.ubuntu.com/community/Laptop/Sony/Vaio/Duo11/Trusty
- 如何修复 Sony Vaio 上的 Windows 8 和 Ubuntu 14.04 双启动问题?
- http://ubuntuforums.org/showthread.php?t=2227580
- 还有许多我记不清了
那么,在我上面列出的方法对您不起作用之后,是否有人成功地在 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。这是一个漫长的过程,有许多奇怪的步骤,显然可能对您(或任何未来的读者)有用,也可能没用,但为了帮助某人,我还是在这里发帖:
答案3
我更换硬盘后的情况:
- 使用 UEFI + 安全启动
- 已安装 Windows 10
- 已安装 Ubuntu 19.04
系统每次都会启动到 Windows。没有 Grub 的迹象。事实上,即使进入 Windows 并选择“高级启动选项”和“Ubuntu”也会启动到 Windows。
根据之前使用该机器(Sony Vaio S1513Z9E/B)的经验,让 EFI 启动 Windows 以外的任何系统的唯一方法是替换文件 /EFI/Microsoft/Boot/bootmgfw.efi。
请注意,我曾尝试替换引导记录和 BCDEdit,但无济于事。
步骤 1. 替换 bootmgfw.efi
- 启动 Windows 10
- 运行“diskpart”
- 执行‘列出磁盘’
- 选择启动磁盘,例如“sel disk 0”
- 执行‘列出卷’
- 选择 EFI 卷,例如“sel vol 2”
- 分配一个可用的驱动器号,例如“assign letter=E:”
现在必须将 Windows 启动管理器重命名并替换为 Ubuntu“shim64x”启动管理器。此示例仅适用于 UEFI + 安全启动!
- cd /d E:\EFI\Microsoft\Boot\
- 移动 bootmgfw.efi bootmgfw_org.efi
- 复制 E:\EFI\ubuntu*.efi
- 复制 shimx64.efi bootmgfw.efi
从 E:\EFI\ubuntu\ 至少需要 shimx64.efi 和 grubx64.efi。
现在重新启动计算机。它应该启动到 Grub。Grub 有菜单选项 Ubuntu 和 Windows 10。通过选择“Ubuntu”,它将按预期启动 Ubuntu。
Windows 的条目有问题。它仍然指向 bootmgfw.efi,这将错误地启动 Ubuntu。
为了创建正确加载 Windows 的 grub 条目,请按以下步骤操作。
- 找到 EFI 分区的 blkid,例如“sudo blkid /dev/sda2”(sda2 将是 EFI 分区)。
- 您将需要 UUID 字段的值(而不是 PARTUUID)。
- 编辑 /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 }
- 另一个入口,功能相同。
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 }
- 重新创建 grub 配置,例如“sudo update-grub”。
此后,grub 菜单项“Ubuntu”将启动 Ubuntu。菜单项“Windows 10 UEFI”将启动 Windows 10。
请注意,上面提到的“bootmgfw_org.efi”是原始的重命名的 Windows 启动管理器。必须以这种方式完成,因为 Vaio 拒绝启动任何其他文件。尝试编辑/重新配置 BCD 以使其按照 UEFI 规范启动 Ubuntu 失败了。