上一篇博文中我提到了定制 PE 合盘的方法,可能还有一些朋友不是很懂,这里补充几点。
要点1 菜单的排布
U盘启动时的界面,这里叫做主界面,而主界面下有时还会用到子界面,下面是我制作的PE的菜单目录:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
看到这你大概就明白了,这里的菜单就像文件夹,一个夹着一个。
引导菜单文件(.LST)的命令是:
?
1 2 3 4 5 6 7 |
|
要点2 IMA、IMG工具的使用
IMA、IMG 格式文件放在 TOOLS 目录下(你也可以使用别的目录),使用如下命令引导:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
GHOST
OKGHOST
矮人工具箱
深山红叶工具箱
KONBOOT
PM 分区魔术师
MHDD 磁盘检测
……
要点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 重新启动
reboottitle 关机
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