我最近在我的 LG gram 17 笔记本电脑上安装了 Ubuntu 16.04 和 Windows 10。
一切都运行良好,直到我决定改变启动优先级 - 不是转到 Windows 默认设置,而是直接转到 ubuntu 默认设置。
然后 ubuntu 启动管理器和窗口启动管理器都消失了,屏幕上显示
Failed to open \EFI\BOOT\grubx64.efi - Not Found
Failed to load image \EFI\BOOT\grubx64.efi: Not Found
start_image() returned Not Found
我一直在使用启动修复。但这只能暂时解决问题,而且两个启动管理器很快都会消失。
答案1
根据 Boot Repair 输出,消息声称缺失的文件是存在的。这种不一致可能是由于在某些 FAT 文件系统驱动程序不太好的计算机上使用 FAT16 或大小不足的 FAT32 造成的。大多数此类 EFI 都相当旧(猜测是 2012 年或更早)。但更常见的原因是未能禁用快速启动和休眠在 Windows 中。当这些 Windows 功能处于活动状态时,它们会导致共享分区(包括引导加载程序所在的 EFI 系统分区 (ESP))上的文件系统损坏。禁用这些功能(如前面的链接中所述)并重新启动 Windows 几次可能会解决问题。请注意,Windows 快速启动功能不是与许多 EFI 中具有类似名称的功能相同;EFI 功能在硬件初始化上采用了快捷方式,但不会影响 Windows 处理其关机操作的方式(快速启动和休眠就是这么做的;它们将关机操作转变为挂起到磁盘的操作,这加快了启动过程,但代价是使双启动配置的风险更大)。
如果问题仍然存在,那么您可能需要采取更彻底的纠正措施。首先,我建议您备份 ESP(/dev/sda2
就您而言)。您可以在 Windows 或 Ubuntu 中执行此操作,但我仅描述 Ubuntu 程序,因为我对它们更熟悉,并且我想尽量减少此答案中的混乱。您可以使用我的rEFInd 启动管理器在 USB 闪存驱动器或 CD-R 上启动现有安装或以“安装前尝试”模式启动 Ubuntu 安装程序。在前一种情况下,ESP 应安装在/boot/efi
;在后一种情况下,您需要手动安装 ESP。无论您如何操作,文件级备份(使用cp
、zip
、tar
或类似的文件级工具)应该足够了——但请确保备份了启动失败中提到的文件。
备份完成后,第一级修复尝试是检查和修复文件系统。dosfsck
在 Ubuntu 中,您可以使用 执行此操作。必须卸载文件系统,并且必须传递选项-a
,如sudo dosfsck -a /dev/sda2
。这应该解决问题,但在极少数情况下,它可能会造成进一步的损害,这就需要采取进一步的措施;如果它不起作用,你可能还需要采取进一步的措施……
如果文件系统修复不起作用,那么下一步要尝试的是创建一个新的文件系统并将备份还原到其中。在 Ubuntu 中,必须卸载分区,然后才能sudo mkdosfs -F32 /dev/sda2
创建文件系统。(非常小心使用此命令;如果您指定了错误的设备文件名,您可能会抹去您的 Windows 或 Ubuntu 安装!)重新创建文件系统后,您将恢复之前创建的备份。请注意,如果您这样做并且它有效,您应该/etc/fstab
在 Ubuntu 中编辑:找到行/boot/efi
并更改UUID=
新文件系统的值。(您可以通过键入来发现此值sudo blkid /dev/sda2
。)如果您不进行此更改,ESP 将不会自动安装,这意味着可能不会安装对 GRUB 的未来更新。
另一种方法是使用启动修复,正如 oldfred 所建议的;但是如果你在不先禁用 Windows 快速启动和休眠功能的情况下这样做,问题可能会再次出现。更糟糕的是,在禁用这些功能之前,任何从 Ubuntu 写入 ESP 的尝试都可能导致进一步的文件系统损坏,这可能会导致更严重的问题(也许没有什么例如,启动时,系统将启动。如果文件系统已经存在严重问题,使用引导修复可能会使情况变得更糟。因此,没有一种解决问题的方法完全无风险且简单。恕我直言,最好先禁用快速启动和休眠(这部分相对安全)并进行文件系统检查(也相对安全)。如果这还不够,您必须决定要承担哪些风险——备份并重新创建 ESP 或使用引导修复。备份用户文件是个好主意;虽然损坏它们的可能性很小,但如果您这样做,后果显然是毁灭性的。