我在 UEFI 模式下在 3TB GPT 磁碟上安裝了 Windows 8 和 Ubuntu 12.10。
兩者都可以正常啟動。
兩個作業系統都在 UEFI 啟動選單中建立了自己的條目,其中有一個「ubuntu」條目和一個「Windows 8」條目。
開機順序可以在主機板的 UEFI 設定中變更。
我想先啟動“ubuntu”,因為我將 GRUB 2 設定為能夠啟動兩個系統。
但每當我啟動 Windows 8 時,它都會更改啟動順序,以便它首先啟動。
我怎樣才能防止這種情況發生?
多謝。
- 更新 -
我了解到 bcdedit.exe 可用於操作 Windows 中的開機設定資料。
這很重要,因為 Windows 將 BCD 與儲存啟動順序的啟動 NVRAM 同步。
每次觸碰 BCD 中的 {fwbootmgr} 條目時,NVRAM 都會被覆寫。
我修改了此條目以首先載入 GRUB 2,結果確實如此。但是,啟動 Windows 8 後,NVRAM和BCD中的{fwbootmgr}恢復為原來的順序,即先啟動Windows 8。
我對此真的很困惑。
-- 更新 2 --
我透過在 Windows 的群組原則編輯器中建立啟動腳本來解決這個問題。啟動腳本發出「bcdedit /set {fwbootmgr} DEFAULT {適當的 UUID}」指令。這是一個大駭客,絕對不是我想要的解決方案。我希望 Windows 在 NVRAM 中排名第二,僅次於 GRUB。
那我該怎麼做呢?
答案1
微軟代表在他們的官方論壇上回答了我的問題。他們表示,這確實是正常行為。
我透過在每次系統啟動時執行 .bat 檔案解決了該問題。該文件執行以下操作:
bcdedit /set {fwbootmgr} DEFAULT {appropriate UUID}
其中「適當的UUID」是GRUB中的UUID,可以從「bcedit /enum韌體」清單中讀取。
可以透過開啟群組原則編輯器來編輯bat檔案(在metro中尋找)。
我寫了一篇關於雙啟動問題的文章:http://tlfabian.blogspot.hu/2013/01/converting-dual-boot-mbr-partitioned.html
答案2
不保證,但在 Windows 中嘗試:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
如果您尚未停用安全啟動,則需要更改grubx64.efi
為shim.efi
.
如果這不起作用,請向 Microsoft 投訴,或將其從雙啟動狀態中刪除並在虛擬機器中執行。