Debian
帶有 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 嗎?
- 安全嗎?
- 有人可以向我解釋一下這個問題嗎?並告訴我解決方案?
謝謝!
我解決了,這裡描述的問題,我按照所有步驟來解決。
見這裡 https://forums.linuxmint.com/viewtopic.php?f=46&t=296423&p=1648791#p1648791
並且那裡有一個指向 Ubuntu 論壇的連結
…“作業系統啟動管理器”經過硬編碼以載入 Microsoft EFI 文件,並且始終在任何其他本地 EFI 文件之前執行。…