標籤:
原帖: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=303679 前言: 1、本教程針對於UEFI啟動來敘述的,根據普遍的支援UEFI的機器來敘述 2、本教程以Windows 8 X64 來作為參考
標題簡要說明: Windows Boot Manager --------安裝完Windows系統後而出現的啟動選項(相關的資訊儲存在NVRAM),可以刪除和建立和bcdboot.exe有關 Bootmgfw.efi --------引導Windows的引導檔案 Bootx64.efi ---------UEFI的必需引導檔案 bcdboot.exe--------修複UEFI啟動的命令列工具,微軟出品
開始前先引進兩個概念:
電腦預設引導 -----------就是不管你的電腦有沒有作業系統,定義了UEFI啟動後將通過Bootx64.efi 引導你的電腦,並進入各種模式,維護、安裝、電腦或者系統 這裡是 Bootx64.efi ,它只是一個通用名,許可權豐富且大於Windows 預設,就是說如果你的Windows 預設的開機檔案不在了, 啟動電腦預設的引導檔案Bootx64.efi 也是可以啟動電腦的。使用電腦預設檔案隨時可以在各種環境下啟動電腦,EFI SHELL、ISO、 Windows、Linux...都可以,通吃型.
Windows預設引導 -------就是你為電腦安裝了作業系統,或者修複了UEFI引導後,啟動菜單會有 Windows Boot Manager 選項,該選項預設從bootmgfw.efi 啟動系統 bootmgfw.efi 該位置的該檔案只能用於啟動Windows,不是通用名,許可權單一
======================================================== 0、 對於UEFI啟動環境來說,Bootx64.efi 用處更大,這裡Bootx64.efi 是個通用名,就是所任意有效efi改成Bootx64.efi 都被電腦啟動載入,並啟動。 bootmgfw.efi 不是通用名,只適合啟動Windows。
當然對於UEFI啟動Windows來說Bootx64.efi 和bootmgfw.efi 其實是同一個檔案,二者的迴圈冗餘校正CRC值是一樣的。 他們都有啟動windows的能力,但是身處的位置不一樣,
efi\boot\bootx64.efi efi\microsoft\boot\bootmgfw.efi
對系統的引導產生的影響肯定也不一樣,下面我們來驗證.... ======================================================
從三個方向來講:(以下結論都經過事實驗證,經得住任何懷疑和猜測!!) ======================================================== 1、光碟片介質UEFI啟動【已驗證】:
通過分析微軟原裝鏡像的UEFI引導記錄(efisys.bin)我發現,最初出光碟片的引導檔案是efi\boot\bootx64.efi,因為此項驗證較簡單,我總共驗證了: win7 x64 ;win8 x86 ;win8 x64 三者的光碟片引導檔案分別是 bootx64.efi bootia32.efi bootx64.efi
結論:UEFI在光碟片上的啟動不依賴於作業系統,可認為是無作業系統環境,故 bootx64.efi 是電腦預設引導檔案========================================================
2、移動磁碟介質UEFI啟動【已驗證】:
普遍的,可以從論壇上看到通過bootx64.efi 啟動隨身碟
結論:UEFI在移動磁碟介質上的啟動不依賴於作業系統,可認為是無作業系統環境,故 bootx64.efi 是電腦預設引導檔案 ========================================================
3、本地磁碟介質UEFI啟動【已驗證】:
::原生ESP分區引導檔案分析
我為此安裝了微軟win8 x64的作業系統,分析ESP分區的全部檔案,分別存在: efi\boot\bootx64.efi efi\microsoft\boot\bootmgfw.efi
我們不禁思考:哪個檔案測試真正用到的呢?電腦預設啟動哪個呢?系統預設啟動哪個呢?
那好很簡單,我們依次刪除他們看看系統能否啟動就知道了....
1、刪除 bootmgfw.efi ,保留 bootx64.efi
>結果: 選擇 從本地硬碟啟動 系統仍然可以引導進入 選擇 Windows Boot Manager 進入失敗
2、刪除 bootx64.efi ,保留 bootmgfw.efi
>結果: 選擇 從本地硬碟啟動 進入失敗 選擇 Windows Boot Manager 系統仍然可以引導進入
結論: bootx64.efi 是電腦預設引導檔案 bootmgfw.efi 是 Windows預設引導檔案
4、bcdboot 和 “Windows Boot Manager ” “ Bootmgfw.efi” “ Bootx64.efi ” 之間的聯絡
bcdboot 修複系統引導的命令格式: bcdboot 系統位置 /l 語言
例:
- bcdboot c:\windows /l zh-cn
複製代碼當我們執行了上述代碼後:
bcdboot.exe 會修複系統引導,而且會同時修複電腦預設引導和Windows 預設引導,在ESP分區同時出現bootx64.efi和bootmgfw.efi,
並且bootx64.efi是由bootmgfw.efi 改名而來的。與此同時在Boot Menu啟動選擇菜單那裡產生“Windows Boot Manager”,
Windows Boot Manager 及其包含的資訊是儲存在主板上的NVRAM裡面的,而不是儲存在硬碟上,故刪除Windows Boot Manager需要到BIOS設定區刪除。
::這裡我們如果通過bcdedit查看bcd檔案的話,我們可以發現,bootmgfw.efi 是 Windows預設引導檔案。所以我們的結論同原生ESP分區測試的結論一樣。
UEFI規範中,關於NVRAM的正解: NVRAM是BIOS ROM中的一段地區,一般定義為64k byte, 現在EFI把所有的變數都存在這裡。
結論: bootx64.efi 是電腦預設引導檔案 bootmgfw.efi 是 Windows預設引導檔案
最後: 寫這篇文章最主要的原因,是能夠讓那些不是很明白Bootx64.efi和Bootmgfw.efi區別的、或者模糊知道的朋友,清楚瞭解二者之間的關聯以及區別不要再有 Bootx64.efi就是Bootmgfw.efi改名而來的、Bootx64.efi就是Bootmgfw.efi 像這些不正確的說法,以免誤導後來的朋友..... 準確的說:“Bootx64.efi 可以是 Bootmgfw.efi,也可以是其他任意有效efi程式”
另: 通過上面的驗證可以知道UEFI下修複Windows 引導可以分為:修複電腦預設引導和Windows預設引導。
比較通用的是修複電腦預設引導,如果你能夠會UEFI下手動/自動修複電腦預設引導,那麼修複Windows 預設引導也不在話下,
從UEFI層面上說,Windows其實是電腦的一個efi應用,它被電腦包含了。所以修複電腦預設引導才是萬能的。
當然,在不會手動修複的時候,bcdboot還是很有用的,正常情況下都能修複。只要你的系統沒有經過過度精簡,bcdboot應該都能搞定, 能夠學會手動修複就不用擔心這些了。
下方是一個手動修複電腦預設引導的視頻教程,在一樓底部,視頻看起來很直觀,一看就懂。修複電腦預設引導後,我們可以直接引導Windows, 而可以不必理會Windows預設引導是否存在或者是否正確。
【完美版】掛載GPT磁碟的ESP分區的批處理+手動修複UEFI+GPT系統引導視屏教程 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=300068&fromuid=396698
電腦預設引導的一些檔案參考: UEFI啟動詳解:啟動分析+N項操作執行個體,趕緊進來學習,不要落伍啦,該給自己充電咯... http://bbs.wuyou.net/forum.php?mod=viewthread&tid=299643&fromuid=396698 |
點評
[轉載] 關於Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的詳解