2013年6月22日 星期六

製作Winpe x86與x64二合一的開機選單 (1)

常見到網路上有人可以將x86與x64的Winpe合併在同一份USB或DVD中,花點時間整理一蝦有關設定開機選單的方法。
在Windows 7使用的方法就是藉由BCDedit.exe來設定,我們就以BCDedit.exe來了解如何去設定開機選單,將Winpe x86與x64 Image放在一起。
在前面介紹過的Winpe 3.0 製作,已經學會如何製作Winpe 3.0 x86與x64版本,接下來我們來針對BCD檔案進行修改,讓x86與x64版本的winpe可以放在一起。
BCD檔存放於C:\winpe_x86\ISO\boot路徑下,要製作多重開機選單就得靠它,我們可用BCDedit.exe來編輯BCD檔,BCDedit.exe相關的使用使另可參考BCDedit微軟官網的介紹,這裡就不做說明。

現在就一步步來修改開機選單
Step 1 : 使用以下命令來找設定在BCD檔中有關於WinPE 3.0 x86對應的GUID,此GUID是由系統自行產生,不是人為產生,所以要將這組GUID={b5e0cb2c-db5a-11e2-856b-005056c00008}記下,以便後續用於連結WinPE 3.0 x86 Image使用。
set BCDpath=e:\boot\bcd
bcdedit /store %BCDpath% /timeout 20
bcdedit /store %BCDpath% /set {default} description "WinPE 3.0"
bcdedit /store %BCDpath% /copy {default} /d "Start WinPE 3.0 x86"
bcdedit /store e:\boot\bcd /enum all

Step 2 : 一樣的做法,來產生WinPE 3.0 x64對應的GUID={6a992a01-db5c-11e2-856b-005056c00008},記得要記下這組對應Winpe 3.0 x64的GUID。
bcdedit /store %BCDpath% /copy {default} /d "Start WinPE 3.0 x64"
bcdedit /store e:\boot\bcd /enum all

Step 3 : 將上述兩組GUID分別對應至Winpe 3.x86與x64的Image。
bcdedit /store %USBpath% /set {b5e0cb2c-db5a-11e2-856b-005056c00008} device ramdisk=[boot]\sources\pe_x86.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store %USBpath% /set {b5e0cb2c-db5a-11e2-856b-005056c00008} osdevice ramdisk=[boot]\sources\pe_x86.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}

bcdedit /store %USBpath% /set {6a992a01-db5c-11e2-856b-005056c00008} device ramdisk=[boot]\sources\pe_x64.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
bcdedit /store %USBpath% /set {6a992a01-db5c-11e2-856b-005056c00008} osdevice ramdisk=[boot]\sources\pe_x64.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
Step 4 : 將Winpe 3.x86與x64的Image,分別放置於sources資料夾中,記得Image檔名一定要修改與上命令一樣的檔案,不然會對應不到開機檔案,放置好檔案後,即可放進USB或是做成DVD光碟開機。

經由上述四個步驟後,即可做出Winpe 3.0 x86與x64 2合1的開機檔,為了方便我將上述的部分簡化成一個Batch檔,操作如下,有興趣可以研究看看。
set USBpath=e:\boot\bcd

::Winpe開機選單中,預設的GUID
set dev={7619dcc8-fafe-11d9-b411-000476eba25f}

::加入WinPE 3.0 x86到開機選單中,並取回安裝GUID號碼
for /f "tokens=1-3 delims={}" %%i in ('bcdedit /store %USBpath% /copy {default} /d "WinPE 3.0 x86"') do set guidx86=%%j

::加入WinPE 3.0 x64到開機選單中,並取回安裝GUID號碼
for /f "tokens=1-3 delims={}" %%i in ('bcdedit /store %USBpath% /copy {default} /d "WinPE 3.0 x64"') do set guidx64=%%j

::設定winpe 3.0 x86檔案的對應路徑  guidx86 -> pe_x86.wim
bcdedit /store %USBpath% /set {%guidx86%} device ramdisk=[boot]\sources\pe_x86.wim,%dev%
bcdedit /store %USBpath% /set {%guidx86%} osdevice ramdisk=[boot]\sources\pe_x86.wim,%dev%

::設定winpe 3.0 x64檔案的對應路徑  guidx64 -> pe_x64.wim
bcdedit /store %USBpath% /set {%guidx64%} device ramdisk=[boot]\sources\pe_x64.wim,%dev%
bcdedit /store %USBpath% /set {%guidx64%} osdevice ramdisk=[boot]\sources\pe_x64.wim,%dev%

::設定開機逾時選擇時間 
bcdedit /store %USBpath% /timeout 20

::列舉目前BCD的內容
bcdedit /store e:\boot\bcd /enum all
開機畫面

沒有留言:

張貼留言