從UEFI啓動PE 並執行備份和還原的動作

 

前言
最近有客戶需要實現在UEFI裏面boot WinPE ,然後進行recovery操作。根據客戶的要求,通過在網絡上搜索資料終於實現了。方法網絡上都有,我只是簡單的總結了下。
 
UEFI 的定義
對於操作系統來說,如果主板使用的是BIOS,那麼操作系統就必須面對所有的硬件,大到主板顯卡,小到鼠標鍵盤,每次重裝系統或者系統升級,都必須手動安裝新的驅動,否則硬件很可能無法正常工作。而基於EFI的主板則方便很多,因爲EFI架構使用的驅動基於EFI Byte Code。EFI Byte Code有些類似於Java的中間代碼,並不由CPU直接執行操作,而是需要EFI層進行翻譯。對於不同的操作系統來說,EFI將硬件層很好地保護了起來,所有操作系統看到的,都只是EFI留給EFI Byte Code的程序接口,而EFI Byte Code又直接和Windows的API聯繫,這就意味着無論操作系統是Windows還是Linux,只要有EFI Byte Code支持,只需要一份驅動程序就能吃遍所有操作系統平臺
 
 
1) 製作一個winpe x64
爲什麼要製作winpe x64 呢? 開始我也考慮了很久,後來才發現是win 7 64位的OS 才同時支持BIOS和UEFI啓動。在Image Configuration Editor 裏面製作一個WinPE x64
製作出來的文件如下:
請注意,WinPE x86 和Winpe X64有些文件是不同的。在X86下面,是沒有bootmgr.efi的。
 

2) 複製一個bootmgfw.efi 文件到根目錄下,同時複製shell.efi文件到根目錄下

如下. Bootmgfw.efi 是在\Windows\Boot\EFI 路徑下,複製一份到根目錄下。Shell.efi 則是BIOS本身的一個文件,由Intel方布的,可以從網絡上下載。
 

 
3) 然後在BIOS裏面設置從EFI啓動,這個時候系統會進入EFI SHELL, 進入指令界面,輸入“bootmgfw.efi” 。這個時候你就可以看到熟悉的WINPE界面了喔。 
 
4) 由於UEFI只支持fat32位的系統,無法識別大於4G的文件,但是windows 7/8的wim文件一般都比較大,因此爲了能夠兼容,需要使用imagex的分卷操作。具體如下:win7.wim是原始鏡像文件
 
imagex /split D:\win7.wim d:\datasplited.swm 640
 
imagex 會自動的分割文件,文件大小爲640M大小,自動編號如datasplited1.swm ,datesplited2.swm 等。
 
5)還原系統,如果想還原的話,可以參考如下指令
Example:
Copy all SWM files to a local drive - in this example, c:\image.
Run the following command: imagex /ref c:\image\*.swm /apply c:\image\split.swm 1 c:
 
6)這樣子就實現了通過EFI進行引導PE,並執行備份和還原的過程了
 

需要注意的幾個地方:

1:bootmgfw.efi  文件是在winpe 64位的系統裏面纔有的,winpe 32爲系統裏面沒有。

2:shell.efi 文件據說是Intel早期發佈的一個用來進行操作的shell, 可以從網絡上下載,很多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章