1、WIN7光盤引導文件與目錄windows
根目錄bootmgr引導BOOT目錄中的BCD文件,啓動選項菜單,進入WIN7安裝或進入PE。固然啓動所需的不只只是這些,BOOT目錄的其餘文件也是須要的(見本文最後部分)。典型的光盤見WIN7 33IN1系列。ide
若是是UEFI的主板,是bootmgr.efi引導EFI中microsoft目錄中的BCD文件。一樣,EFI目錄中的其餘文件是不可缺的(部分字體文件可刪除)。說明,WIN7的32位光盤中沒有EFI目錄及文件,若是想用,能夠藉助一下WIN8光盤。字體
因此,給WIN7光盤添加PE啓動核心是編輯BCD文件。ui
2、使用BCDEDIT.EXE編輯BCD文件spa
BCDEDIT.EXE文件是WIN7系統自帶的。XP下沒有,WIN7 PE有沒有要看PE製做者是否保留它。命令行
下面開始實例操做。例子是給WIN7光盤添加雙PE,32位PE3.0和64位PE3.0。orm
將WIN7光盤的BOOT目錄提取到F盤(F盤爲例)ip
一、在F盤建一個CMD爲後綴的批處理文件。名稱:A.cmd,內容以下,並執行。cmd
set path=f:\boot\bcdit
bcdedit /store %path%
bcdedit /store %path% /timeout 20
bcdedit /store %path% /set {globalsettings} locale zh-cn
bcdedit /store %path% /set {bootloadersettings} locale zh-cn
bcdedit /store %path% /set {bootmgr} locale zh-cn
bcdedit /store %path% /set {default} locale zh-cn
bcdedit /store %path% /set {memdiag} locale zh-cn
bcdedit /store %path% /set {default} description "安裝 Windows 7"
bcdedit /store %path% /copy {default} /d "啓動 WinPE 3.0 (64位)"
bcdedit /store %path% /copy {default} /d "啓動 WinPE 3.0 (32位)"
PAUSE
二、新建一個PEenum_all.cmd文件,內容以下:
bcdedit /store F:\boot\bcd /enum all >bcd.txt
pause
三、查看F盤是否有一個BCD.TXT文件。這個文件的部份內容以下(藍色與綠色字細看一下):
Windows 啓動管理器
-------------------
標識符 {bootmgr}
description Windows Boot Manager
locale zh-cn
inherit {globalsettings}
default {default}
displayorder {default}
{18422457-4f48-11e2-a83a-003018a02f3b}
{1852d4cd-4f48-11e2-a83a-003018a02f3b}
toolsdisplayorder {memdiag}
timeout 20
Windows 啓動加載器
-------------------
標識符 {18422457-4f48-11e2-a83a-003018a02f3b} 注:這一串數據隨機產生的,你的不會跟例子同樣的。
device ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path \windows\system32\boot\winload.exe
description 啓動 WinPE 3.0 (64位)
locale zh-cn
inherit {bootloadersettings}
osdevice ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot \windows
detecthal Yes
winpe Yes
ems Yes
Windows 啓動加載器
-------------------
標識符 {1852d4cd-4f48-11e2-a83a-003018a02f3b}
device ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path \windows\system32\boot\winload.exe
description 啓動 WinPE 3.0 (32位)
locale zh-cn
inherit {bootloadersettings}
osdevice ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot \windows
detecthal Yes
winpe Yes
ems Yes
Windows 啓動加載器
-------------------
標識符 {default}
device ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path \windows\system32\boot\winload.exe
description 安裝 Windows 7
locale zh-cn
inherit {bootloadersettings}
osdevice ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot \windows
detecthal Yes
winpe Yes
ems Yes
注意一下,啓動 WinPE 3.0 (64位)和啓動 WinPE 3.0 (32位)各自所在的段落的標識符是不同的。下面會用到它。你編輯時,這些標識符不必定跟例子中的同樣,不要照複製我這裏例子中的標識符。
四、再建一個B.CMD文件,內容以下,並執行。注意,顏色藍色表示64位的,綠色表示32位的,好讓你們更容易理解。
set bcd_path=f:\boot\bcd
set dev={7619dcc8-fafe-11d9-b411-000476eba25f}
REM 下面2行是X64的,boot\pe_x64.wim表示將引導boot目錄下的pe_x64.wim文件。
REM {18422457-4f48-11e2-a83a-003018a02f3b} 就是標識符,要跟上述查看BCD文件時要一致。
bcdedit /store %bcd_path% /set {18422457-4f48-11e2-a83a-003018a02f3b} device ramdisk=[boot]\boot\pe_x64.wim,%dev%
bcdedit /store %bcd_path% /set {18422457-4f48-11e2-a83a-003018a02f3b} osdevice ramdisk=[boot]\boot\pe_x64.wim,%dev%
REM 下面2行是X86的,boot\pe_x86.wim表示將引導boot目錄下的pe_x86.wim文件。
bcdedit /store %bcd_path% /set {1852d4cd-4f48-11e2-a83a-003018a02f3b} device ramdisk=[boot]\boot\pe_x86.wim,%dev%
bcdedit /store %bcd_path% /set {1852d4cd-4f48-11e2-a83a-003018a02f3b} osdevice ramdisk=[boot]\boot\pe_x86.wim,%dev%
pause
3、準備啓動語言文件MUI
假定你安裝的是WIN7系統(簡體中文),製做的光盤帶PE菜單也要簡體中文的,到C:\Windows\Boot\PCAT\zh-CN目錄下複製bootmgr.exe.mui和memtest.exe.mui這兩個文件到F:\boot\zh-cn目錄下。若是你不介意使用英文菜單,本步驟可略過。
4、命名PE的WIM文件
根據上述BCD編輯的指令,64位PE的WIM文件必須命名爲pe_x64.wim,32位PE的WIM文件必須命名爲pe_x86.wim,這兩個文件放在F:\boot目錄下。
5、製做ISO
用ULTRAISO打開WIN7安裝盤的ISO文件,將F:\BOOT目錄替換進ISO文件的根目錄。
6、其餘
一、WIN8光盤帶PE菜單作法相似。
二、EFI的菜單編輯作法相似。
三、若是僅是簡體中文的光盤,boot目錄中的fonts中的chs_boot.ttf、wgl4_boot.ttf要保留,其餘的字體文件可刪除。一樣EFI目錄下也有一樣的字體文件能夠刪除的。boot目錄內的其餘文件不要隨意刪除。如,bootfix.bin缺失,將不會出現「按任意鍵啓動DVD/CD」的提示,而是直接進入光盤(U盤)。
四、想了解bcdedit.exe的更多用法,命令提示符輸入如下命令獲得命令幫助。
bcdedit.exe /?
五、例子是添加雙PE的,若是你只想添加一個PE,批處理中關於另外一個PE的命令行去掉就能夠了。