最近,我将 HP Stream 200-010 Mini Desktop 从 Windows 8.1 升级到了 Windows 10。升级之前,我在通过 USB 连接的 80GB 外置硬盘上安装了 Ubuntu 14.04。登录时,我总是按 Esc 键,按 F9 选择启动设备选项,然后从启动顺序菜单中选择 Ubuntu。也许有更简单的方法,但我不是技术专家,我勉强完成了安装,所以这对我来说已经足够了。无论如何,升级后,Ubuntu 选项从启动顺序菜单中消失了(我尝试使用 Esc 键的相同方法......)。在搜索网络后,我尝试使用“bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi”命令解决问题,但它并没有解决问题,甚至损坏了 Windows 启动管理器 - 每次启动时我都会收到奇怪的消息,导致登录延迟几分钟,直到最终我刷新 Windows。希望我能够解释我的问题,以便有人可以帮助我
谢谢
可能有帮助的其他信息:在磁盘管理中,我可以看到带有分区的外部硬盘驱动器,我没有更改任何设置,例如安全启动或快速启动(升级之前也是如此),我仍然有可启动的 USB 棒
我不确定,在我安装 Ubuntu 并尝试启动后,我确实看到了大约 3 行的紫色屏幕,其中出现了 grub 字样。问题是,从我读过的和我理解的内容来看(再次强调,我远非专家),如果我更改 uefi 启动源并将 usb 硬盘选项拖到最高,则启动将从 ubuntu 开始,因为它安装在外部 usb 硬盘上,当我选择断开硬盘连接时,windows 8.1 将首先启动但不幸的是,它从来都不是那样的 - 我得到了我提到的紫色屏幕,我无法摆脱它,所以我重新启动了电脑并使用启动菜单屏幕...
我的 Windows 启动管理器现在工作正常,但只有在我刷新 Windows 之后才能正常工作。运行 bcdedit 命令后,我遇到了问题。
答案1
在 EFI 启动中,引导加载程序是位于称为EFI 系统分区 (ESP)。原则上,这些文件可以以任何文件名存储在任何 ESP 上的任何位置。(您可以拥有多个 ESP。)因此,EFI 会将有关要使用哪个引导加载程序的信息存储在 NVRAM 中。听起来您的 Ubuntu NVRAM 条目丢失或损坏了。
导致此问题的一个可能原因是磁盘断开连接;某些 EFI 会查找 NVRAM 中描述的引导加载程序,如果某个条目描述了不存在的文件,则删除该条目。大多数情况下这都没问题,但是如果您断开磁盘连接,则下次启动计算机时,其中包含的任何引导加载程序都将无法访问。您在升级时没有提到断开包含 Ubuntu 的外部磁盘,但这种做法相当常见,所以我不禁认为您可能已经这样做了,因此您的固件删除了相关条目。
如果是这个原因,可以采用以下几种解决方案:
- 重新创建旧条目- 您可以使用简易UEFI在 Windows 或
efibootmgr
Ubuntu 中重新创建旧的 NVRAM 条目。无论哪种情况,您都需要找到旧的 GRUB 并告诉实用程序在哪里找到它。使用 EasyUEFI 会更容易,它是一个 GUI 工具;efibootmgr
是一个命令行程序。您需要识别您的 ESP 并找出 GRUB 驻留在哪一个上。ESP 是 FAT 分区,因此您应该使用 GParted、、parted
或blkid
一些类似的工具(在 Ubuntu 中;或 Windows 等效版本)来识别 ESP 候选并找到 GRUB。在任何给定的磁盘上,ESP 通常(但不总是)是第一个或第二个分区。请注意,如果 GRUB 有 Windows 的条目,一旦它成为默认条目,您就应该能够从 GRUB 菜单中选择 Windows。另一方面,如果 GRUB 在您的外部磁盘上,拔下它可能会重新出现当前的问题。 - 重命名 GRUB-- 您无需重新创建 NVRAM 条目,只需为 GRUB 指定“后备”文件名即可跳过该条目
EFI/BOOT/bootx64.efi
。此文件名用于可移动媒体(如 OS 安装程序),其理念是固件需要一个标准化文件名才能从以前从未使用过的可移动磁盘启动。如果您为 GRUB 指定后备文件名,您的计算机应该能够从外部磁盘启动 GRUB,就像它是 OS 安装程序一样。您需要使用固件的内置启动管理器(您似乎一直在这样做)来选择要启动的 OS。 - 在硬盘上使用更灵活的启动管理器-- 您可以安装一个引导管理器,它会主动搜索硬盘上的可用引导加载程序。我知道有两个可以做到这一点:现已废弃的改装以及我目前维护的分支,重新索引。如果你安装其中任何一个到你的内置硬盘的 ESP,它应该能够检测并允许您在外部磁盘上启动 GRUB(或者在 rEFInd 的情况下,甚至可以直接启动 Linux 内核)。您可以使用 CD-R 或 USB 闪存驱动器版本测试 rEFInd,如果可以,请将 rEFInd 安装到内部磁盘上的 ESP。
即使我误诊了问题的原因,其中一些解决方案也可能有效,但这实际上取决于真正的问题是什么。一个关键问题是:GRUB 安装在哪里?如果它与 Windows 引导加载程序位于同一个 ESP 上,则原因可能与我的猜测不同,您可以将 GRUB 设置为主要引导程序,这样应该运行良好。如果 GRUB 位于外部磁盘上的单独 ESP 上,则无论你做什么,你都必须仔细注意哪个 ESP 是哪个。