无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7092|回复: 24
打印 上一主题 下一主题

改造“网虫2008”PE-此类ISO PE不解包放入U盘运行方法

[复制链接]
跳转到指定楼层
1#
发表于 2011-1-4 20:26:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
花了几天时间,终于把PE1.X干掉了,一阵挑,选中了网虫的PE元旦版,做的很不错。

说明上建议是用量产U盘,当然也可以解包安装到硬盘或U盘,看着硬盘根目录多出的WC2008\W888\SRS\SRS_F6目录真是不爽,改造之。

原理和方法都简单,但试验成功却是不容易的,期间辛苦的测试就不多说了。

U盘启动PE使用
map xx/xx/xx.iso (hd32)
map --hook
chainloader (hd32) +1
方法

原理,PECMD.INI运行时使用虚拟光驱加载网虫PE(xx.iso),这样就不存在PE内核启动后找不到外置程序的问题了。

方法:将WC2008中的W7RE.WIM解包,修改WINDOWS\SYSTEM32目录下的PECMD.INI

在最后面这一行:
LOAD %WinDir%\W8.INI
的前面,加:

//寻找U盘WIN7PE.ISO,如有就加载到Z盘
FORX !\dat~1\utool\WIN7PE.ISO,WIN7FILE,1,TEAM TEXT 发现dat~1\utool\WIN7PE.ISO文件,正在加载……|EXEC !=%WinDir%\SYSTEM32\imdisk.exe -a -m z: -f %WIN7FILE%|WAIT 2000

其中\dat~1\utool\WIN7PE.ISO,为PE所在的路径名称,请自行修改。
因为网虫PE里有IMDISK,所以可以直接利用上。

(我原先是用ISOCMD加载的,就两个文件,也非常的简单,见下面:
`设置虚拟光驱
TEAM EXEC =!%WS%\ISOCMD.EXE -number 1|EXEC =!%WS%\ISOCMD.EXE -i
`寻找U盘REDLEAF.ISO,如有就加载
FORX !\dat~1\utool\REDLEAF.ISO,REDLEAF,1,TEAM TEXT 发现dat~1\utool\REDLEAF.ISO文件,正在加载……|WAIT 2000|EXEC =!%WS%\ISOCMD.EXE -mount 0: %REDLEAF%|ENVI LOADED=SUCESS
FIND $%LOADED%=SUCESS,TEAM TEXT 3 秒钟内按住 Ctrl 键可进入最小配置模式……#0xEE,L20,T560,R500,B580 $20|WAIT 3000!TEXT U盘不存在dat~1\utool\REDLEAF.ISO文件,正在加载最小配置模式……
。)

同理,要修改IMGPE.IM_,用RAR解包,再解包WINPE.IMG,修改WXPE\SYSTEM32下的PECMD.INI,修改方法同上。
但要注意,需要在WXPE\SYSTEM32目录里放一个IMDISK.EXE(这个03版本竟然没有)

额外说明:
网虫PE里用到了本人做的盘符调整的批处理,这里提个醒,对于WIN7 PE,盘符都是自动调整好的,这个批处理没有必要运行;对于03 PE,如果运行要小心,即在没有设定虚拟内存时可用,如果设定PAGEFILE,因为盘符调整路径可能会出问题。这个批处理最好是在PECMD.INI中最先运行(之后是运行IMDISK虚拟光驱),方法可以参见红叶最新PE中的PECMD.INI中的用法。
我还是贴出来吧:

EXEC =!%WinDir%\SYSTEM32\ORDERDRV.CMD
EXEC =!%WinDir%\SYSTEM32\SHOWDRIVE.EXE
TEAM WAIT 2000|KILL MBRFIX.EXE|KILL MOUNTVOL.EXE
TEAM FILE %WS%\ORDERDRV.CMD|FILE %WS%\MBRFIX.EXE|FILE %WS%\MOUNTVOL.EXE

就说这些吧。


[ 本帖最后由 victor888 于 2011-1-5 13:12 编辑 ]
25#
发表于 2011-2-22 20:36:54 | 只看该作者
学习啦。慢慢研究一下。
回复

使用道具 举报

24#
发表于 2011-2-19 18:12:53 | 只看该作者

回复 #22 81129950 的帖子

以前没有用过Win7PE,想找一个对硬件要求不太高、体积不太大,功能相对又较全的WIN7 PE,下载了论坛中体积在300M以下的几个WIN7PE,我发现用ISO文件引导在虚拟机中测试都很好,但我只要解开放入硬盘或优盘中,都加载不上外置程序,原来也以为是msvbvm60.dll问题,将这个文件打包到内核仍然不行。回来干脆用grub仿真引导未作任何改动的原ISO镜像,仍然是不能加载外置程序,真是奇怪得很,看来Win7 PE加载不上外置是个较普遍的现象。

经过几次对比,我发现一个规律:凡是将内核与外置打为一个WIM包的(有可能wim嵌套),都能顺利加载外置,而将内核与外置分别打包的很可能出现不能挂载外置。

现在你的这个全内置版WIN7PE是我个人最满意的一个,反馈点情况共网虫大大参考!
回复

使用道具 举报

23#
发表于 2011-2-19 17:57:35 | 只看该作者
原帖由 81129950 于 2011-2-19 14:46 发表
网虫大侠你好,我用你的PE0217最新的那个ISO,用grub4dos整体MAP启动03与win7PE没有外置程序,看来是否是你没有做过此类测试?


win7peS要重新提取PXE全内置支持版,,,

03PE可以使用任何版本,,但 必须使用 -mem 参数,不能单独使用 map,例如:

title Start From  MYISO.ISO
map --mem /WC2008/MYISO.ISO (0xff) || find --set-root /WC2008/MYISO.ISO && map --mem /WC2008/MYISO.ISO (0xff)
map --hook
chainloader (0xff)
回复

使用道具 举报

22#
发表于 2011-2-19 14:46:25 | 只看该作者
网虫大侠你好,我用你的PE0217最新的那个ISO,用grub4dos整体MAP启动03与win7PE没有外置程序,看来是否是你没有做过此类测试?
回复

使用道具 举报

21#
发表于 2011-2-19 14:43:04 | 只看该作者
原帖由 NicTense 于 2011-2-19 14:29 发表

连续存储的意思就是在磁盘上,这个文件的存储空间是不是按顺序连着的,如果被切成几段放在不同的位置的话,就只能-mem了
...


那我也无法判是否“连续”了,,,,看来-mem 稳当些,,03PE的内核不大,-mem 也不会拖慢很大的速度,,,除了测试着玩儿,用到WIN7PE的电脑,配置也不会差到哪儿去,,加载也就是一闪的事儿了
回复

使用道具 举报

20#
发表于 2011-2-19 14:39:11 | 只看该作者
原帖由 2010yg 于 2011-2-19 14:18 发表

这样,在U盘启动后再加载ISO,感觉引导过程特慢?


一般,用我的“完整版”进行-mem 操作的,,99%都是拿来玩玩儿,测试一下就扔到一边了,,不会真正的去应用,,,我的有限时间也就不研究这个特殊的“偶尔玩玩儿了”,真正把我的PE用到日常中的,,都是在完整版下用PE自带的安装提取工具进行各种类型的安装和提取,,那也就不会出现上述状况。

这也是全内置和外置内核和冲突和取舍,,各有所长,无法兼得的
回复

使用道具 举报

19#
发表于 2011-2-19 14:38:42 | 只看该作者
原帖由 网虫2008 于 2011-2-19 14:15 发表


hd32不行,尝试用oxff
如果这样,,那我就不改动了,免得又改出新的BUG,而且这样网启和光盘启动也都通用,省得判断了,


ISO 连续储存是啥意思呀?

整理一下文件的碎片应该就好了 我用的Defraggler

[ 本帖最后由 tzxy 于 2011-2-19 14:41 编辑 ]
回复

使用道具 举报

18#
发表于 2011-2-19 14:33:28 | 只看该作者
原帖由 网虫2008 于 2011-2-19 14:15 发表

ISO 连续储存是啥意思呀?


PE ISO文件 在U盘,移动硬盘没有碎片。

我都是用Auslogics Disk Defrag 整理的。

回复

使用道具 举报

17#
发表于 2011-2-19 14:29:57 | 只看该作者
原帖由 网虫2008 于 2011-2-19 14:15 发表


hd32不行,尝试用oxff
如果这样,,那我就不改动了,免得又改出新的BUG,而且这样网启和光盘启动也都通用,省得判断了,


ISO 连续储存是啥意思呀?


grub里 0xa0-0xff 理论上都是指光盘,一般习惯是从第一个用起,就是 0xa0,0xa1这样子,对应 hd32,hd33
我没试过hd32不行而0xff可以的情况,0xff也就是 hd127 ,这个在什么情况下有区别,得问不点,chenall他们了

连续存储的意思就是在磁盘上,这个文件的存储空间是不是按顺序连着的,如果被切成几段放在不同的位置的话,就只能-mem了

[ 本帖最后由 NicTense 于 2011-2-19 14:31 编辑 ]
回复

使用道具 举报

16#
发表于 2011-2-19 14:18:48 | 只看该作者
原帖由 网虫2008 于 2011-2-19 12:19 发表
呵呵,,你发这个帖子的那段时间我也不知道在忙什么,,竟然没有看到。

03PE里没有内置imdisk..exe,是因为内置了firadisk.sys,所以-MEM ISO 时,启动过程中可以看到虚拟ISO,不会存在加载不到外置的问题 ...

这样,在U盘启动后再加载ISO,感觉引导过程特慢?
回复

使用道具 举报

15#
发表于 2011-2-19 14:15:19 | 只看该作者
原帖由 NicTense 于 2011-2-19 13:00 发表
(hd32) 等于 (0xa0)
和0xff都是指光驱设备,好像没什么本质的区别,grub的readme说的是如果 hd32不行,尝试用oxff

+1是指第一扇区
所以

chainloader (0xff) 是指整盘启动

chainloader (hd32)+1 是指 ...


hd32不行,尝试用oxff
如果这样,,那我就不改动了,免得又改出新的BUG,而且这样网启和光盘启动也都通用,省得判断了,


ISO 连续储存是啥意思呀?
回复

使用道具 举报

14#
发表于 2011-2-19 13:01:03 | 只看该作者
不加 -mem 参数不行的话,应该是你的iso文件不是连续存储的
回复

使用道具 举报

13#
发表于 2011-2-19 13:00:31 | 只看该作者

回复 #16 网虫2008 的帖子

(hd32) 等于 (0xa0)
和0xff都是指光驱设备,好像没什么本质的区别,grub的readme说的是如果 hd32不行,尝试用oxff

+1是指第一扇区
所以

chainloader (0xff) 是指整盘启动

chainloader (hd32)+1 是指定第一扇区为启动扇区

不过在这里,结果是一样的
回复

使用道具 举报

12#
发表于 2011-2-19 12:19:53 | 只看该作者
呵呵,,你发这个帖子的那段时间我也不知道在忙什么,,竟然没有看到。

03PE里没有内置imdisk..exe,是因为内置了firadisk.sys,所以-MEM ISO 时,启动过程中可以看到虚拟ISO,不会存在加载不到外置的问题。

关于WIN7PE不提取PXE全内置版,用你这个方法加载最合适不过了,,一会我把你的帖子链接加到我的首页说明中。

谢谢!


另,我的加载ISO参数是
map --mem /PXE_2003PE.ISO (0xff) || find --set-root --ignore-floppies /PXE_2003PE.ISO && map --mem /PXE_2003PE.ISO (0xff)
map --hook
chainloader
(0xff)

我对GRUB4DOS不太熟悉,能否问一下,这和你的 (hd32) 参数的区别在哪里,用 (hd32) 通用于加载所有介质(光盘、硬盘、U盘)的ISO文件吗?
map xx/xx/xx.iso (hd32)
map --hook
chainloader
(hd32) +1


刚才在虚拟机上大概测试了一下,用 (hd32) 可以,,但是不加 -mem 参数,网络启不了,直接跳到 GRUB4DOS命令窗口

[ 本帖最后由 网虫2008 于 2011-2-19 12:39 编辑 ]
回复

使用道具 举报

11#
发表于 2011-1-6 17:52:41 | 只看该作者
支持一下,再研究。
回复

使用道具 举报

10#
发表于 2011-1-5 18:44:08 | 只看该作者
我在把整个ISO用GRUB4DOS中的外部命令RUN VENU自动列菜单调用
回复

使用道具 举报

9#
 楼主| 发表于 2011-1-5 15:47:31 | 只看该作者
我说的已经是精髓了,不想再多说了,不想当菜鸟,就自己动手研究吧。
回复

使用道具 举报

8#
发表于 2011-1-5 14:29:56 | 只看该作者
说得太少 最后一句可以修改掉
回复

使用道具 举报

7#
发表于 2011-1-5 12:39:50 | 只看该作者
n年前MicroPE、0PE就支持这种方式。迄今支持的仍不多。

在grub4dos官方下载中,有menu.lst样例文件,其菜单项就包含这个意思:

title find and boot 0PE.ISO
fallback 5
find --set-root /0PE/0PE.ISO
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2
title find and boot MicroPE.ISO
fallback 6
find --set-root /boot/MicroPE.ISO
map /boot/MicroPE.ISO (0xff) || map --mem /boot/MicroPE.ISO (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2
回复

使用道具 举报

6#
发表于 2011-1-5 09:17:03 | 只看该作者
想法很好!但介绍具体例子制作方法!
回复

使用道具 举报

5#
发表于 2011-1-5 09:08:53 | 只看该作者
原来是用虚拟光驱加载iso,然后加载外置程序!不知道能不能再稍加改造,加入wimtool,外置用wimtool处理,双击挂接自动运行,结束自动卸载删除目录!
回复

使用道具 举报

4#
 楼主| 发表于 2011-1-4 23:09:13 | 只看该作者
我说的PE是指内核和外置程序都在一个ISO中的PE,而不是指内核是ISO,而外置程序在U盘中的情况。

通过MAP ISO的方式启动的PE,启动后会因为进入保护模式而找不到ISO中的外置程序,从而导致不能完整启动。解决办法包括使用FIRADISK驱动,或使用这里说的虚拟光驱方式。

注意:这里不是指USB CDROM。
回复

使用道具 举报

3#
发表于 2011-1-4 22:42:33 | 只看该作者
pe一直是用iso格式在u盘启动,不明白楼主的意思
回复

使用道具 举报

2#
发表于 2011-1-4 22:27:49 | 只看该作者
支持了,使用起来还真得费周折,有空慢慢学习、
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-1 00:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表