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的命令行去掉就能够了。