无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 10629|回复: 43
打印 上一主题 下一主题

如何使WIN8PE支持map(不加mem)在进入PE后可以看到grub虚拟的光驱

  [复制链接]
跳转到指定楼层
1#
发表于 2013-1-20 12:37:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
声明:本教程是在Smine的http://bbs.wuyou.net/forum.php?mod=viewthread&tid=211688&highlight=%2Bsmine启发下,并经Smine指导完成。未经全面测试。属于抛砖引玉,希望版内各位大侠能一起研究,也希望坛友能下载测试或按教程修改自己的pe来测试,谢谢。
*****************************我是分割线********************************************************
默认情况下,如果使用map(不加mem)方式加载win8的ISO文件,那么在进入pe后是看不到grub虚拟的光驱的,这也是版内所有win8pe合盘在进入pe后丢失外置的原因(除非使用map --mem方式加载--这样既耗内存,又耗时间)。
pe之所以看不到grub虚拟的光驱,是因为缺少以下几个必要条件:
1、没有集成firadisk或winvblock驱动
2、硬盘或U盘的驱动启动在光驱驱动启动之后,所以firadisk或winvblock驱动在虚拟光驱时找不到iso文件
解决办法如下:
1、首先需集成firadisk驱动
复制firadisk.inf 到windows\inf\,
复制firadisk.sys 到Windows\System32\drivers\.
将windows\system32\config\system挂载为w8_system
导入class.reg、root.reg、service.reg
注意:导入root.reg时需要修改[HKEY_LOCAL_MACHINE\w8_system\ControlSet001\Enum\ROOT]的权限,保证当前用户有完全控制的权限,否则无法导入。必要时可以修改所有者为当前用户或administrators。
2、修改cdrom和usb的启动顺序
将windows\system32\config\system挂载为w8_system
导入cdrom.reg和所有usb打头的reg文件。
3、由于firadisk的要求,编写grub调用菜单如下:

default 0
timeout 10
font && font /BOOT/GRUB/ufont.gz
graphicsmode -1 640
terminal --font-spacing=0:3

title 启动  win8PE   By   firadisk
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
map (hd1,0)/BOOT/IMGS/WIN8PEfiradisk.iso (0xff)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/BOOT/IMGS/WIN8PEfiradisk.iso;\n\0
chainloader (0xff)


当然,相关目录和文件名称换成你自己的。
**********************************************教程结束***********************************************
相关文件请下载附件。
比较可惜的是,winvblock的调用要比firadisk方便(直接map就可以,不需要另外构筑内存盘),但却不支持win8。如果有人能联系上作者,倒是可以反馈一下,看作者能不能升级支持win8。
当然,这种思路其实应该是适用win7(smine已完成)、xp和2k3的,我将继续研究后2者。感兴趣的朋友可以一起研究。
另外注意firadisk的天生缺陷:iso文件必须连续且存储在NTFS分区

最后放一个例子,基于天意win8pe1.61修改:http://pan.baidu.com/share/link?shareid=196647&uk=4211508820

[ 本帖最后由 fukystone 于 2013-1-20 12:42 编辑 ]

FIRADISK.7z

16.29 KB, 下载次数: 116, 下载积分: 无忧币 -2

2#
发表于 2013-1-20 13:02:55 | 只看该作者
可以在 进入 win8pe 以后,通过设备管理器 安装 “过时设备驱动” 安装 winvblk 驱动 。
但是,有可能 重启或者死机 。

点评

混沌剑神 www.aoswx.com/book/991.html 永生之门www.gmwxw.com/book/4185.html  发表于 2014-9-26 14:59
回复

使用道具 举报

3#
发表于 2013-1-20 13:09:27 | 只看该作者
学习了!!!!!!!!!

点评

www.zxmh.net/html/book1124/ 全职高手  发表于 2014-10-21 16:16
回复

使用道具 举报

4#
 楼主| 发表于 2013-1-20 14:50:12 | 只看该作者
原帖由 dos时代菜鸟 于 2013-1-20 13:02 发表
可以在 进入 win8pe 以后,通过设备管理器 安装 “过时设备驱动” 安装 winvblk 驱动 。
但是,有可能 重启或者死机 。

这个测试过,在win8下,注意不是win8pe,可以正常安装winvblock驱动,加--mem参数也可以识别。但不加参数map失败,win8直接重启
回复

使用道具 举报

5#
发表于 2013-1-20 16:17:23 | 只看该作者
我来YY一下,我这人是喜欢二级放进UD的,FiraDIsk好像认不到……
我目前的方案是创建一个在mem的空盘,动态拷入文件(dd可以用很大的缓存,所以速度很快)
回复

使用道具 举报

6#
发表于 2013-1-20 18:02:45 | 只看该作者
一直苦于识别不了MAP  没有出UD版的NATIVE 8PE 感谢LZ  晚上来测试反馈。
回复

使用道具 举报

7#
发表于 2013-1-20 18:40:57 | 只看该作者
winvblock支持WIN8PE的 MAP --MEM 解决MAP的问题  我测试无效。。。
回复

使用道具 举报

8#
 楼主| 发表于 2013-1-20 18:49:48 | 只看该作者
原帖由 红毛樱木 于 2013-1-20 18:40 发表
winvblock支持WIN8PE的 MAP --MEM 解决MAP的问题  我测试无效。。。


呵呵,我还没说怎么改winvblock呢。
按附件改吧,需要我传个例子吗?

WinVBlock_0.0.1.8 for win8pe.7z

38.91 KB, 下载次数: 90, 下载积分: 无忧币 -2

回复

使用道具 举报

9#
发表于 2013-1-20 19:20:07 | 只看该作者

回复 #8 fukystone 的帖子

已经在参考你的firadisk在改。一会不行再直接用你的。

评分

参与人数 1无忧币 +1 收起 理由
douban11 + 1 www.zhuiju.co/vod/1/ 一路向西2

查看全部评分

回复

使用道具 举报

10#
发表于 2013-1-20 19:22:50 | 只看该作者

回复 #8 fukystone 的帖子

我自己改的不行,我来试试你的。
回复

使用道具 举报

11#
发表于 2013-1-20 19:39:44 | 只看该作者

回复 #8 fukystone 的帖子

测试了一下 放UD内 仍然无法识别直接MAP的ISO   还是一个空光驱盘符  内容读不了  这个问题  我就是没折腾成功。
要MAP --MEM才行。
等LZ 具体测试。
回复

使用道具 举报

12#
发表于 2013-1-20 19:44:40 | 只看该作者
进一步折腾结果,
直接MAP 加载的光驱无法读取光驱内容,驱动INF文件为CDROM.INF
而--MEM 加载的光驱可以读取光驱内容,驱动INF正确为WINVBLOCK.INF
不知下一步改如何做调整了
回复

使用道具 举报

13#
 楼主| 发表于 2013-1-20 19:53:02 | 只看该作者
原帖由 红毛樱木 于 2013-1-20 19:44 发表
进一步折腾结果,
直接MAP 加载的光驱无法读取光驱内容,驱动INF文件为CDROM.INF
而--MEM 加载的光驱可以读取光驱内容,驱动INF正确为WINVBLOCK.INF
不知下一步改如何做调整了


这个,我不是说了吗?winvblock只能用map--mem,直接map是不行的。想要直接map要用firadisk
回复

使用道具 举报

14#
发表于 2013-1-20 20:13:14 | 只看该作者

回复 #13 fukystone 的帖子

真心不好意思。。。没仔细看完。。。以为你把winvblock的也map搞定了
回复

使用道具 举报

15#
发表于 2013-1-21 07:34:17 | 只看该作者
一个很孬的想法:
把cdrom.inf和wvblk32.inf合并……
伪装成cdrom.inf
回复

使用道具 举报

16#
发表于 2013-1-21 07:37:02 | 只看该作者
还有
让wvblk32.inf跟GenCdRom这个ID匹配
很多光驱都有这个ID
回复

使用道具 举报

17#
发表于 2013-1-21 09:00:45 | 只看该作者
还有一个方法:
将cdrom注册表中的Owners修改为:

  1. winvblk.inf
  2. cdrom.inf
复制代码

这样就“绑定”到winvblk.inf上了
回复

使用道具 举报

18#
发表于 2013-1-21 17:10:47 | 只看该作者
楼主的方法早就试了,但是ISO不能放UD区,另外大家有没有用实机测试的?进入PE后会导致C盘数据丢失,我上次自己测试的时候就吃了一回亏了!
回复

使用道具 举报

19#
 楼主| 发表于 2013-1-21 18:59:22 | 只看该作者
原帖由 zhuyoucheng 于 2013-1-21 17:10 发表
楼主的方法早就试了,但是ISO不能放UD区,另外大家有没有用实机测试的?进入PE后会导致C盘数据丢失,我上次自己测试的时候就吃了一回亏了!


向你的C盘表示哀悼……
不过你确信你看懂我写的是什么了吗?
回复

使用道具 举报

20#
发表于 2013-1-21 20:26:07 | 只看该作者

回复 #19 fukystone 的帖子

呵呵!不相信你可以在虚拟机里试下,先进其它的PE启动把硬盘分区格式化,然后往C盘随便写几个文件,重启用你的菜单启动你发的这个ISO,进入PE后看你的c:盘还能访问吗?
再发一张图,用的是你一楼的菜单启动的你发的那个PE。

[ 本帖最后由 zhuyoucheng 于 2013-1-21 20:38 编辑 ]

360截图20130121203652999.jpg (88.64 KB, 下载次数: 9)

360截图20130121203652999.jpg
回复

使用道具 举报

21#
发表于 2013-1-21 20:42:44 | 只看该作者
再看这张图,本来C盘是有数据的,刚才启动了你的那个PE,现在启动另一个pe打开C盘数据已经没有了。

360截图20130121204001735.jpg (51.5 KB, 下载次数: 15)

360截图20130121204001735.jpg
回复

使用道具 举报

22#
 楼主| 发表于 2013-1-21 22:37:42 | 只看该作者
原帖由 zhuyoucheng 于 2013-1-21 20:42 发表
再看这张图,本来C盘是有数据的,刚才启动了你的那个PE,现在启动另一个pe打开C盘数据已经没有了。


这种系统级的修改,需要你对pe启动原理、注册表、grubfordos都有足够的了解---当然实际上我也只是懂得皮毛,同时需要你有足够的耐心和毅力来解决问题。而且最好认真的看别人的帖子,或许只是一句话,一段代码,甚至只是一个值不同,结果就会大不一样。而且如果你不是太熟,不建议你实机操作。---就好像前几天有位坛友实验dos时代菜鸟的盘符调整程序,结果把硬盘分区弄没了……,其实如果他能认真看帖子学习的话,就应该知道那是pe下的玩意,在实机操作系统下整,什么稀奇古怪的毛病都可能发生……
针对你这种情况,我这边测试的时候没有发现,当然我也说过并没有进行全面测试,不排除在某种条件下发生C盘丢失的现象,我推断可能有以下几种情况:
1、注册表键值不对,尤其是firadisk的inf位置不对
2、调用菜单构筑的内存盘有问题。
请你认真看一下我的帖子,确认以下几点:
1、你把我那个例子iso放在ntfs分区的硬盘上,并且用软件整理过,保证它是连续的
2、你调用它的语句,尤其是构建firadisk内存盘的语句没有问题--跟我首页上面的一致
或者你把你的菜单贴出来我看看
下面是我的截图,C盘很正常。

QQ截图20130121222106.jpg (217.71 KB, 下载次数: 9)

QQ截图20130121222106.jpg

QQ截图20130121222252.jpg (205.98 KB, 下载次数: 8)

QQ截图20130121222252.jpg
回复

使用道具 举报

23#
发表于 2013-1-21 23:04:42 | 只看该作者
搞清楚了,原来我的C盘式FAT32格式的,启动就不能访问,所以以这个方法启动硬盘只能全部是NTFS格式才行,如果有一个分区是FAT32格式,不管ISO文件有没有放在这个分区,那么这个分区就不能访问。
回复

使用道具 举报

24#
 楼主| 发表于 2013-1-21 23:21:18 | 只看该作者
原帖由 zhuyoucheng 于 2013-1-21 23:04 发表
搞清楚了,原来我的C盘式FAT32格式的,启动就不能访问,所以以这个方法启动硬盘只能全部是NTFS格式才行,如果有一个分区是FAT32格式,不管ISO文件有没有放在这个分区,那么这个分区就不能访问。


不是这样的,我那张图里D盘就是fat32的,一样可以访问。
但是不能把iso放在fat32硬盘上,那样会出问题---其实firadisk作者是提过的。
回复

使用道具 举报

25#
发表于 2013-1-24 13:22:28 | 只看该作者
总结一个测试方法:
找台虚拟机
硬盘分区格式化
然后在进bootmgr的界面的一瞬间猛按F8,选启用日志
然后只要能进Native环境,把日志用Native里面的拷贝命令拷贝到虚拟机的硬盘中
然后打开虚拟机硬盘就可以看启动日志就可以找出启动顺序的毛病了
回复

使用道具 举报

26#
发表于 2013-5-14 14:12:26 | 只看该作者
fukystone 发表于 2013-1-21 23:21
不是这样的,我那张图里D盘就是fat32的,一样可以访问。
但是不能把iso放在fat32硬盘上,那样会出问题 ...

Enough to put in the System32:
firadisk.inf
firadisk.sys
devcon.exe
and:
start /b/w devcon.exe install firadisk.inf root\firadisk

It's working!

回复

使用道具 举报

27#
发表于 2013-5-14 14:38:47 来自手机 | 只看该作者
lz最近解决了吗?我前几天又折腾了一番还没搞定。
回复

使用道具 举报

28#
发表于 2013-5-14 15:08:37 | 只看该作者
这个问题很有前途,最好大家还是能解决一下win8/PE用wvblock驱动后的直接map问题。解决了,有以下好处:
1.可以出UD版的win8PE极速版,二级内核和外置都可以打包直接map,速度快。如果不解决全藏入的8PE UD极速版就不会成功制作出来。我看现在的8PE极速版都是量产用的无法隐藏。
2.对于普通PE,也可以通过内核和外置全打包来map的方法,实现各种部署的统一。这样子,我的全打包统一版立马可以统一win8PE,实现U+V2-zip深度隐藏年外置加载。
回复

使用道具 举报

29#
发表于 2013-5-14 17:43:50 | 只看该作者
本帖最后由 sunsea 于 2013-5-14 17:47 编辑

最近会玩驱动了
有时间看看G4D的map记录放在哪了
然后根据自己的驱动功底
make一个驱动

但是DDK的资料基本都是英文的
很难看懂
回复

使用道具 举报

30#
 楼主| 发表于 2013-5-14 18:37:22 | 只看该作者
sunsea 发表于 2013-5-14 17:43
最近会玩驱动了
有时间看看G4D的map记录放在哪了
然后根据自己的驱动功底

这才是高手啊。
winvblk的作者没动静了
你要是能写个驱动支持win8,那可太好了,造福大众啊
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-19 16:43

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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