首页 > 代码库 > PE制作实录 ——— 补充说明

PE制作实录 ——— 补充说明

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

要点1 菜单的排布

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
GRLDR//主菜单
     |
     | ———OP.LST//工具分类
     |              |
     |              |———FQ.LST//分区工具
     |              |                       |————————MENU.LST//返回主菜单
     |              |———HY.LST//备份工具
     |              |                       |————————MENU.LST//返回主菜单
     |               ———BIOS.LST//BIOS工具         
     |                                      |————————MENU.LST//返回主菜单<br>          |
      ———ED.LST//更多选项
                    |
                    |———US.LST//USB加速
                    |                       |————————MENU.LST//返回主菜单
                     ———MENU.LST//返回主菜单
                                            |————————MENU.LST//返回主菜单

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

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

?
1
2
3
4
5
6
7
title ****这里是标题******
configfile ****这里是路径*****
 
比如下面的例子:
 
title [ - ] 更多选项  >>>
configfile (bd)/BOOT/GRUB/ED.LST

 

要点2 IMA、IMG工具的使用

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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