PE制作实录 —— 补充说明

上一篇博文中我提到了定制 PE 合盘的方法,可能还有一些朋友不是很懂,这里补充几点。

要点1: 菜单的排布

U盘启动时的界面,这里叫做主界面,而主界面下有时还会用到子界面,下面是我制作的PE的菜单目录:

     GRLDR//主菜单
          |
          | ———OP.LST//工具分类
          |              |
          |              |———FQ.LST//分区工具
          |              |                       |————————MENU.LST//返回主菜单
          |              |———HY.LST//备份工具
          |              |                       |————————MENU.LST//返回主菜单
          |               ———BIOS.LST//BIOS工具          
          |                                      |————————MENU.LST//返回主菜单
| ———ED.LST//更多选项 | |———US.LST//USB加速 | |————————MENU.LST//返回主菜单 ———MENU.LST//返回主菜单 |————————MENU.LST//返回主菜单

 看到这你大概就明白了,这里的菜单就像文件夹,一个夹着一个。

引导菜单文件(.LST)的命令是:

title ****这里是标题******
configfile ****这里是路径*****

比如下面的例子:

title [ - ] 更多选项  >>>
configfile (bd)/BOOT/GRUB/ED.LST

要点2:IMA、IMG工具的使用

IMA、IMG 格式文件放在 TOOLS 目录下(你也可以使用别的目录),使用如下命令引导:

title *****这里是标题****
map --mem *****这里是路径*****
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

比如下面的例子:

title [ 5 ] 安装 GHO 到硬盘第一分区
map --mem (bd)/TOOLS/XGHOST.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

常用的IMA、IMG工具

DISKGENIUS

GHOST

OKGHOST

矮人工具箱

迈思工具箱

深山红叶工具箱

PASSWORD

KONBOOT

PM 分区魔术师

MHDD 磁盘检测

CMOS密码清除

……

要点3  Fbinst Tool 的使用

上一篇博文是把怎么使用 FB 格式化U盘省略了,现在补上,看图说话。

FB文件的新建与编辑都是很人性化的,添加某个文件只需要拖动到窗口内就可以,FB可以编辑基于 TXT 的文档。(只要是记事本可以打开不乱码的都可以)

如果你是用记事本编辑的文档一定要保存为 UTF-8 的格式,这样才支持中文显示。

同样地,FB支持导出导入FBA文件,记得制作好的 PE 保存为FBA,下次就可以直接写入了。

要点4 常用的命令

上面是标准格式,下面是例子。

引导 ISO 格式文件:

title ***标题***
find --set-root ***路径***
map ***路径*** (0xff)
map --hook
chainloader (0xff)
title [ 2 ] 运行 强悍内置 WINDOWS 2003 PE
find --set-root /BOOT/03.ISO
map (ud)/BOOT/03.ISO (0xff)
map --hook
chainloader (0xff)

关机与重启:

title 重新启动
reboot

title 关机
halt

引导操作系统:

title ***标题***
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
calc *0x475&0xff-1 && calc *0x82b8 && map (hd0) ()
calc *0x475&0xff-1 && calc *0x82b8 && map () (hd0)
calc *0x475&0xff-1 && calc *0x82b8 || if exist (hd0,0)/grldr map (hd0) ()
calc *0x475&0xff-1 && calc *0x82b8 || if exist (hd0,0)/grldr map () (hd0)
calc *0x475&0xff-1 && calc *0x82b8 && calc *0x82b9=*0x82b9&0xffffff00|0x81 > nul
calc *0x475&0xff-1 && map --hook
if exist /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS || find --set-root --devices=h /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS
cat /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS | set wincd=
if "%wincd:~,4%"=="(pd)" echo -n  > /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS && map --mem %wincd% (0xff) && map --hook && set wincd=
if "%wincd:~,1%"=="/"  echo -n  > /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS || set wincd=
if exist wincd && if exist (0)%wincd% root (0) && map --mem (0)%wincd% (0xff) && map --hook && set wincd=
if exist wincd && if exist %wincd% || find --set-root --devices=uh %wincd%
if exist wincd && if exist %wincd% && map %wincd% (0xff) || map --mem %wincd% (0xff)
map --e820cycles=3
map --hook
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
chainloader ()+1 || chainloader /ntldr || chainloader /bootmgr
title [ 2 ] 引导此计算机上的 Windows 操作系统
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
calc *0x475&0xff-1 && calc *0x82b8 && map (hd0) ()
calc *0x475&0xff-1 && calc *0x82b8 && map () (hd0)
calc *0x475&0xff-1 && calc *0x82b8 || if exist (hd0,0)/grldr map (hd0) ()
calc *0x475&0xff-1 && calc *0x82b8 || if exist (hd0,0)/grldr map () (hd0)
calc *0x475&0xff-1 && calc *0x82b8 && calc *0x82b9=*0x82b9&0xffffff00|0x81 > nul
calc *0x475&0xff-1 && map --hook
if exist /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS || find --set-root --devices=h /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS
cat /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS | set wincd=
if "%wincd:~,4%"=="(pd)" echo -n  > /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS && map --mem %wincd% (0xff) && map --hook && set wincd=
if "%wincd:~,1%"=="/"  echo -n  > /WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS || set wincd=
if exist wincd && if exist (0)%wincd% root (0) && map --mem (0)%wincd% (0xff) && map --hook && set wincd=
if exist wincd && if exist %wincd% || find --set-root --devices=uh %wincd%
if exist wincd && if exist %wincd% && map %wincd% (0xff) || map --mem %wincd% (0xff)
map --e820cycles=3
map --hook
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
chainloader ()+1 || chainloader /ntldr || chainloader /bootmgr

图形化菜单(根据 Message 文件):

find --set-root (ud)/BOOT/GRUB/MESSAGE
timeout 30
default 0
gfxmenu (ud)/BOOT/GRUB/MESSAGE

参考:http://bbs.wuyou.com/forum.php?mod=viewthread&tid=170034


作者:rhinoc
来源:http://rhinoc.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者允许必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任权利。

原文地址:https://www.cnblogs.com/RhinoC/p/3721309.html