使用 Windows 8 和 Debian 8 的 HP Pavilion 15 上的 EFI 双启动问题

使用 Windows 8 和 Debian 8 的 HP Pavilion 15 上的 EFI 双启动问题

语境

HP Pavilion 15 笔记本电脑,当我购买时预装了 Windows 8。昨天我对硬盘进行了分区,并安装了全新的 Debian 8,一切正常,如下表:

root@debian:/# fdisk -l
...
Device          Start        End   Sectors   Size Type
/dev/sda1        2048     821247    819200   400M Windows recovery environ
/dev/sda2      821248    1353727    532480   260M EFI System
/dev/sda3     1353728    1615871    262144   128M Microsoft reserved
/dev/sda4     1615872  731095039 729479168 347,9G Microsoft basic data
/dev/sda5  1425111040 1465147391  40036352  19,1G Microsoft basic data
/dev/sda6   731095040 1419251711 688156672 328,1G Linux filesystem
/dev/sda7  1419251712 1425108991   5857280   2,8G Linux swap
....

问题

当我按下电源按钮时,它会启动 Windows 8 而不是 grub,也不让我选择操作系统。


更多数据

我的系统启动规格:

  • 快速启动 -> 禁用
  • 安全启动 -> 禁用
  • 传统启动 -> 禁用
  • EFI启动->启用

所以我无法选择要启动的操作系统,因为它会自动启动 Win 8,但是如果我按 F9 按钮并进入 BIOS 的“启动顺序”,则会显示以下内容:

Boot Option Menu:
- OS boot Manager     -> if pressed starts Windows 8
- debian              -> if pressed starts Grub (that's what i want)
- Boot from EFI File  -> it starts the navigation of a folder that let you choose the .efi file
- Notebook Hard Drive -> I don't remember but I think starts Windows 8

所以这里发生了奇怪的事情......看看我的 efibootmgr:

root@debian:~# efibootmgr 
BootCurrent: 003D
Timeout: 0 seconds
BootOrder: 0002,3002,0003,2001,2002,2003
Boot0002* Windows Boot Manager
Boot0003* debian
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3002* Internal Hard Disk or Solid State Disk

如果我尝试使用以下命令更改运行顺序: efibootmgr -o 0003,0002

这些更改将被忽略,Windows 8 仍会启动而不提供选择。

链接 有人说制造商硬编码了/EFI/Windows/Boot之前检查过的事实/EFI/debian,因此这可能是一个问题,因为 efi 总是首先查找 Windows。

因此,我将我的/dev/sda2(EFI 系统)安装到一个/target文件夹中以查看发生了什么,如下所示:

root@debian:/target# ls
boot  BOOTSECT.BAK  EFI

root@debian:/target/EFI# ls
Boot  debian  HP  Microsoft

root@debian:/target/EFI# ls debian
grubx64.efi

root@debian:/target/EFI# ls Microsoft
Boot

root@debian:/target/EFI# ls Microsoft/Boot/
BCD          boot.stl         es-ES  ko-KR        qps-ploc    
BCD.LOG      bootx64.efi      et-EE  lt-LT        Resources  
BCD.LOG1     bootx64.efi.grb          lv-LV       ro-RO       
BCD.LOG2                      Fonts  memtest.efi  ru-RU       
bg-BG                         en-US  <otherlanguages>
bkpbootmgfw.efi               
bootmgfw.efi                  
bootmgr.efi                  
BOOTSTAT.DAT              

链接某人解决了移动并将其重命名为此/EFI/debian/grubx64.efi的问题/EFI/Microsoft/Boot/bootmgfw.efi

但我害怕:

  • 此操作后我可以恢复 Windows 吗?
  • 安全吗?
  • 有人可以向我解释一下这个问题吗?并告诉我解决办法?

谢谢!

答案1

看这里 https://forums.linuxmint.com/viewtopic.php?f=46&t=296423&p=1648791#p1648791

并且有一个 Ubuntu 论坛的链接

...“操作系统启动管理器”经过硬编码以加载 Microsoft EFI 文件,并且始终在任何其他本地 EFI 文件之前运行。 ...

答案2

我解决了,问题如描述的那样这里,我按照所有步骤解决了。

相关内容