比较忙,无法一一回答网友的问题。抽空写一个添加PE启动引导菜单的教程,希望有所帮助。
根目录bootmgr引导BOOT目录中的BCD文件,启动选项菜单,进入WIN7安装或进入PE。当然启动所需的不仅只是这些,BOOT目录的其他文件也是需要的(见本文最后部分)。典型的光盘见WIN7 33IN1系列。 如果是UEFI的主板,是bootmgr.efi引导EFI中microsoft目录中的BCD文件。同样,EFI目录中的其他文件是不可缺的(部分字体文件可删除)。说明,WIN7的32位光盘中没有EFI目录及文件,如果想用,可以借助一下WIN8光盘。 所以,给WIN7光盘添加PE启动核心是编辑BCD文件。
二、使用BCDEDIT.EXE编辑BCD文件 BCDEDIT.EXE文件是WIN7系统自带的。XP下没有,WIN7 PE有没有要看PE制作者是否保留它。 下面开始实例操作。例子是给WIN7光盘添加双PE,32位PE3.0和64位PE3.0。 将WIN7光盘的BOOT目录提取到F盘(F盘为例)
1、在F盘建一个CMD为后缀的批处理文件。名称:A.cmd,内容如下,并执行。 set path=f:\boot\bcd 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
2、新建一个PEenum_all.cmd文件,内容如下: bcdedit /store F:\boot\bcd /enum all >bcd.txt pause
3、查看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位)各自所在的段落的标识符是不一样的。下面会用到它。你编辑时,这些标识符不一定跟例子中的一样,不要照复制我这里例子中的标识符。
4、再建一个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
三、准备启动语言文件MUI 假定你安装的是WIN7系统(简体中文),制作的光盘带PE菜单也要简体中文的,到C:\Windows\Boot\PCAT\zh-CN目录下复制bootmgr.exe.mui和memtest.exe.mui这两个文件到F:\boot\zh-cn目录下。如果你不介意使用英文菜单,本步骤可略过。
四、命名PE的WIM文件 根据上述BCD编辑的指令,64位PE的WIM文件必须命名为pe_x64.wim,32位PE的WIM文件必须命名为pe_x86.wim,这两个文件放在F:\boot目录下。
五、制作ISO 用ULTRAISO打开WIN7安装盘的ISO文件,将F:\BOOT目录替换进ISO文件的根目录。
六、其他 1、WIN8光盘带PE菜单做法类似。 2、EFI的菜单编辑做法类似。 3、如果仅是简体中文的光盘,boot目录中的fonts中的chs_boot.ttf、wgl4_boot.ttf要保留,其他的字体文件可删除。同样EFI目录下也有同样的字体文件可以删除的。boot目录内的其他文件不要随意删除。如,bootfix.bin缺失,将不会出现“按任意键启动DVD/CD”的提示,而是直接进入光盘(U盘)。 4、想了解bcdedit.exe的更多用法,命令提示符输入以下命令得到命令帮助。 bcdedit.exe /? 5、例子是添加双PE的,如果你只想添加一个PE,批处理中关于另一个PE的命令行去掉就可以了。
|
|