无忧启动论坛

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

完美解决win7PE或者NATIVE WIN7PE不识别GRUB直接MAP的ISO的问题

[复制链接]
跳转到指定楼层
#
发表于 2012-6-27 00:55:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
经过长时间的研究,终于找到了解决win7PE或者NATIVE WIN7PE不识别GRUB直接MAP的ISO的问题的方法!

首先感谢hotdllhttp://bbs.wuyou.net/forum.php?mod=viewthread&tid=210458 帖子上的研究,我也是从这个帖子受到启发,结合以前将xp安装到U盘上的经历,才找到完美解决办法。

原理:

系统默认的驱动加载顺序是 磁盘控制器驱动--WinVBlock 驱动--cdrom.sys--usb--ramdisk.sys--disk.sys,所以
当grub map --mem 时,系统加载WinVBlock 驱动后WinVBlock 驱动模拟出cdrom后会在内存中查找grub仿真盘,由于仿真盘时全部加载到内存的,所以可以找到,就成功了;
而当grub map 不带 --mem参数时,系统时把ISO镜像链接到内存的,即内存中只保存iso镜像的地址,不保存内容,而此时disk.sys,ntfs.sys等驱动还没有加载,所以就找不到ISO了。

所以要调整系统默认的驱动加载顺序,使其为磁盘控制器驱动--usb--WinVBlock 驱动--ramdisk.sys--disk.sys--cdrom.sys


解决方法:

1。调整disk的加载顺序
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Disk\Group=Primary Disk

2。调整USB的加载顺序
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbehci\Group=System Reserved
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbehci\Start=0

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbhub\Group=System Reserved
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbhub\Start=0

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbohci\Group=System Reserved
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbohci\Start=0

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\USBSTOR\Group=System Reserved
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\USBSTOR\Start=0

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbuhci\Group=System Reserved
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\usbuhci\Start=0

3。调整cdrom的加载顺序
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\cdrom\Group=Base
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\cdrom\Start=0

4。集成WinVBlock 驱动
WinVBlock.rar (20.27 KB, 下载次数: 306)


至此,修改完成!

经测试,在普通WIN7pe和NATIVE WIN7PE上都有效,NATIVE WIN7PE在NATIVE shell 阶段就能读出GRUB直接MAP的iso的内容!

具体效果可以参见NATIVE版WIN7PE AERO 完整版(一级内核30M 20120627更新)[400M]

完整的注册表及文件(包括注册表修改和WinVBlock 驱动集成):
Map.zip (80.29 KB, 下载次数: 316)

[ 本帖最后由 smine 于 2012-6-28 15:47 编辑 ]
推荐
发表于 2013-1-22 11:22:51 | 只看该作者
最喜欢听大家唠嗑了……
回复

使用道具 举报

推荐
发表于 2013-1-13 18:19:02 | 只看该作者
win8pe下此方法貌似不行,一次都没“碰巧成功”过
还是只能MAP --MEM才能识别。
回复

使用道具 举报

推荐
发表于 2012-10-24 20:58:00 | 只看该作者
我还是直接map无法识别ISO
     map --mem则识别OK  头大了
    老大有时间看看我的呗。
我的不是NATIVE的  但是工具包是WIM格式的  采用ISO打包起来   MAP无法识别啊,痛苦,只有 map --mem有时间帮看看
http://bbs.wuyou.net/forum.php?m ... p;extra=&page=1


另外我的MAP --MEM也有一定的失败几率

[ 本帖最后由 2010红毛樱木 于 2012-10-24 21:00 编辑 ]
回复

使用道具 举报

推荐
发表于 2012-7-8 14:53:05 | 只看该作者
楼主,你的一级内核里的WinVBlock驱动是什么版本?有FiraDisk驱动吗?
回复

使用道具 举报

推荐
发表于 2012-7-7 15:19:19 | 只看该作者

回复 #1 smine 的帖子

在我的HP4311S笔记本上无效。
回复

使用道具 举报

推荐
发表于 2012-7-6 22:43:25 | 只看该作者

回复 #71 smine 的帖子

谢S大了,豁然开朗。
回复

使用道具 举报

推荐
 楼主| 发表于 2012-7-6 16:55:36 | 只看该作者
原帖由 sean5018 于 2012-7-6 15:16 发表 S 大,能传授一下您是怎样集成 WinVBlock 驱动的吗?我想把64位的win7pe做成直接map,参照您说的修改了前面的注册表。但到集成WinVBlock驱动这一步,不知道该怎么做了。我是在win7x64下安装 WinVBlock 驱动,然 ...
你要在启动WIN7x64前先用GRUB映射一个ISO,然后再引导WIN7x64启动,然后安装WinVBlock 驱动,想办法驱动虚拟ISO的光驱,然后你就能看到那些信息了
回复

使用道具 举报

推荐
发表于 2012-7-3 23:42:38 | 只看该作者
原帖由 smine 于 2012-7-3 22:02 发表

你的菜单没发现什么问题,你的问题我没辙了。。。另,文件校验信息在补丁的压缩包里


实在抱歉,补丁压缩包的txt文件里的确有校验信息,炯!!!瞧我这什么眼神啊!就当是您提前采纳了我得建议吧,哈,阿Q一把……

好在我没把文件版本弄错,现在问题有了新的进展,我又测试了0625版,仍然出现相同的奇怪现象,硬盘可启动成功,U盘034。说明不是0627突破后的调整引起的。

我又测试了一望无痕今天刚放出的0703版ISO版本,竟然是同样症状:硬盘可启动成功,U盘034。在034的黑底白字界面,一级内核的版本都是20120619这一版,会不会是native 0.12版的通病呢?

激动人心的时刻到了,在反复删除文件复制文件后,U盘的ISO文件出现了碎片,懒得再用WinContig处理了,直接在菜单中用“e”临时修改菜单为map --mem,奇迹出现了!经过相对缓慢的加载,这次竟然成功了!

切换到一望无垠0703版,采用--mem菜单,也启动成功了!

但是这是怎么回事呢?求解释,谢谢!
回复

使用道具 举报

推荐
发表于 2012-7-3 23:12:38 | 只看该作者
原帖由 gbzx 于 2012-7-3 22:47 发表
你是指ISO刻成光盘,还是放进ud区?如果是放进ud区,在ISO根目录放一个TXT文件就不会出现34了,如果刻成光盘,我没试过.

UD版,二级内核打包成ISO,加了txt文件,在大部分机子中解决了034问题,但在联想新机怎么弄也是卡在034。
这个内核问题还没有解决,看来034问题的关键没有找到。
楼主的一级内核的补丁,解决了一部分机子的,但还有一部分机子问题没有解决。

[ 本帖最后由 zds1210 于 2012-7-3 23:20 编辑 ]
回复

使用道具 举报

推荐
发表于 2012-7-3 23:06:02 | 只看该作者
原帖由 419788808 于 2012-7-3 10:59 发表
已经map 成功的路过、就剩下量产没试了。

进入PE后、可以看见G4D虚拟的ISO驱动盘符。

晕,我讲的是一级内核打包成ISO,二级内核也打包成ISO,二级内核也直接map,然后再mount进去。
那种直接一个ISO文件的,还单引导,别说量产,就是U+到可见区, 我也已经解决了。晕。
回复

使用道具 举报

71#
发表于 2012-9-7 08:37:56 | 只看该作者
学习啦, 留个脚印
回复

使用道具 举报

70#
发表于 2012-9-7 08:11:13 | 只看该作者
Win8还是不支持的,老大继续攻坚!加油
回复

使用道具 举报

69#
发表于 2012-9-2 22:24:27 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

68#
发表于 2012-9-2 22:23:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

67#
发表于 2012-9-2 22:23:20 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

66#
 楼主| 发表于 2012-7-8 17:14:53 | 只看该作者
原帖由 2012JoyAI 于 2012-7-8 14:53 发表
楼主,你的一级内核里的WinVBlock驱动是什么版本?有FiraDisk驱动吗?


WinVBlock是0.0.0.8版,没有FiraDisk驱动
回复

使用道具 举报

65#
 楼主| 发表于 2012-7-6 16:55:24 | 只看该作者
原帖由 sean5018 于 2012-7-6 15:16 发表 S 大,能传授一下您是怎样集成 WinVBlock 驱动的吗?我想把64位的win7pe做成直接map,参照您说的修改了前面的注册表。但到集成WinVBlock驱动这一步,不知道该怎么做了。我是在win7x64下安装 WinVBlock 驱动,然 ...
你要在启动WIN7x64前先用GRUB映射一个ISO,然后再引导WIN7x64启动,然后安装WinVBlock 驱动,想办法驱动虚拟ISO的光驱,然后你就能看到那些信息了
回复

使用道具 举报

64#
发表于 2012-7-6 15:16:50 | 只看该作者
S 大,能传授一下您是怎样集成 WinVBlock 驱动的吗?我想把64位的win7pe做成直接map,参照您说的修改了前面的注册表。但到集成WinVBlock驱动这一步,不知道该怎么做了。我是在win7x64下安装 WinVBlock 驱动,然后再导出,但我发现注册表只多了 [HKEY_LOCAL_MACHINE\sys\ControlSet001\services\WinVBlock] 这一项,根本没出现您的注册表里面的以下项,谢谢:

[HKEY_LOCAL_MACHINE\sys\ControlSet001\services\WinVBlock\Enum]
"Count"=dword:00000001
"NextInstance"=dword:00000001
"0"="Root\\WinVBlock\\0000"

[HKEY_LOCAL_MACHINE\sys\ControlSet001\Enum\Root\WinVBlock]
[HKEY_LOCAL_MACHINE\sys\ControlSet001\Enum\Root\WinVBlock\0000]
"ClassGUID"="{4d36e97b-e325-11ce-bfc1-08002be10318}"
"Driver"="{4d36e97b-e325-11ce-bfc1-08002be10318}\\0000"
"Class"="SCSIAdapter"
"Mfg"="WinVBlock"
"HardwareID"=hex(7):72,00,6f,00,6f,00,74,00,5c,00,77,00,69,00,6e,00,76,00,62,\
  00,6c,00,6f,00,63,00,6b,00,00,00,00,00
"CompatibleIDs"=hex(7):64,00,65,00,74,00,65,00,63,00,74,00,65,00,64,00,5c,00,\
  77,00,69,00,6e,00,76,00,62,00,6c,00,6f,00,63,00,6b,00,00,00,00,00
"Service"="WinVBlock"
"DeviceDesc"="WinVBlock Bus"
"ConfigFlags"=dword:00000000
"Capabilities"=dword:00000000
"ContainerID"="{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
"ParentIdPrefix"="1&1aafb3d5&0"

[HKEY_LOCAL_MACHINE\sys\ControlSet001\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\0000]
"InfPath"="oem12.inf"
"InfSection"="WinVBlock"
"ProviderName"="WinVBlock"
"DriverDateData"=hex:00,c0,61,1f,da,cb,cb,01
"DriverDate"="2-14-2011"
"DriverVersion"="0.0.0.8"
"MatchingDeviceId"="root\\winvblock"
"DriverDesc"="WinVBlock Bus"
回复

使用道具 举报

63#
发表于 2012-7-4 17:01:25 | 只看该作者
原帖由 歌理 于 2012-7-1 00:17 发表
FiraDisk&WinVBlock使用帮助 (by zhhsh@wuyou)
FiraDisk和WinVBlock是Windows下Grub4dos仿真盘的驱动,可以支持grub4dos map--mem出来的光驱,软驱,硬盘,支持多个虚拟驱动器,并从仿真盘启动。也支持grub4dos map(非载入内存方式)出来的硬盘,并从仿真硬盘启动。

Firadisk驱动的0.0.1.30版本支持 map(非载入内存方式)出来的光驱,并从仿真光驱启动。


以上就是硬盘能不加--mem能挂载成功,U盘不成功的原因?

把一级内核中的WinVBlock驱动换成0.0.1.30版firadisk驱动有谁试过没?

参考贴:《Native PE 在iso光盘 中MAP 二级内核失败 的测试 讨论》 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=211783

20120708补充:

晕了,从硬盘ISO启动时,可以不加--mem启动啊!说明一级内核支持以非载入内存方式map光驱,并从光驱启动。
这么说来WinVBlock也支持map(非载入内存方式)出来的光驱,并从仿真光驱启动?


[ 本帖最后由 2012JoyAI 于 2012-7-8 14:50 编辑 ]
回复

使用道具 举报

62#
发表于 2012-7-4 11:58:24 | 只看该作者
针对 ISO  从 硬盘  u盘  光盘 map , 部分场合无法 mount 的情况, 这个问题还没有完全解决, 所以您的提问,目前来说还没有一个完美的答案。 目前各位大大的各种努力, 也是为了解决这个问题。
回复

使用道具 举报

61#
发表于 2012-7-4 11:23:05 | 只看该作者

回复 #65 2012wqmeng 的帖子

谢谢你的解惑,为什么同一个ISO,从硬盘启动时不用--mem就能成功呢?
回复

使用道具 举报

60#
发表于 2012-7-4 00:50:26 | 只看该作者
--mem  这个。。。
唉, 基本什么版本, 只要加这个, 就可以 100% 成功了。

很多人都在想如何把  --mem 去掉。 这才是 Native 存在的意义。

加了 --mem 是把所有iso的内容, 加载放到内存中,并不能起到提速的目的。如果您不在乎启动速度的话, 用--mem 先将就吧。
回复

使用道具 举报

59#
发表于 2012-7-3 22:47:39 | 只看该作者

回复 #56 zds1210 的帖子

你是指ISO刻成光盘,还是放进ud区?如果是放进ud区,在ISO根目录放一个TXT文件就不会出现34了,如果刻成光盘,我没试过.
回复

使用道具 举报

58#
发表于 2012-7-3 22:31:49 | 只看该作者

回复 #39 幸运的草 的帖子

试过了,只要二级内核模拟成光盘,不管是分开,还是一个ISO,关机均变慢,如果放在硬盘(hd)或放在U盘可见区(我的显示fd0),关机就很快,能不能把WIM文件制成软盘镜像,如能成功,关机速度应该会很快.
回复

使用道具 举报

57#
发表于 2012-7-3 22:30:53 | 只看该作者
我使用了楼主0702的一级内核,二级内核采用hotdll的,当然WIM包名称作了修改以匹配你的一级内核。测试结果如下:在台式机上没有问题,在我的笔记本上,在特定的USB端口上偶尔能正常进PE,成功概率很低,在其他USB端口都卡在Mount Failed 0xC0000034上。我只能采取变通的方法,二级内核加载也采用--mem参数,二级内核加载速度就慢了,不过对于稍微新一点的电脑也就是多用了十几秒,这样做能正常进PE了。当然这么做失去了Native的原意,只是作为替补办法,适用于正常模式不能启动的情况。
回复

使用道具 举报

56#
 楼主| 发表于 2012-7-3 22:02:52 | 只看该作者
原帖由 2012JoyAI 于 2012-7-3 17:57 发表


谢谢回复,已测试新版,问题依然:从硬盘启动正常,从U盘启动出现三个034错误。启动菜单是一样的,请smine鉴定看菜单有没有问题,谢谢:

map /smine0702.iso (0xff)
map --hook
rootnoverify (0xff)
...



你的菜单没发现什么问题,你的问题我没辙了。。。另,文件校验信息在补丁的压缩包里
回复

使用道具 举报

55#
发表于 2012-7-3 17:57:35 | 只看该作者
原帖由 smine 于 2012-7-2 18:10 发表


试试这个贴子更新的版本能否解决你的问题:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=211630&page=1&extra=page%3D1


谢谢回复,已测试新版,问题依然:从硬盘启动正常,从U盘启动出现三个034错误。启动菜单是一样的,请smine鉴定看菜单有没有问题,谢谢:

map /smine0702.iso (0xff)
map --hook
rootnoverify (0xff)
chainloader

另外建议发布更新版本时,给出文件的校验信息,以免测试有误。我测试的0702Aero版本文件信息为:

文件大小:419665920 字节
MD5     :2C617AB8265E52AE31EE0FBEAC27F480
SHA1    :F40E723BC2835C7986A89042787B27BC12AE25B6
CRC32   :DBC71402

没搞错吧?版本有点多,晕。

[ 本帖最后由 2012JoyAI 于 2012-7-3 17:58 编辑 ]
回复

使用道具 举报

54#
发表于 2012-7-3 15:06:23 | 只看该作者

回复 #54 419788808 的帖子

二级内核在只读介质中如光盘,怎么直接map成功?能不能介绍经验?
最好发一个ISO版大家测试一下。
回复

使用道具 举报

53#
发表于 2012-7-3 14:05:49 | 只看该作者
谢谢老大分享!!!!!
回复

使用道具 举报

52#
发表于 2012-7-3 10:59:32 | 只看该作者
已经map 成功的路过、就剩下量产没试了。

进入PE后、可以看见G4D虚拟的ISO驱动盘符。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 01:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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