使用 efibootmgr 更改引导顺序

The*_*ern 12 dual-boot uefi 14.04

我最近在我的 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
Run Code Online (Sandbox Code Playgroud)

从外观上看,它看起来非常凌乱,并且没有将 efi 文件放在开头。关于我应该如何解决这个问题的任何建议?

谢谢。

Rod*_*ith 19

首先,关于引导文件远离磁盘起始位置的抱怨与 EFI 引导计算机无关。BIOS 下有一些限制(这取决于 BIOS 的年龄),但即使在(现代)BIOS 下,您的 750GB 磁盘也应该没有问题。

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

sudo efibootmgr -o 0,1,2
Run Code Online (Sandbox Code Playgroud)

此命令将首先设置两个ubuntu实例,然后是Windows Boot Manager条目。那应该可以解决问题。不幸的是,一些 EFI 有问题,会“忘记”BootOrder条目或行为不端。如果您遇到问题,我建议您在 Windows 管理员命令提示符窗口中尝试以下命令:

bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
Run Code Online (Sandbox Code Playgroud)

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

如果失败,那么您的固件可能有缺陷。HP 可能会提供更新。如果没有,或者它没有帮助,并且如果您在计算机的退货期限内,请将其退回以获得退款并获得未损坏的东西。如果你不能这样做,那么你就进入了非常丑陋的解决方法的领域,比如重命名 GRUB 使其假装是 Windows 引导加载程序。有关该主题的一些信息,请参见此处,尽管是专门为 rEFInd 编写的。不过,基本原则适用于任何事情。

  • 最好使用`bcdedit /enum firmware` 查看当前的启动设置,这将在继续执行上面的 bcdedit /set 命令之前提供一些保证。 (2认同)