无忧启动论坛

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

Native 07PE 山寨终极指南!2012-05-226更新问答!

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-21 11:49:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前言:为方便各位兄弟朋友DIY NATIVE WIN7PE,特整理下本人研究WIN7PE一级内核的时候遇到的问题,以及解决方案。顺便做个NATTIVE的扫盲贴吧。

1、Q: 什么是NATIVE WIN7PE ?
     A:(1)参见这两个帖子: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=202483&extra=page%3D1  和 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=188616
        (2)简单的说,PE的启动速度主要取决于载入内存的速度,当然这个因素包含很多。足迹大大提出另外一种变通的做法,就是在native阶段加载usb2.0或者usb3.0驱动,然后挂在U盘上的二级内核,然后继续运行二级内核中的程序。
        (3)其实基本上每个人都见过native阶段,还记得每次开机的磁盘扫描和开机前病毒查杀吗?哪个模式就是native模式。

2、Q:为什么是NATIVE WIN7PE ,对我有什么好处?
     A:选择传统WIN7PE或专业NATIVE WIN7PE完全取决于您的爱好。但是NATIVE WIN7PE 更适合U盘使用,更快的加载速度,更低的内存占用。甚至128M内存都可以启动WIN7PE,这是传统WIN7PE办不到的事情。最重要的是,使用native win7pe,您的二级内核可以做的很大很大,而不变担心bootmgr的1g wim载入限制。

3、Q:  部署NATIVE WIN7PE 有什么特殊的要求吗?
     A:一级内核和二级内核可以放到一个ISO内,适合量产。也可以一级和二级分离使用不同的map 组合方式,灵活方便。如果使用grldr引导的话,例如ud区的使用,请参见范例或者g4d帮助:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=185938&extra=page%3D1

4、Q: Native WIN7PE 比 NATIVE 03/XP PE有什么优点?
     A: 最大的优点想必就是不需要频繁的更新AHCI驱动去支持未来的磁盘控制器了吧。其次就是遇到双显卡的笔记本不会蓝屏。

5、Q:如何实现win7sp1 加载winvblock的驱动 识别 g4d 仿真的ISO ?
     A:主要是wvblck32.sys 、cdrom.sys 、usbstor.sys 三个驱动服务的加载顺序。以下两种方式均可成功:
         (1)wvblck32.sys  --> usbstor.sys ---> cdrom.sys
         (2)usbstor.sys  --> wvblck32.sys  --> cdrom.sys

6、Q:winvblock 在win7下识别g4d仿真的流程?
     A: 要搞清楚这个问题,主要的明白winvblock这个驱动的用途,winvblock的作用仅仅是在init15保留区域中寻找g4d仿真的ISO的起始地址,然后将该段数据模拟成ISO,然后调用cdrom.sys装载该ISO。因此cdrom.sys必须在winvblock之后加载。如果加载了cdrom.sys,而usbstor.sys没有装载,则winvblock仅仅是在Init15区域发现了仿真光驱,但是未能将数据载入该虚拟光驱,所以进入win7后,只能看到仿真的光驱,而看不到光驱中的内容。

7、Q:为什么win7加载winvblock驱动服务后不支持g4d的map,而支持map --mem?
     A:因为map仅仅是在Init15中保留了iso的起始地址。winvblock依据该地址去查找指定设备。当cdrom.sys载入的时候如果没找到,就是空光驱。map --mem 则是直接在内存中,所以cdrom.sys载入的时候,肯定有内容。

8、Q:为什么WIN7PE 加载winvblock驱动服务后,即使ISO放在本地硬盘上,也不支持g4d的直接map?
     A:因为很不幸的是,微软的WIN7RE默认是由光盘启动加载的。所以压根就没考虑USB启动的问题,微软的CDROM.SYS默认启动值是0,也就是最早加载的,这个时候磁盘驱动还未加载,所以不支持。又很不幸的是,论坛所有大大的PE都是沿用这个值。。。。。实际上将这个值改为1即可。

9、Q:关于服务的start的值有官方的解释吗?
     A:dwStartType 服务启动选项。此参数可以是下列值之一:

  
含义
SERVICE_AUTO_START
0x00000002
系统启动时由服务控制管理器自动启动该服务程序。
查询Automatically Starting Services以获取更多信息。
SERVICE_BOOT_START
0x00000000
用于由系统加载器创建的设备驱动程序。
只能用于驱动服务程序。
SERVICE_DEMAND_START
0x00000003
用于当有进程调用StartService 函数时由服务控制管理器(SCM)启动的服务。
查询Starting Services on Demand以获取更多信息。
SERVICE_DISABLED
0x00000004
表示该服务不可启动。
尝试启动该服务将产生一个ERROR_SERVICE_DISABLED错误。
SERVICE_SYSTEM_START
0x00000001
用于由IoInitSystem 函数创建的设备驱动程序。
只能用于驱动服务程序。

详细的介绍看百度文科说的吧:http://baike.baidu.com/view/3668144.htm

10、Q:能详细解释下win7 的usb启动机制吗?
    A:抱歉,这个只有微软才能解释。不过不妨让我猜上一猜。关于dwStartType的值大家有所了解了。而事实上可能未必如我们想像的那样,start的值为3的时候就必须手动启动。
       微软在win7上添加了两个值:
  1. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control
  2. BootDriverFlags=0
  3. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\PnP
  4. PollBootPartitionTimeout=0
复制代码
BootDriverFlags=4的时候表示由USB设备启动,PollBootPartitionTimeout的值表示轮询启动分区的超时设置。
这两个值在XP和03是没有的,WIN7特有的值。这两个值到底是干什么用的?微软的官方文档以及帮助中并没有提到这两个值。我猜是这样的:
BootDriverFlags=4的时候表示由USB设备启动,Windows在载入内核进入实模式前,要加载boot分区所在磁盘的驱动,发现是USB设备,则自动开启USB轮询服务,检测USB端口的设备是否存在大容量移动磁盘。
USB是串行端口,串行端口的检测方式有两种,一种是轮询,一种是中断。USB使用的是轮询,好处是节省CPU,PollBootPartitionTimeout 的值这个时候相当于等待检测大容量存储设备的最长等待时间。因为有些机器的USB探测是很耗费时间的。所谓微软推荐的值大概是15秒和30秒。防止启动失败导致7B蓝屏。
我通过不断是实践发现,USB2.0 USB1.1 USB1.0的驱动实际上并不通用。windows保留了3种驱动,并依据不同的设备加载不同的usbehci.sys,usbohci.sys,usbuhci.sys。如果将这三个设备同时加载会怎么样?呵呵,答案是在某些机器上插的有USB键盘鼠标的时候,会死机。。。。或者键鼠停止响应。

当BootDriverFlags=4 的时候,U盘会占用D盘盘符,如果不存在硬盘主活动分区的话,U盘占用C盘。

当BootDriverFlags=0 的时候,U盘会被当作移动硬盘在本地硬盘后分配盘符,如果不存在主活动分区的话占用C盘。

[ 本帖最后由 hotdll 于 2012-5-26 20:46 编辑 ]

评分

参与人数 2无忧币 +13 收起 理由
nytc006 + 5 很给力!
yueming9712 + 8 精品文章

查看全部评分

2#
 楼主| 发表于 2012-5-21 11:51:08 | 只看该作者
11、Q:挂在别的二级内核,快进入桌面的时候蓝屏提示:wimfltr.sys xxxx……
    A:因为采用wim的二级内核,所以需要在二级内核启动的时候猜开启FBWF,请在pecmd.ini的最上面一行加入:FIND MEM<384,FBWF P40 L96 H192!FBWF P50 L160 H512

12、Q:Native WIN7PE 一级内核体积那么小,是不是精简过度了?导致很多功能不可用?
    A:因为采用Native挂在二级内核的技术,所以WIN7PE的一级内核才可以做到这么小,相当于给win7pe加载了USB2.0/USB3.0驱动后才运行win7pe,速度当然很快,但是没有损失WIN7PE的任何功能,也没有精简任何组件。

13、Q:Native WIN7PE Native shell 批处理挂载files.wim到x:\program files 失败
      A:(1)路径带空格的时候,请带引号如: "x:\program files"
           (2)native shell的if命令处理参数太简单,能不使用尽量不使用。if参数不能用在带空格的参数上。

14、Q:Native WIN7PE 不能安装驱动,或者设备管理器蓝屏。
      A:新版的fbwf.sys驱动带来的bug。原因未知。

[ 本帖最后由 hotdll 于 2012-5-26 20:46 编辑 ]

评分

参与人数 1无忧币 +8 收起 理由
yueming9712 + 8 精品文章

查看全部评分

回复

使用道具 举报

3#
 楼主| 发表于 2012-5-21 11:51:19 | 只看该作者
占楼,本帖不断更新中。
回复

使用道具 举报

4#
发表于 2012-5-21 12:05:32 | 只看该作者
呵呵   强大的山寨。。
回复

使用道具 举报

5#
发表于 2012-5-21 12:07:28 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

6#
 楼主| 发表于 2012-5-21 12:14:19 | 只看该作者

回复 #5 kenhun 的帖子

对不起,如果我让您受不了了。我表示深深的歉意。
回复

使用道具 举报

7#
发表于 2012-5-21 12:19:30 | 只看该作者
哇塞,第2条好吸引人啊,可以把那些大家伙拉下来试试了!
回复

使用道具 举报

8#
发表于 2012-5-21 12:58:24 | 只看该作者
老大精力旺盛,技术精湛,专心投入,极是钦佩!
回复

使用道具 举报

9#
发表于 2012-5-21 13:32:15 | 只看该作者

回复 #1 hotdll 的帖子

我觉的这个版本没多大意义,不能安装网卡,声卡显卡,就是我的电脑属性也打不开.
我有一个BOOT.WIM的7PE,可安装三卡,我还用它玩网上游戏,如能搞成一二级内核启动,也在一分钟内启动,我学着跟楼主一样搞,启动时间大慨50S,但有问题.没搞成,如果楼主有兴趣,我可上传.
回复

使用道具 举报

10#
发表于 2012-5-21 13:38:29 | 只看该作者
回个贴表示支持H大~~~
回复

使用道具 举报

11#
发表于 2012-5-21 13:38:44 | 只看该作者
好资源,又一技术强帖,饭大最近捷报连连哪
回复

使用道具 举报

12#
 楼主| 发表于 2012-5-21 13:39:05 | 只看该作者

回复 #9 gbzx 的帖子

你没仔细看原帖。。。。
也没仔细看这个帖子。。。。
一级内核可以挂在二级内核,你不一定非要重头去弄一级内核。。
你把你的二级内核打包成07pe.wim即可。。。。

参见问题第二点。

另外这个版本支持三卡驱动,支持上网,支持外置程序。。。

仅仅是需要楼主认真的看下原帖,和原帖指向原作者的连接。

[ 本帖最后由 hotdll 于 2012-5-21 13:44 编辑 ]
回复

使用道具 举报

13#
 楼主| 发表于 2012-5-21 13:49:38 | 只看该作者

回复 #10 gtdwood 的帖子

谢谢兄弟支持。。。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

14#
发表于 2012-5-21 13:52:26 | 只看该作者

回复 #9 gbzx 的帖子

这本身就支持外置驱动及外置工具的。自动搜寻并挂载外置PETOOLS。放UD及可见区,硬盘均可。
外置工具需自己制作或到原作者那个帖子中去下载。
回复

使用道具 举报

15#
发表于 2012-5-21 14:24:26 | 只看该作者
参照各主板bios的硬件管理,启动顺序和驱动加载,都在2MB以内搞定了。
回复

使用道具 举报

16#
发表于 2012-5-21 14:45:04 | 只看该作者
可以拿X64來做嗎?
回复

使用道具 举报

17#
 楼主| 发表于 2012-5-21 14:51:08 | 只看该作者

回复 #15 dfw9 的帖子

你搞定了2M的WIN7PE?
那么我对您的敬仰之情。。。。此处省略XXX字。
回复

使用道具 举报

18#
发表于 2012-5-21 14:56:59 | 只看该作者
作为技术研究,我强烈支持hotdll此番大力折腾。

        只是提个问题,望楼主解答。

      native PE使用的目的在于快速启动并维护老计算机,而新款设备(例如965芯片组以上级别台式机及对应的笔记本、服务器等设备)上,只要PE的一级内核不是过分变态(例如GB级),无论03PE Win7 PE XPPE启动速度都很快。最明显的是从2009年CPU集成显卡的笔记本的出现,发展到2011年此类机器USB3.0的接口应用日益广泛,在此类设备用常规7PE从来不慢。新款设备应用native 7PE的优势不明显。

     native NT5.X PE的快速优势在915更早级别芯片组或的机器上的确体现得酣畅。问题在于对于那些915级别芯片组的老机器,有必要用7pe来应付否?这些机器AHCI驱动的HWID都已固话,应该也没有厂商为它们研发新设备了。“最大的优点想必就是不需要频繁的更新AHCI驱动去支持未来的磁盘控制器了吧。”这个优势在这些设备是体现不出的。这些旧设备用成熟稳定的Native 03PE XPPE岂不快哉?


[ 本帖最后由 chiannet 于 2012-5-21 14:58 编辑 ]
回复

使用道具 举报

19#
 楼主| 发表于 2012-5-21 15:05:20 | 只看该作者

回复 #18 chiannet 的帖子

就算是现在的BIOS都是USB2.0了。。。。。。(当然还是有很多新机器在是模式下是USB1.1),每秒读取10-15M。。。。。
一个WIN7PE 普遍都是1xxm到500M之间吧。。。
载入恐怕也要1分钟到2分钟吧。

并且载入的内存小于1个G恐怕是不够用的吧。


其次。。。。
实际上楼上维护机器的次数恐怕并不多吧。五子登科恐怕你最多也就用一个吧?哪你为什么搞5个出来呢?

有时候技术就是技术,兴趣就是兴趣。。。。

没有那么多为什么,bsd或者linux比windows更好。。。。还开源,为什么我们还要搞winpe呢?
回复

使用道具 举报

20#
发表于 2012-5-21 15:12:21 | 只看该作者
BootDriverFlags、PollBootPartitionTimeout别说xp和2003,连vista都是没有这两个键值的。
而win8的usb启动键值也不一样了(有空我会发帖介绍win8 usb启动的注册表关键控制项)
回复

使用道具 举报

21#
发表于 2012-5-21 15:18:38 | 只看该作者

回复 #19 hotdll 的帖子

楼主,能否研究一下NT5.X native PE在量产的场合,怎样让native shell顺利找到位于量产U盘光驱内的二级内核PE.WIM?

不瞒你说,这个问题倒是让我大费周章,却不得其法。
回复

使用道具 举报

22#
 楼主| 发表于 2012-5-21 15:21:21 | 只看该作者

回复 #20 fujianabc 的帖子

f大,我遇到一个新的问题。
就是有10%的机器会启动到桌面然后重启。。。我感觉应该是开启fbwf不成功。

如果把BootDriverFlags的值改成0的话,可以成功进到桌面,但是无法识别ud区的iso
回复

使用道具 举报

23#
 楼主| 发表于 2012-5-21 15:23:48 | 只看该作者

回复 #21 chiannet 的帖子

我没有环境测试。不过想来应该是cdrom.sys的加载时机。还有就是我不清楚量产的U盘在xppe下的驱动是不是仅仅只要cdrom.sys

抱歉,我打算淘汰xppe和03pe了。。。未来属于win7pe
回复

使用道具 举报

24#
发表于 2012-5-21 15:27:06 | 只看该作者
WIN7PE支持由USB启动,
把WIN7PE.WIN解开在USB启动,那么效果是不是雷同呢?谢谢。
回复

使用道具 举报

25#
发表于 2012-5-21 15:28:24 | 只看该作者
稀饭哥。传统wim启动是不是整个载入内存运行?
回复

使用道具 举报

26#
发表于 2012-5-21 15:32:53 | 只看该作者

回复 #22 hotdll 的帖子

重启的原因很多,并不一定是由PE引起的。
有人无数次重启,后来将UD区备份到硬盘,然后再导入U盘,结果问题消失,不重启了。

个人感觉是由于进行了碎片整理,导致ISO受损造成的。
有时,不整理好像不能识别二级内核。整理后双损坏了ISO。
所以,导出、删除UD,再导入。可能比整理更好。
回复

使用道具 举报

27#
 楼主| 发表于 2012-5-21 15:38:58 | 只看该作者

回复 #25 my9823 的帖子

答对了。。。。加10分。。。。。
回复

使用道具 举报

28#
发表于 2012-5-21 15:42:53 | 只看该作者
原帖由 幸运的草 于 2012-5-21 15:32 发表
重启的原因很多,并不一定是由PE引起的。
有人无数次重启,后来将UD区备份到硬盘,然后再导入U盘,结果问题消失,不重启了。

个人感觉是由于进行了碎片整理,导致ISO受损造成的。
有时,不整理好像不能识别 ...



有时候问题就是这么莫名其妙的。
回复

使用道具 举报

29#
发表于 2012-5-21 16:11:31 | 只看该作者
如果是碎片问题 第一个菜单肯定有提示 说文件不连续 所以应该不是碎片问题 我也不认为是机器问题 我有两个ud盘 一个是u盘 一个是sd读卡器加sd卡 后者正常 前者重启 正常的在进入win7的时候 最上面一行的红字要比重启的字要小 好像分辨率自动调整了一样 再者后者老重启的 备份再导入 又正常了 但是可见区复制些文件启动又重启

[ 本帖最后由 ren001 于 2012-5-21 16:25 编辑 ]
回复

使用道具 举报

30#
 楼主| 发表于 2012-5-21 16:34:35 | 只看该作者

回复 #29 ren001 的帖子

最新的g4d map的时候,忽略碎片的。甚至Map失败都不提示。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-3 10:18

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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