grub4dos 多PE合盘制作过程及几个菜单命令简介
2010-04-20 18:13
603 查看
引自:http://819671119.blog.163.com/blog/static/1284575522009824356820/
一、以天琴星座(lyra)·Build 20090226为例说明合盘的过程
1. 在硬盘中新建目录,从天琴星座的PE中复制下面文件到此目录,其中 SETUPLDR.BIN 不需要每次从不同的 PE 中复制,合成其他 PE 时只需要复制已修改过的一份,然后只修改其中关于WINNT.XPE路径的部分即可
2. 将WINNT.XPE改名为X,将WINPE.IS_改名为WINPE.IS_.rar,解压此文件到当前目录,得到WINPE.ISO,用UltraISO打开WINPE.ISO,提取WXPE文件夹到当前目录,最终当前目录如下
3. 修改SETUPLDR.BIN
此文件用什么名字无所谓,只要与menu.lst正确对应即可,类似的目录结构如果使用 #1 附件中的 SETUPLDR.BIN 进行修改,只需修改关于WINNT.XPE的部分即可
修改前后的对照(用UltraEdit打开文件SETUPLDR.BIN)
![](http://img617.ph.126.net/dxCWD_nHyM7IrtmBtcEdtQ==/1912059516797152149.jpg)
a)关于NTDETECT.COM的修改,可直接用UltraEdit修改
原PE中关于NTDETECT.COM的部分参考图“3e180h行修改前”(文件在wxpe目录下)
修改后关于NTDETECT.COM的部分参考图“3e180h行修改后”(文件在boot目录下)
合盘中将原来的 4 处修改了 3 处
我测试的结果是这样(按照以前别的帖子的说法,不同的机器可能会有不同的结果):
如果是U盘或移动硬盘只修改第一处就可以,而如果第一处不修改,其它修改了也没用
如果是光盘只修改最后一处的目录就可以(可以不修改文件名),同样如果最后一处不修改,其它修改了也没用
所以最好是按照hwd6的方法修改,即修改3处的方法(当然如果你的NTDETECT.COM放在不同的目录,如 I386,那就把3处 boot 改为 I386,注意最后一处原来多余的字节将光标放在十六进制代码处用 00 填充)
b)关于WINNT.XPE的修改
用UltraEdit打开SETUPLDR.BIN,用替换功能将 winnt.xpe 全部替换为 boot/ly/x ,注意选中“查找 ASCII”,若提示“9 个项目已替换”就是成功了(尽量与原文件名大小一致,保证 SETUPLDR.BIN 的大小不变,否则可能启动不成功),保存退出。
![](http://img617.ph.126.net/lo5cPirNEf_OQwweZ0SPZw==/1912059516797152167.jpg)
若是在这个修改过的 SETUPLDR.BIN 基础上继续修改为别的,如 mt/x ,那就这样
![](http://img617.ph.126.net/i5KpDkvW2g_KIVs2rFSi_g==/1912059516797152176.jpg)
4. 修改WINNT.XPE(文件名已改为X)
用文本编辑器打开文件X进行修改
修改前第3行为:
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=MiniPE/WinPE.IS_"
修改后为:
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=boot/ly/WinPE.IS_"
5. 修改PECMD.INI
用文本编辑器打开WXPE/SYSTEM32/PECMD.INI
将调用 WINPE.INI 的路径由 MiniPE 修改为 boot/ly(只在第30行有两处)
修改前
FIND $%MinMode%=Yes,LINK %Desktop%/加载外部配置,PECMD.EXE,LOAD /MiniPE/WinPE.INI,Shell32.dll#26!TEAM TEXT|LOAD /MiniPE/WinPE.INI
修改后
FIND $%MinMode%=Yes,LINK %Desktop%/加载外部配置,PECMD.EXE,LOAD /boot/ly/WinPE.INI,Shell32.dll#26!TEAM TEXT|LOAD /boot/ly/WinPE.INI
用 UltraISO 打开 WINPE.ISO ,用修改后的PECMD.INI替换WINPE.ISO中的WXPE/SYSTEM32目录下的PECMD.INI,保存
用老毛桃的cab打包工具将 WINPE.ISO 重新打包为 WINPE.IS_
a)将cab打包工具复制到当前目录,双击运行
b)选择“3”
c)输入需要压缩的文件所在路径“WINPE.ISO”
d)输入需要保存的压缩文件路径,直接回车
6. 修改WINPE.INI
用文本编辑器打开 WINPE.INI
将涉及到目录MiniPE的地方修改为 BOOT/LY(只在第2行有一处)
修改前为
MOUN %CurDrv%/MINIPE/OP.WIM,Y:,1
修改后为
MOUN %CurDrv%/BOOT/LY/OP.WIM,Y:,1
7. 将PE中外置程序 OP.WIM 复制到当前目录,删除中间文件WINPE.IS_.rar、WINPE.ISO 和目录 WXPE
最终当前目录下的文件为
![](http://bbs.wuyou.com/attachments/20090421_e9429bf03d2b64501242LSVSyL5nzWMr.jpg)
![](http://bbs.wuyou.com/images/default/attachimg.gif)
8. 修改 menu.lst,增加相应的启动项
如:
title [01] 天琴星座(lyra) Build 20090226
chainloader /BOOT/LY/SETUPLDR.BIN
9. 其他的PE类似添加
WINPE 中的路径不区分大小写,grub4dos在fat、fat32、ntfs分区中也不区分
详细目录清单,请参考#1下载
二、简单说明一下本合盘的grub4dos的menu中用到的几个命令(详情参考文件menu.lst):
find --set-root /BOOT/GRUB/HWDISK.ICO :查找第一个包含/BOOT/GRUB/HWDISK.ICO文件的分区,并将此分区设置为根分区,一般情况这个指令只要在菜单的开头指定即可
fontfile /BOOT/GRUB/FONTS :指定中文字体文件
splashimage /BOOT/GRUB/SPLASH.XPM.GZ :指定背景图片
background 008080 :指定背景色
timeout 60 :设置启动默认项前的等待时间,单位秒
default 0 :设置默认启动项的序号,菜单中第一项的序号为0
title [01] 天琴星座(lyra) Build 20090226 :设置菜单项的显示名称
map --mem /BOOT/IMGS/F6HD1.IMG (fd0) && map --hook :如果映射 fd0 成功,则执行 && 后面的 map --hook
chainloader /BOOT/LY/SETUPLDR.BIN :加载菜单对应的PE启动文件
map --mem /BOOT/IMGS/DOS98.IMG (fd0) :映射DOS引导文件为fd0(软盘)
map --hook :使上面的映射立即执行
chainloader (fd0)+1 :从fd0启动
rootnoverify (fd0) :指定fd0为根分区
configfile filename :调用另一个 grub4dos 菜单,其中 filename 为菜单文件名
grub4dos的指令有很多,功能也很强大,不过制作一个简单的启动盘上面的指令也就基本够用了
chainloader 加载扇区链式加载器,这个命令只读取其后空格分隔的第一段,也就是说如果后面有多个空格,则第二个空格后面的内容无效
chainloader 可以直接加载 MBR、DBR、ntldr(Windows NT/2000/XP/2003启动文件)、bootmgr(Vista启动文件)等
下面是其中几种用法的代码:
加载 MBR:
chainloader (hd0)+1 :此命令等同 chainloader (hd0)0x0+1,“+”前面的数字表示扇区起始位置如果是0可以省略,“+”号后面的数字表示加载的扇区数
这个命令意思是加载第一个硬盘从“0”开始的一个扇区,也就是硬盘的 MBR
加载 DBR:
chainloader (hd0,0)+1 :加载第一个硬盘第一个分区从“0”开始的一个扇区,也就是第一个分区的 DBR
加载 ntldr(grub4dos sample menu.lst):
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
此处若是 U 盘启动且 U 盘是以 NT 方式启动则选择此菜单可能依然是从 U 盘启动,可手动修改文件名 ntldr,如修改为 boot.ini 以正确启动硬盘上的系统
修改方法参考下面 F6 加载硬盘驱动的方法
加载 bootmgr(grub4dos sample menu.lst):
find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr
三、手动加载硬盘驱动的一种方法
下面只说明驱动程序与 PE 在一个分区的情况,不在同分区的情况略为复杂,以 #1 附件中的 menu.lst 为例
1. 选中一个 PE,如“天琴星座”,按 e 进入编辑菜单项模式
![](http://bbs.wuyou.com/attachments/20090526_34dda2c2d730e98916f5emNRdGvXcYaw.jpg)
![](http://bbs.wuyou.com/images/default/attachimg.gif)
2. 选中第一行,按 e 编辑当前行
![](http://bbs.wuyou.com/attachments/20090526_503ff169a305fb5fe41eB8AUSyKU4SEx.jpg)
![](http://bbs.wuyou.com/images/default/attachimg.gif)
3. 将 /BOOT/IMGS/F6HD1.IMG 修改为正确的驱动映像路径及文件名,如 /BOOT/IMGS/F6HD.IMG,回车结束编辑
![](http://bbs.wuyou.com/attachments/20090526_c34d7d046aeb8c6490bczRL9ls6aRDIY.jpg)
![](http://bbs.wuyou.com/images/default/attachimg.gif)
4. 按 b 启动,即可将 /BOOT/IMGS/F6HD.IMG 映射为软驱 A,PE 提示时即可按 F6 加载硬盘驱动
一、以天琴星座(lyra)·Build 20090226为例说明合盘的过程
1. 在硬盘中新建目录,从天琴星座的PE中复制下面文件到此目录,其中 SETUPLDR.BIN 不需要每次从不同的 PE 中复制,合成其他 PE 时只需要复制已修改过的一份,然后只修改其中关于WINNT.XPE路径的部分即可
2. 将WINNT.XPE改名为X,将WINPE.IS_改名为WINPE.IS_.rar,解压此文件到当前目录,得到WINPE.ISO,用UltraISO打开WINPE.ISO,提取WXPE文件夹到当前目录,最终当前目录如下
3. 修改SETUPLDR.BIN
此文件用什么名字无所谓,只要与menu.lst正确对应即可,类似的目录结构如果使用 #1 附件中的 SETUPLDR.BIN 进行修改,只需修改关于WINNT.XPE的部分即可
修改前后的对照(用UltraEdit打开文件SETUPLDR.BIN)
![](http://img617.ph.126.net/dxCWD_nHyM7IrtmBtcEdtQ==/1912059516797152149.jpg)
a)关于NTDETECT.COM的修改,可直接用UltraEdit修改
原PE中关于NTDETECT.COM的部分参考图“3e180h行修改前”(文件在wxpe目录下)
修改后关于NTDETECT.COM的部分参考图“3e180h行修改后”(文件在boot目录下)
合盘中将原来的 4 处修改了 3 处
我测试的结果是这样(按照以前别的帖子的说法,不同的机器可能会有不同的结果):
如果是U盘或移动硬盘只修改第一处就可以,而如果第一处不修改,其它修改了也没用
如果是光盘只修改最后一处的目录就可以(可以不修改文件名),同样如果最后一处不修改,其它修改了也没用
所以最好是按照hwd6的方法修改,即修改3处的方法(当然如果你的NTDETECT.COM放在不同的目录,如 I386,那就把3处 boot 改为 I386,注意最后一处原来多余的字节将光标放在十六进制代码处用 00 填充)
b)关于WINNT.XPE的修改
用UltraEdit打开SETUPLDR.BIN,用替换功能将 winnt.xpe 全部替换为 boot/ly/x ,注意选中“查找 ASCII”,若提示“9 个项目已替换”就是成功了(尽量与原文件名大小一致,保证 SETUPLDR.BIN 的大小不变,否则可能启动不成功),保存退出。
![](http://img617.ph.126.net/lo5cPirNEf_OQwweZ0SPZw==/1912059516797152167.jpg)
若是在这个修改过的 SETUPLDR.BIN 基础上继续修改为别的,如 mt/x ,那就这样
![](http://img617.ph.126.net/i5KpDkvW2g_KIVs2rFSi_g==/1912059516797152176.jpg)
4. 修改WINNT.XPE(文件名已改为X)
用文本编辑器打开文件X进行修改
修改前第3行为:
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=MiniPE/WinPE.IS_"
修改后为:
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=boot/ly/WinPE.IS_"
5. 修改PECMD.INI
用文本编辑器打开WXPE/SYSTEM32/PECMD.INI
将调用 WINPE.INI 的路径由 MiniPE 修改为 boot/ly(只在第30行有两处)
修改前
FIND $%MinMode%=Yes,LINK %Desktop%/加载外部配置,PECMD.EXE,LOAD /MiniPE/WinPE.INI,Shell32.dll#26!TEAM TEXT|LOAD /MiniPE/WinPE.INI
修改后
FIND $%MinMode%=Yes,LINK %Desktop%/加载外部配置,PECMD.EXE,LOAD /boot/ly/WinPE.INI,Shell32.dll#26!TEAM TEXT|LOAD /boot/ly/WinPE.INI
用 UltraISO 打开 WINPE.ISO ,用修改后的PECMD.INI替换WINPE.ISO中的WXPE/SYSTEM32目录下的PECMD.INI,保存
用老毛桃的cab打包工具将 WINPE.ISO 重新打包为 WINPE.IS_
a)将cab打包工具复制到当前目录,双击运行
b)选择“3”
c)输入需要压缩的文件所在路径“WINPE.ISO”
d)输入需要保存的压缩文件路径,直接回车
6. 修改WINPE.INI
用文本编辑器打开 WINPE.INI
将涉及到目录MiniPE的地方修改为 BOOT/LY(只在第2行有一处)
修改前为
MOUN %CurDrv%/MINIPE/OP.WIM,Y:,1
修改后为
MOUN %CurDrv%/BOOT/LY/OP.WIM,Y:,1
7. 将PE中外置程序 OP.WIM 复制到当前目录,删除中间文件WINPE.IS_.rar、WINPE.ISO 和目录 WXPE
最终当前目录下的文件为
![](http://bbs.wuyou.com/attachments/20090421_e9429bf03d2b64501242LSVSyL5nzWMr.jpg)
![](http://bbs.wuyou.com/images/default/attachimg.gif)
8. 修改 menu.lst,增加相应的启动项
如:
title [01] 天琴星座(lyra) Build 20090226
chainloader /BOOT/LY/SETUPLDR.BIN
9. 其他的PE类似添加
WINPE 中的路径不区分大小写,grub4dos在fat、fat32、ntfs分区中也不区分
详细目录清单,请参考#1下载
二、简单说明一下本合盘的grub4dos的menu中用到的几个命令(详情参考文件menu.lst):
find --set-root /BOOT/GRUB/HWDISK.ICO :查找第一个包含/BOOT/GRUB/HWDISK.ICO文件的分区,并将此分区设置为根分区,一般情况这个指令只要在菜单的开头指定即可
fontfile /BOOT/GRUB/FONTS :指定中文字体文件
splashimage /BOOT/GRUB/SPLASH.XPM.GZ :指定背景图片
background 008080 :指定背景色
timeout 60 :设置启动默认项前的等待时间,单位秒
default 0 :设置默认启动项的序号,菜单中第一项的序号为0
title [01] 天琴星座(lyra) Build 20090226 :设置菜单项的显示名称
map --mem /BOOT/IMGS/F6HD1.IMG (fd0) && map --hook :如果映射 fd0 成功,则执行 && 后面的 map --hook
chainloader /BOOT/LY/SETUPLDR.BIN :加载菜单对应的PE启动文件
map --mem /BOOT/IMGS/DOS98.IMG (fd0) :映射DOS引导文件为fd0(软盘)
map --hook :使上面的映射立即执行
chainloader (fd0)+1 :从fd0启动
rootnoverify (fd0) :指定fd0为根分区
configfile filename :调用另一个 grub4dos 菜单,其中 filename 为菜单文件名
grub4dos的指令有很多,功能也很强大,不过制作一个简单的启动盘上面的指令也就基本够用了
chainloader 加载扇区链式加载器,这个命令只读取其后空格分隔的第一段,也就是说如果后面有多个空格,则第二个空格后面的内容无效
chainloader 可以直接加载 MBR、DBR、ntldr(Windows NT/2000/XP/2003启动文件)、bootmgr(Vista启动文件)等
下面是其中几种用法的代码:
加载 MBR:
chainloader (hd0)+1 :此命令等同 chainloader (hd0)0x0+1,“+”前面的数字表示扇区起始位置如果是0可以省略,“+”号后面的数字表示加载的扇区数
这个命令意思是加载第一个硬盘从“0”开始的一个扇区,也就是硬盘的 MBR
加载 DBR:
chainloader (hd0,0)+1 :加载第一个硬盘第一个分区从“0”开始的一个扇区,也就是第一个分区的 DBR
加载 ntldr(grub4dos sample menu.lst):
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
此处若是 U 盘启动且 U 盘是以 NT 方式启动则选择此菜单可能依然是从 U 盘启动,可手动修改文件名 ntldr,如修改为 boot.ini 以正确启动硬盘上的系统
修改方法参考下面 F6 加载硬盘驱动的方法
加载 bootmgr(grub4dos sample menu.lst):
find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr
三、手动加载硬盘驱动的一种方法
下面只说明驱动程序与 PE 在一个分区的情况,不在同分区的情况略为复杂,以 #1 附件中的 menu.lst 为例
1. 选中一个 PE,如“天琴星座”,按 e 进入编辑菜单项模式
![](http://bbs.wuyou.com/attachments/20090526_34dda2c2d730e98916f5emNRdGvXcYaw.jpg)
![](http://bbs.wuyou.com/images/default/attachimg.gif)
2. 选中第一行,按 e 编辑当前行
![](http://bbs.wuyou.com/attachments/20090526_503ff169a305fb5fe41eB8AUSyKU4SEx.jpg)
![](http://bbs.wuyou.com/images/default/attachimg.gif)
3. 将 /BOOT/IMGS/F6HD1.IMG 修改为正确的驱动映像路径及文件名,如 /BOOT/IMGS/F6HD.IMG,回车结束编辑
![](http://bbs.wuyou.com/attachments/20090526_c34d7d046aeb8c6490bczRL9ls6aRDIY.jpg)
![](http://bbs.wuyou.com/images/default/attachimg.gif)
4. 按 b 启动,即可将 /BOOT/IMGS/F6HD.IMG 映射为软驱 A,PE 提示时即可按 F6 加载硬盘驱动
![](http://bbs.wuyou.com/attachments/20090526_234e4dc5d71cc4bd1dc9tqpEXJzulkFv.jpg)
相关文章推荐
- Linux入门——目录结构、Shell和几个常用命令的简介
- RTSP交互命令简介及过程参数描述
- Squid 安装调试过程中的几个常用命令
- 通过几个简单的Linux命令,深入理解c语言编译的过程
- “逐语句”、“逐过程”、“跳出”命令 (“调试”菜单)的使用
- squid 安装调试过程中的几个常用命令
- squid 安装调试过程中的几个常用命令
- rtsp交互命令简介及过程参数描述
- PE启动菜单修改工具 MsgDiyer(GfxMenu Message制作工具) V2.0.3官方版
- squid 安装调试过程中的几个常用命令
- GRUB4DOS磁盘仿真命令简介(map用法)
- 4.6 使用倾斜菜单命令制作阴影 [Illustrator CC教程]
- RTSP交互命令简介及过程参数描述
- linux环境变量设置 以及 source命令 Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程 Linux 设置环境变量
- Vuforia 制作AR识别类项目过程简介
- squid 安装调试过程中的几个常用命令
- RTSP交互命令简介及过程参数描述
- rtsp交互命令简介及过程参数描述
- 使用switch制作Powershell命令菜单
- 几个java命令打包过程