下圖只有Boot和Microsoft,若是你還裝其餘系統可能還會有其餘的文件夾,好比你還裝了Ubuntu(或者manjaro),那麼會有個叫Ubuntu(manjaro)的文件夾與Boot、Microsoft並存。
Boot是計算機默認引導文件所在的目錄,Microsoft是微軟Windows系統引導所在的目錄。
Boot目錄:
Microsoft目錄:
Microsoft\Boot目錄:
上圖中紅框內的bootmgfw.efi就是windows默認的系統引導文件。html
引用:https://blog.csdn.net/lindexi_gd/article/details/50392343
計算機默認引導 -----------就是無論你的計算機有沒有操做系統,定義了UEFI啓動後將經過Bootx64.efi 引導你的計算機,並進入各類模式,維護、安裝、計算機或者系統這裏是 Bootx64.efi ,它只是一個通用名,權限豐富且大於Windows 默認,就是說若是你的Windows 默認的啓動文件不在了,啓動計算機默認的引導文件Bootx64.efi 也是能夠啓動計算機的。使用計算機默認文件隨時能夠在各類環境下啓動計算機,EFI SHELL、ISO、Windows、Linux...均可以,通吃型.linux
Windows默認引導 -------就是你爲計算機安裝了操做系統,或者修復了UEFI引導後,啓動菜單會有 Windows Boot Manager 選項,該選項默認從bootmgfw.efi 啓動系統bootmgfw.efi 該位置的該文件只能用於啓動Windows,不是通用名,權限單一windows
詳細解釋看原做者文章,總結來講就是一塊乾淨的硬盤,裝上win後,此時的Bootx64.efi 極可能就是bootmgfw.efi ,我沒有通過驗證,可是從表面看起來是這樣的,全部我說極可能是,不敢保證。若是這時候裝Linux與win並存,Bootx64.efi極可能會被修改,而後Bootx64.efi會指向grub,grub再去遍歷一遍整個硬盤上的全部系統引導,作一個列表供你選擇是用Linux(好比Ubuntu)仍是用win。若是你選擇是win那就再次轉到bootmgfw.efi 去啓動win,若是你選擇的是Linux(好比Ubuntu)那就轉到系統的引導。
再次聲明:上述結論全是猜想,我沒有實際測試,只是從現象來作出的推論。安全
我安裝win以後又安裝了Manjaro,EFI目錄內容如圖比起以前多了一個Manjaro的文件夾,該文件夾下只有一個grubx64.efi文件。並且安裝完manjaro以後,EFI\Boot目錄下的bootx64.efi文件大小也發生了變化,且此時我開機進入的是jrub,而後在jrub中選擇要開機的系統。用hash校驗了一下EFI\Boot\bootx64.efi 與 EFI\Manjaro\grubx64.efi文件,結果如圖
很明顯這是同一個文件。再校驗下安裝manjaro以前的EFI\Boot\bootx64.efi文件,明顯是與安裝完manjaro以後不同的,以下圖
這樣就驗證了上一小節的猜測,安裝完manjaro以後,修改了系統默認(從硬盤啓動)的引導,指向GRUB來管理系統引導。測試
爲了更有說服力,我又作了下面的測試。
一、開機進入系統boot,修改boot順序,默認(第一個)爲硬盤啓動,此時個人EFI\Boot\bootx64.efi文件實際上安裝完manjaro以後的grubx64.efi。開機後進入的是grub。
二、開機進入系統boot,修改boot順序,默認爲Window boot management,開機,進入的是Windows。
三、開機進入系統boot,修改boot順序,默認爲從manjaro啓動,開機後進入的是grub。
四、設置boot默認從硬盤啓動,刪除EFI\Boot目錄下全部文件,把EFI\Manjaro\grubx64.efi 複製到EFI\Boot 重命名爲bootx64.efi,開機進入的是grub
五、設置boot默認從硬盤啓動,刪除EFI\Boot目錄下全部文件,把EFI\Microsoft\Boot\bootmgfw.efi 複製到EFI\Boot 重命名爲bootx64.efi,開機進入的是windows
由以上能夠獲得結論:
一、在BIOS設置界面種設置boot爲從硬盤啓動,走的是EFI\Boot\bootx64.efi
二、在BIOS設置界面種設置boot爲Window boot management,走的是EFI\Microsoft\Boot\bootmgfw.efi
三、從硬盤啓動,走的是EFI\Boot\bootx64.efi,EFI\Boot\bootx64.efi指向哪一個系統就走哪一個系統(win或者Linux)。操作系統
猜想:極可能是efi\boot\bootx64.efi 文件被修改爲直接引導到efi\microsoft\boot\bootmgfw.efi,致使系統不去加載grub。
猜想修復辦法1:想要修復就能夠再系統更新以前備份efi\boot目錄,系統更新完後替換到該目錄。(下面一句話適用於manjaro)可是咱們通常不多有備份系統的習慣,這時候能夠就去把EFI\Manjaro\grubx64.efi文件複製並重命名成EFI\Boot\bootx64.efi。
猜想修復辦法2:若是你是Ubuntu,找到boot目錄下的grubx64.efi(或者shimx64.efi)複製到efi\boot目錄下,並重命名爲bootx64.efi。若是你是Manjaro系統就去鏡像中複製BOOTX64.efi文件丟到efi\boot中。
上述猜想應該是錯誤的,我對比了下manjaro鏡像中的BOOTX64.efi與實際安裝完efi目錄下的bootx64.efi文件,這兩個文件並不同,再次猜想,鏡像中的多是引導U盤的。目前來看修復方法1是比較靠譜的。
猜想修復辦法3:使用easyUEFI添加Liunx引導,而後調整新添加的爲默認項(以下圖,排在最頂上)。
.net
那麼Ubuntu系統下grubx64.efi和shimx64.efi有什麼區別呢?
僅僅針對Ubuntu,在安全啓動(serureboot)關閉的狀況下,你可使用grubx64.efi。若是安全啓動打開則須要選擇shimx64.efi。htm
https://zhuanlan.zhihu.com/p/31365115
https://linux.cn/article-4667-1.html
https://wiki.deepin.org/wiki/Windows%E5%92%8Cdeepin%E5%8F%8C%E5%90%AF%E5%8A%A8%E7%AE%80%E5%8D%95%E5%AE%9E%E7%94%A8%E7%9A%84%E6%96%B9%E6%B3%95
https://linux.cn/article-8481-1.htmlblog