使用 efibootmgr 更改启动顺序

使用 efibootmgr 更改启动顺序

我最近在 HP Envy 上安装了 Ubuntu 14.04(第一次使用 Linux),并一直在尝试让双启动正常工作。我四处寻找并尝试运行启动修复(以下是结果),但它仍然说启动文件距离磁盘的起始位置很远。我还运行了 efibootmgr,结果如下:

BootCurrent: 0000 
Timeout: 0 seconds
BootOrder: 3002,3000,3001,2001,2002,2003
Boot0000* ubuntu    HD(2,c8800,82000,a0d91f49-899b-46ac-8863-35f2d16774c4)File(\EFI\ubuntu\shimx64.efi)
Boot0001* Ubuntu    HD(2,c8800,82000,a0d91f49-899b-46ac-8863-35f2d16774c4)File(\EFI\ubuntu\grubx64.efi)RC
Boot0002* Windows Boot Manager  HD(2,c8800,82000,a0d91f49-899b-46ac-8863-35f2d16774c4)File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC
Boot3004* Internal Hard Disk or Solid State Disk    RC
Boot3005* Internal Hard Disk or Solid State Disk    RC
Boot3006* Internal Hard Disk or Solid State Disk    RC
Boot3007* Internal Hard Disk or Solid State Disk    RC
Boot3008* Internal Hard Disk or Solid State Disk    RC
Boot3009* Internal Hard Disk or Solid State Disk    RC
Boot300A* Internal Hard Disk or Solid State Disk    RC

看起来非常混乱,并且没有将 efi 文件放在开头。关于如何解决这个问题,有什么建议吗?

谢谢。

答案1

首先,对于使用 EFI 启动的计算机来说,启动文件远离磁盘起始位置的抱怨是无关紧要的。BIOS 下存在限制(具体取决于 BIOS 的旧程度),但即使在(现代)BIOS 下,您的 750GB 磁盘也不会造成任何问题。

其次,您可以BootOrder使用 选项更改变量efibootmgr-o如下所示:

sudo efibootmgr -o 0,1,2

此命令将首先设置两个ubuntu实例,然后Windows Boot Manager设置条目。应该成功了。不幸的是,有些 EFI 存在错误,会“忘记”BootOrder条目或出现其他错误。如果您遇到问题,我建议您在 Windows 管理员命令提示符窗口中尝试以下命令:

bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi

(如果您已禁用安全启动,则可以shimx64.efi用替换grubx64.efi,尽管在禁用安全启动的情况下,两者都应该可以使用。)

如果失败,则您的固件可能有缺陷。HP 可能会提供更新。如果没有,或者没有帮助,并且您的计算机处于退货期限内,请将其退回以获得退款并购买未损坏的产品。如果您无法做到这一点,那么您将陷入非常丑陋的解决方法的境地,例如重命名 GRUB 以使其假装是 Windows 引导加载程序。请参阅这里有关该主题的一些信息,尽管是专门为 rEFInd 编写的。但基本原则适用于任何事物。

答案2

如果您进入 BIOS 选项,其中只看到 osmanager 和 USB、磁盘等。您必须突出显示 osmanager 并按下,enter您将获得一个包含 Ubuntu Windows 和任何其他发行版的菜单。使用f5f6重新排列以符合您的喜好,然后单击f10保存。如果您使用多重启动,并且在 grub 菜单中只看到一个 Linux 发行版,请输入 Linux 并使用

sudo grub-update 

答案3

就我而言,解决方案是:

sudo su
cd /boot/efi/EFI
mv BOOT BOOT_bak
cp -R ubuntu BOOT
cd BOOT
mv shimx64.efi bootx64.efi

感谢 idimopoulos戴尔论坛

答案4

在类似情况下(使用 HP250G7 笔记本电脑),更改启动顺序会失败,但停用所有 Windows 条目(0000、0002)会有所帮助:

$efibootmgr -b 0 -A

$ efibootmgr -b 2 -A

$ efibootmgr

BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0000,0003,2001,2002,2004
Boot0000  Windows Boot Manager
Boot0002  Windows Boot Manager
Boot0003* debian
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot3000* Internal Hard Disk or Solid State Disk

相关内容