![循序渐进,确保万无一失](https://linux22.com/image/1046516/%E5%BE%AA%E5%BA%8F%E6%B8%90%E8%BF%9B%EF%BC%8C%E7%A1%AE%E4%BF%9D%E4%B8%87%E6%97%A0%E4%B8%80%E5%A4%B1.png)
我尝试将计算机启动到 Ubuntu,但最终不得不从设备菜单中手动选择 Ubuntu,尽管它应该首先启动。相反,Windows 8 启动时就像 Ubuntu 不存在一样!当在启动设备菜单中选择 Ubuntu 时,GRUB 工作正常。(我还能用什么方法?)我尝试使用 EasyBCD,但 Windows 启动管理器不断出现错误。万一有用,在安装 Ubuntu 期间它无法识别 Windows 8,我不得不手动调整大小并安装。我能做什么?
注意:各位!!!GRUB 运行正常!!!正如我之前所说,这是 HP 启动菜单中的一个错误!!!请不是请为我提供未来 GRUB 编辑的答案!!!
以下是我的规格:
PC type: HP 2000-2d49WM Notebook PC
RAM: 4GB
Swap: 2GB
Processor: AMD E-300 Vision 1.3 GHz x2
BIOS Edition: N\A Until further notice
答案1
我在使用另一台 HP 笔记本电脑时也遇到过类似的问题。
问题是,即使您永久更改 EFI 启动顺序(例如,使用命令“efibootmgr -0”),每次启动 Windows 时,您的更改都会被覆盖。
为了解决这个问题,我必须安装重新索引手动。
然后,我找到了默认的 EFI 引导加载程序 (.efi),对其进行了备份,并用 rEFInd 中的引导加载程序 (已重命名) 替换了它 [不要忘记将与 rEFInd 有关的其他文件夹和文件复制到同一文件夹中]。我不记得哪一个是默认的 EFI 引导加载程序,而且我无法在计算机上检查,因为它属于我的一个客户。
警告:如果您必须应用这种棘手的解决方法,请确保您可以先通过启动菜单启动 rEFInd 的正常安装,以便在出现问题或您将来改变主意时可以轻松恢复更改 !!!!!
rEFInd 手动安装程序可在此处获得:http://www.rodsbooks.com/refind/installing.html#linux
有关使用 efibootmgr 永久更改 EFI 启动顺序的清晰示例(可能无法在您的计算机上运行,如上所述,但我强烈建议您先尝试一下),请查看Rod Smith(rEFInd 的创建者)的这篇文章。
看来重命名技巧现在已在 rEFInd 的官方网站上完整记录:http://www.rodsbooks.com/refind/installing.html#naming,http://www.rodsbooks.com/refind/installing.html#manual_renaming
rEFInd 确实非常用户友好(一旦安装)并且允许解决这些糟糕的 EFI 实现。
循序渐进,确保万无一失
尝试使用 efibootmgr 更改 UEFI 启动顺序
在 Ubuntu 下,打开终端并安装“efibootmgr”(如果尚未安装),使用以下命令:
安装 efibootmgr
使用以下命令检索 EFI 启动顺序和条目:
sudo efibootmgr-v
笔记:
BootCurrent:0002(表示用于启动的UEFI启动项)。
BootOrder:0002,0003,0001,0000(表示定义的UEFI启动顺序)。
Boot000x*(代表一个启动项。后面跟着它的名称、HD 和 EFI 文件。所有启动项都列在“BootOrder”下面)。
使用以下命令定义新的启动顺序:
sudo efibootmgr -o 0001,0002,0000,0003
在上面的命令中,我假设 Ubuntu 条目是 0001,Windows 是 0002,Recovery 是 0000,Diagnostics 是 0003。当然,您可能有更多或更少的条目和/或希望设置不同的顺序。我建议您从命令“sudo efibootmgr -v”复制“BootOrder”值并根据需要进行调整。然后检查命令的结果。
使用步骤2中使用的命令再次检查“BootOrder”。
正确重启计算机并检查系统是否启动新启动顺序的预期(第一个)条目(此处为 Ubuntu)。如果成功,请重启并尝试启动 Windows(通过 UEFI 菜单),然后再次重启计算机并检查 Ubuntu 是否仍默认启动。如果一切正常,您就大功告成了!EFI 实现正确,您无需再执行任何操作。如果失败,请跳至下一个解决方案。
安装和配置 rEFInd
- 如果尚未完成,请禁用 BIOS 中的安全启动功能,以避免额外的复杂性;
- 在 Ubuntu 下,从此页面下载 rEFInd 的二进制 ZIP 文件:http://www.rodsbooks.com/refind/getting.html;
- 解压 ZIP 档案;
- 打开终端并移动到已提取存档文件的文件夹(命令应如下所示:)
cd ~/Downloads/refind-bin-0.8.1/
; - 按照此处描述的步骤(1至6):http://www.rodsbooks.com/refind/installing.html#linux. 您的架构很可能是 x86-64,因此使用
rm refind_ia32.efi
步骤 3; - 编辑配置文件 (refind.conf)。只需使用
sudo nano ./refind.conf
或sudo -i gedit ./refind.conf
。我假设当前目录仍然是 ESP 上的 rEFInd 目录。您将对“timeout”(值如:1)和“default_selection”(值如:Ubuntu)参数非常感兴趣,以配置自动启动到 Ubuntu。 - 重启电脑,使用 UEFI 启动菜单启动 rEFInd 并检查其配置是否满足您的需求。如果不满足,请启动 Ubuntu 并在 ESP 上的目录中编辑 refind.conf,然后重复此步骤,直到设置满足您的所有要求。请检查您是否也可以从 rEFInd 启动 Ubuntu 和 Windows(更长的超时值可能会有帮助)。
- 确定您的系统默认使用哪个 EFI 文件,并在 ESP 上找到其文件夹(可能是“EFI/Microsoft/Boot/bootmgfw.efi”或其他)。不要忘记该命令,
sudo efibootmgr -v
它对于获取此信息非常有用。 - 将 ESP 上的 refind 文件夹的内容复制到步骤 7 中标识的默认 EFI 文件的文件夹中(示例中为“EFI/Microsoft/Boot/”)。
sudo -i nautilus
如果您不太熟悉命令行,甚至可以使用命令。假设 ESP 安装在 /boot/efi,您可以使用以下命令:sudo cp -r /boot/efi/EFI/refind/* /boot/efi/EFI/Microsoft/Boot/
。不要忘记根据需要调整目标路径。 - 将默认 EFI 文件(示例中为“bootmgfw.efi”)重命名为“bootmgfw.bak”(
sudo mv bootmgfw.efi bootmgfw.bak
如果您在正确的文件夹中。您可以使用cd /boot/efi/EFI/Microsoft/Boot/
切换到该文件夹[我仍然假设 ESP 安装在“/boot/efi”并且默认 EFI 文件的相对路径是“EFI/Microsoft/Boot/”]); - 将 rEFInd EFI 文件(“refind_x64.efi”)重命名为默认 EFI 文件(此处为“bootmgfw.efi”)。
sudo mv refind_x64.efi bootmgfw.efi
如果您在正确的文件夹中,请使用 。 - 重启电脑,如果一切正常,就大功告成了!如果出现问题,您仍然可以使用 UEFI 启动菜单启动 rEFInd,启动 Ubuntu 并恢复步骤 8 到 10 中所做的更改。
答案2
首先从live ubuntu cd
或Live ubuntu flash drive
和启动connect to internet
。之后进入终端ctlr+alt+T
并使用以下命令,
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo sed 's/trusty/saucy/g' -i /etc/apt/sources.list.d/yannubuntu-boot-repair-trusty.list
sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)
这实际上解决了启动过程中的所有问题。如果仍然无法解决问题,只需将错误报告留在添加命令部分即可。您会发现我已附加一个链接,它有screen short and clear instruction
。如果您仍然不清楚,只需转到该链接即可。玩得开心。
参考链接: 关注我以获得进一步说明!
答案3
在我看来,您已经完成了 UEFI 安装。Windows 8.1 不会悄悄地让您在其旁边使用 Linux。如果您绝对必须使用 Windows 启动管理器而不是 Ubuntu 的 UEFI 选项,以防您的主板以某种方式不接受除 Windows 启动管理器选项之外的任何其他选项,您需要在 Windows 内部编辑 Windows 启动管理器,方法是使用管理员权限打开命令提示符并使用 bcdedit,如下所示:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
如果您使用安全启动,则需要使用以下命令:
bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
答案4
在 ubuntu 中启动。转到终端。然后使用以下命令重新安装 grub:
sudo-grub-install /dev/sda
假设 ubuntu 安装在 sda 上(最有可能)。否则将其更改为正确的组件。