好的,我是 Ubuntu 的新手,上个月我买了一台预装 Windows 8 的笔记本电脑。
我已更新到 Windows 8.1,然后我考虑将 Ubuntu 安装为双启动,这样我就可以随意操作并了解更多信息。
所以我按照 Youtube 教程(http://www.youtube.com/watch?v=dJfTvkgLqfQ),我的设备运行正常。
最初几次启动时,我看到的是 GRUB 菜单而不是默认的 HP Boot OS Manager,并且我能够选择我的操作系统。
于是我就去睡觉了,第二天我打开电脑,GRUB 菜单没有出现。我试了几次,它都没有自动出现。
为了看到 GRUB 菜单,我必须打开 PC,在启动时必须按 ESC 暂停启动,然后按 F9 获取启动选项。然后我必须从 OS Boot、Ubuntu、Ubuntu(是的,有两个可用的 Ubuntu)和默认 EFI 文件中进行选择。
当我单击第一个 Ubuntu 时,我得到了 GRUB 菜单(我太害怕尝试第二个,以防我的笔记本电脑坏了)并且我可以安全地从那里加载 Ubuntu 并使用它(虽然每次加载 Ubuntu 时我都必须增加亮度,因为它会在启动时以某种方式降低亮度到完全黑暗)
所以我的问题是,为什么我的 GRUB 在第一天正常工作之后却没有在启动时显示?
我的笔记本电脑是 HP TouchSmart j-078CA。
编辑1:仅供参考,我刚刚切换到 Ubuntu LiveCD 来检查我的安装,发现我的一个分区被标记为msftres
。这是我在 LiveCD 上的 GParted 的屏幕截图:
答案1
首先,关闭 Windows 8 快速启动功能,正如这里所述。该功能会导致文件系统损坏,进而导致奇怪的启动问题。这个问题很可能是最初导致您出现问题的。禁用快速启动可能会也可能不会导致 GRUB 在下次重新启动时重新出现。
如果这不能解决问题,您应该尝试使用固件的 NVRAM 重新注册 GRUB。最可靠的方法是bcdedit
在 Windows 中使用。打开行政人员命令提示符窗口并输入:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
如果您在安全启动处于活动状态时启动,请更改grubx64.efi
为shim.efi
(或者可能是shimx64.efi
;在 Linux 中,请检查 的内容/boot/efi/EFI/ubuntu
以查看其中的内容)。在 Windows 中执行此操作比其他方法更可靠,因为一些用户报告说,如果默认设置是在 Windows 之外设置的,某些版本的 Windows 会反复将自己重新注册为默认引导加载程序。虽然这种情况很少见,但与您看到的情况一致,因此可能需要使用 Windows 执行此任务。
一种更简单的方法,但在你的情况下可能不太可靠,是使用引导修复。此工具可自动修复某些类型的启动问题,很可能对您有用。最大的风险是,如果过于热心的 Windows 导致 GRUB 无法访问,则启动修复更改将不起作用。
如果问题仍然存在,请回复并提供详细信息。(如有必要,请编辑您的原始帖子并对此帖子发表评论,以提醒我更改。)
答案2
如果您使用的是 Windows Power Shell,则必须使用引号:
bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi
答案3
我有一条建议。我按照第一个回答流程操作,但 GRUB 仍然没有出现。
我关注了快速启动关闭和 bcedit 命令,但它不起作用。我准备使用启动修复在 Linux 实时 USB 中,从 BIOS 启动,我注意到“启动管理器”选项中的一项功能仍然显示“快速启动”已启用,即使 Windows 表示未启用它。
我将其关闭,重新启动,它就在那里,GRUB 界面一如既往地快!
我希望它在有人尝试重新安装 Ubuntu 或使用 Boot-Repair 之前能够有所帮助。
编辑1:这“启动管理器”选项卡是我的 BIOS 中的第一个选项卡,其中有一个设备列表,我可以从中选择启动设备(硬盘、CD、USB……)上面有两个选项“快速启动”还有一个我不记得了。我希望它能澄清我答案的模糊上下文。
答案4
大多数主板供应商应该允许您使用 重置启动顺序efibootmgr
(当 grub 以 UEFI 模式安装时,它将使用该顺序)。停用 Windows 启动管理器。从原始安装或实时 Ubuntu USB/DVD 启动 Ubuntu)并运行efibootmgr
。如果您以 UEFI 模式安装它,您将获得一些信息和启动顺序列表。您会在列表中的某个地方注意到 Windows 引导加载程序/Windows 启动管理器和 Ubuntu。Windows 可能具有更高的启动优先级(Windows 启动项在启动顺序中位于 Ubuntu 之上)。
有些条目(如果不是全部的话)旁边还会有星号*,标记它们处于活动状态。
查看 Windows 条目旁边的 4 位启动号码并运行:
sudo efibootmgr --bootnum #### --inactive
这将停用 Windows 条目。此外,请确保现在停用的 Windows 具有更高的优先级(如果尚未):
sudo efibootmgr --bootorder ####,$$$$,&&&&,%%%%
####
Windows 启动号码在哪里?
如果您现在重新启动,并且 Ubuntu 选项以最高优先级启用,您将启动到 grub。
请注意,Windows 似乎无法识别它已被停用,因此无法通过启动 Windows 或更新它来恢复。
来源:修订自这个答案
如果这不起作用,请尝试在 BIOS/UEFI 设置中更改启动管理器。进入 BIOS 设置实用程序 -> 选择系统配置标签 ->操作系统启动管理器->Ubuntu-> 按适当的键(例如F10“Save”和“Exit”)保存更改的设置并退出。