|
本帖最后由 zds1210 于 2013-6-9 23:31 编辑
因未来的uefi似乎并不能识别并引导ud区和U+深度隐藏区,但能识别和引导量产和u+区(普通和高端隐藏区)及B+隐藏区,故解决量产PE对u+B+隐藏区的支持,再增加对UEFI启动支持,是现在很有前途,相当热门的技术。 PE的最迷人之处,就是DIY。通过DIY,新人才能慢慢提高水平。
假期研究了一下U+和B+隐藏。穿发奇想,大部分量产版专用PE,并不支持U+和B+隐藏。就想让大家简单改造一下,让手中的量产专用PE,都能来玩U+和B+隐藏。这里指的量产PE,一般都为内核解开的;多引导一般为grub,其它引导请自行研究解决。
一、U+V2高端隐藏和B+隐藏原理
1.隐藏PE技术:详见帖子
http://zds1210.blog.163.com/blog/static/2448124820131432936820/
2.内核解开利与蔽:内核解开后,PE特别是NT5 PE对新型电脑特别是本本有超强的兼容性;但似乎不支持隐藏区zip部署,也不支持U+深度隐藏和UD部署。
二、让纯grub4dos多引导的的PE U+写入U盘隐藏区保留grub多引导
最初,纯grub多引导的内核解开的ISO 格式 nt5 PE,写入U+隐藏区中,就发现变成只支持PE启动的单引导。原来以为最新版的U+不支持纯grub多引导写入U盘;后来发现PE内核打包了,U+后纯grub多引导又出现。反复测试,才大概知道一点规律:原来, U+引导时,U+先搜索自家的easyboot引导,然后再搜索nt5 PE的引导文件setupldr.bin,最后才搜索其它引导文件如grub;NT5 PE内核解开后,U+先搜索到nt5 PE的引导文件setupldr.bin,所以就直接引导nt5 P E了,而不会出现grub多引导。
知道原因后,解决问题就来就简单了。解决方法有如下两方案。
a.U+时保留纯grub引导:把nt5 PE引导文件从setupldr.bin改名为ntb之类的,把grub主引导文件放在根目录下,文件名保留默认的grldr,让U+直接搜索到grldr,启动多引导。这样处理后,光盘版和U+版都可以实现纯grub多引导 。也可以在U+后用bootice强制在PE隐藏分区写入grub分区引导。
当然,也可以给PE(特别是xp和03PE)内核打包成iso来用grub进行map,但这样子兼容性会下降。
b.绕道easyboot引导:引入单引导的easyboot(保留引导时间一秒钟,菜单什么提示的全变为黑色不可见,一个菜单就引导grub主引导文件grldr)。这个方案可加快U+引导速度,增强U+隐藏时引导的兼容性。
同时,实测发现,在用mkisofs打包前,先用easyboot把eb引导文件如BOOTMENU.EZB打开并保存一次,再用mkisofs打包成纯grub引导的ISO——这时,光盘量产版引导为纯grub引导;U+后又变成easyboot+grub引导了。
三、怎么让PE识别U+和B+隐藏区
纯grub多引导U+技术解决后,接下为就是怎么把光盘版的ISO PE变成支持u+和B+隐藏的PE了?
全内置PE,一般不用考虑外置加载问题。外置外挂式PE,PE内核启动后,因PE并不认识U+和B+隐藏区,所以要特别处理。用showdirver等类似命令,虽可以显现隐藏区,但它是可读写的,安全性不佳,不推荐(最好关闭pecmd语句中的showdirver信命令,以免隐藏区可读写,影响隐藏区数据安全。硬盘上的隐藏区要显示方法很多)。用杏大的Hdload也可以建立隐藏区按需加载的快捷方式,但要固定隐藏区卷标,通用性不强。推荐大家用bootpart只读挂载B+隐藏区,又安全通用性又高。
说明白一点,就是在内核中加入bootpart(三文件,bootpart.exe、bootaprt.sys,64位pe加bootpt64.sys),然后把pecmd.ini调用外置winP.ini的脚本改用调用load.cmd脚本,EXEC =!%WinDir%\SYSTEM32\LOAD.CMd。再由load.cmd脚本智能调用winpe.in:PE内核启动后,如果可见区找得到外置配置文件winpe.ini,就用pecmd直接加载外置吧;找不到就用bootpart只读挂载U+或B+隐藏区,然后再加载外置。Load.cmd脚本如下,请大家慢慢改进:
@echo off
Rem 以下脚本由独剑制作,可以智能加载可见区及U+B+隐藏区外置;
Rem 在xp 03 win7 win8普通及极速PE中测试通过
Rem 加载03PE的配置文件名为win03PE.INI
for %%x in ( C D E F G H I J K L M N O P Q R S T U V W) DO if exist %%x:\TOOLS\win03PE.INI SET OPDrv=%%x:&goto cd
goto ULBI
rem 以下为部署到可见区,直接调用脚本
:cd
%WinDir%\SYSTEM32\pecmd.exe load %OPDrv%\TOOLS\win03PE.INI
goto end
rem 以下部署到U+B+隐藏区,用bootpart只读挂载隐藏区到T盘再来挂载外置
:ULBI
%windir%\system32\bootpart.exe -mount -readonly -driveletter T:
if not exist T:\TOOLS\win03PE.INI goto end2
%WinDir%\SYSTEM32\pecmd.exe load T:\TOOLS\win03PE.INI
goto end
:end2
%windir%\system32\bootpart.exe -eject
@echo on
exit
:end
@echo on
exit
有些朋友并不喜欢用cmd脚本,同时为了保持方案的通用性,这里提供pecmd脚本。也就是在在内核中加入bootpart(三文件,bootpart.exe、bootaprt.sys,64位pe加bootpt64.sys)后,大家把把pecmd.ini调用外置处(load winpe.ini),改成如下脚本就可以:
//试着用bootpart只读挂载U+和B+隐藏区到T盘
EXEC =!%windir%\system32\bootpart.exe -mount -readonly -driveletter T:
//如果T盘存在配置文件,则说明挂载成功直接加载T盘外置;如无配置文件,则取消挂载,用pecmd load搜索加载可见区外置。
IFEX T:\TOOLS\win03PE.INI,TEAM TEXT 载入UI和BI隐藏区外置|LOAD T:\TOOLS\win03PE.INI!TEAM TEXT 载入可见区外置| EXEC =!%windir%\system32\bootpart.exe -eject|load \TOOLS\win03PE.INI
grub引导文件改好,内核改好,,用mkisofs重新打包成PE纯grub多引导的iso文件,新PE就制作好了。
四、部署要点:
1.U+:推荐ultraiso部署到U+V2-hdd格式高端隐藏,不支持zip格式隐藏及深度隐藏;只支持zip的老机子可以U+Zip到可见区玩。
2.B+:推荐用bootice部署到usb-hdd隐藏区,并要把隐藏区激活,以免bootpart挂载不了隐藏盘。
这样子,就可以把论坛上大 部分流行的光盘量产版PE,变成支持U+V2高端隐藏和B+隐藏的PE了。请大家自己动手制作吧。
大家可以参考我的成品PE及部署要点:
作品一、我改的杏大PE量产版加U+B+功能,外置解开没有用wim整体打包
我的博客帖子:
http://zds1210.blog.163.com/blog/static/2448124820131412229428/
无忧帖子:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=272552&extra=page%3D1
作品二、我改的其它老大的作品,量产加U+B+,外置整体用wim打包(HPY大侠测试比较成功)
http://zds1210.blog.163.com/blog/static/2448124820132302332833/
制作好改进型量产PE后,你会发现,PE内核解开后,只支持U+V2-hdd格式高端隐藏,好像并不支持U+隐藏zip格式,也不支持U+深度隐藏。怎么让PE支持U+zip,支持U+深度隐藏,甚至支持UD呢?下次我们再来第二个diy案例吧,让一ISO PE支持刻录光盘量产UDU+深度和B+隐藏吧。。
|
|