无忧启动论坛

标题: 如何使WIN8PE支持map(不加mem)在进入PE后可以看到grub虚拟的光驱 [打印本页]

作者: fukystone    时间: 2013-1-20 12:37
标题: 如何使WIN8PE支持map(不加mem)在进入PE后可以看到grub虚拟的光驱
声明:本教程是在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


作者: dos时代菜鸟    时间: 2013-1-20 13:02
可以在 进入 win8pe 以后,通过设备管理器 安装 “过时设备驱动” 安装 winvblk 驱动 。
但是,有可能 重启或者死机 。
作者: pzppzp    时间: 2013-1-20 13:09
学习了!!!!!!!!!
作者: fukystone    时间: 2013-1-20 14:50
原帖由 dos时代菜鸟 于 2013-1-20 13:02 发表
可以在 进入 win8pe 以后,通过设备管理器 安装 “过时设备驱动” 安装 winvblk 驱动 。
但是,有可能 重启或者死机 。

这个测试过,在win8下,注意不是win8pe,可以正常安装winvblock驱动,加--mem参数也可以识别。但不加参数map失败,win8直接重启
作者: sunsea    时间: 2013-1-20 16:17
我来YY一下,我这人是喜欢二级放进UD的,FiraDIsk好像认不到……
我目前的方案是创建一个在mem的空盘,动态拷入文件(dd可以用很大的缓存,所以速度很快)
作者: 红毛樱木    时间: 2013-1-20 18:02
一直苦于识别不了MAP  没有出UD版的NATIVE 8PE 感谢LZ  晚上来测试反馈。
作者: 红毛樱木    时间: 2013-1-20 18:40
winvblock支持WIN8PE的 MAP --MEM 解决MAP的问题  我测试无效。。。
作者: fukystone    时间: 2013-1-20 18:49
原帖由 红毛樱木 于 2013-1-20 18:40 发表
winvblock支持WIN8PE的 MAP --MEM 解决MAP的问题  我测试无效。。。


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

WinVBlock_0.0.1.8 for win8pe.7z

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


作者: 红毛樱木    时间: 2013-1-20 19:20
标题: 回复 #8 fukystone 的帖子
已经在参考你的firadisk在改。一会不行再直接用你的。
作者: 红毛樱木    时间: 2013-1-20 19:22
标题: 回复 #8 fukystone 的帖子
我自己改的不行,我来试试你的。
作者: 红毛樱木    时间: 2013-1-20 19:39
标题: 回复 #8 fukystone 的帖子
测试了一下 放UD内 仍然无法识别直接MAP的ISO   还是一个空光驱盘符  内容读不了  这个问题  我就是没折腾成功。
要MAP --MEM才行。
等LZ 具体测试。
作者: 红毛樱木    时间: 2013-1-20 19:44
进一步折腾结果,
直接MAP 加载的光驱无法读取光驱内容,驱动INF文件为CDROM.INF
而--MEM 加载的光驱可以读取光驱内容,驱动INF正确为WINVBLOCK.INF
不知下一步改如何做调整了
作者: fukystone    时间: 2013-1-20 19:53
原帖由 红毛樱木 于 2013-1-20 19:44 发表
进一步折腾结果,
直接MAP 加载的光驱无法读取光驱内容,驱动INF文件为CDROM.INF
而--MEM 加载的光驱可以读取光驱内容,驱动INF正确为WINVBLOCK.INF
不知下一步改如何做调整了


这个,我不是说了吗?winvblock只能用map--mem,直接map是不行的。想要直接map要用firadisk
作者: 红毛樱木    时间: 2013-1-20 20:13
标题: 回复 #13 fukystone 的帖子
真心不好意思。。。没仔细看完。。。以为你把winvblock的也map搞定了
作者: sunsea    时间: 2013-1-21 07:34
一个很孬的想法:
把cdrom.inf和wvblk32.inf合并……
伪装成cdrom.inf
作者: sunsea    时间: 2013-1-21 07:37
还有
让wvblk32.inf跟GenCdRom这个ID匹配
很多光驱都有这个ID
作者: sunsea    时间: 2013-1-21 09:00
还有一个方法:
将cdrom注册表中的Owners修改为:

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

这样就“绑定”到winvblk.inf上了
作者: zhuyoucheng    时间: 2013-1-21 17:10
楼主的方法早就试了,但是ISO不能放UD区,另外大家有没有用实机测试的?进入PE后会导致C盘数据丢失,我上次自己测试的时候就吃了一回亏了!
作者: fukystone    时间: 2013-1-21 18:59
原帖由 zhuyoucheng 于 2013-1-21 17:10 发表
楼主的方法早就试了,但是ISO不能放UD区,另外大家有没有用实机测试的?进入PE后会导致C盘数据丢失,我上次自己测试的时候就吃了一回亏了!


向你的C盘表示哀悼……
不过你确信你看懂我写的是什么了吗?
作者: zhuyoucheng    时间: 2013-1-21 20:26
标题: 回复 #19 fukystone 的帖子
呵呵!不相信你可以在虚拟机里试下,先进其它的PE启动把硬盘分区格式化,然后往C盘随便写几个文件,重启用你的菜单启动你发的这个ISO,进入PE后看你的c:盘还能访问吗?
再发一张图,用的是你一楼的菜单启动的你发的那个PE。

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

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

360截图20130121203652999.jpg

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

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

360截图20130121204001735.jpg

作者: fukystone    时间: 2013-1-21 22:37
原帖由 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

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


不是这样的,我那张图里D盘就是fat32的,一样可以访问。
但是不能把iso放在fat32硬盘上,那样会出问题---其实firadisk作者是提过的。
作者: sunsea    时间: 2013-1-24 13:22
总结一个测试方法:
找台虚拟机
硬盘分区格式化
然后在进bootmgr的界面的一瞬间猛按F8,选启用日志
然后只要能进Native环境,把日志用Native里面的拷贝命令拷贝到虚拟机的硬盘中
然后打开虚拟机硬盘就可以看启动日志就可以找出启动顺序的毛病了
作者: 2012doberman    时间: 2013-5-14 14:12
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!


作者: 红毛樱木    时间: 2013-5-14 14:38
lz最近解决了吗?我前几天又折腾了一番还没搞定。
作者: zds1210    时间: 2013-5-14 15:08
这个问题很有前途,最好大家还是能解决一下win8/PE用wvblock驱动后的直接map问题。解决了,有以下好处:
1.可以出UD版的win8PE极速版,二级内核和外置都可以打包直接map,速度快。如果不解决全藏入的8PE UD极速版就不会成功制作出来。我看现在的8PE极速版都是量产用的无法隐藏。
2.对于普通PE,也可以通过内核和外置全打包来map的方法,实现各种部署的统一。这样子,我的全打包统一版立马可以统一win8PE,实现U+V2-zip深度隐藏年外置加载。
作者: sunsea    时间: 2013-5-14 17:43
本帖最后由 sunsea 于 2013-5-14 17:47 编辑

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

但是DDK的资料基本都是英文的
很难看懂
作者: fukystone    时间: 2013-5-14 18:37
sunsea 发表于 2013-5-14 17:43
最近会玩驱动了
有时间看看G4D的map记录放在哪了
然后根据自己的驱动功底

这才是高手啊。
winvblk的作者没动静了
你要是能写个驱动支持win8,那可太好了,造福大众啊
作者: fukystone    时间: 2013-5-14 18:39
红毛樱木 发表于 2013-5-14 14:38
lz最近解决了吗?我前几天又折腾了一番还没搞定。

不折腾了。
winvblock安装在win8x86系统中,无法直接map--直接死掉了……
既然原系统都不好用,更别提pe了
作者: zds1210    时间: 2013-5-14 20:31
fukystone 发表于 2013-5-14 18:39
不折腾了。
winvblock安装在win8x86系统中,无法直接map--直接死掉了……
既然原系统都不好用,更别提p ...

估计是老版本的winvblock驱动不适用于win8版下,改天等官方更新再说。
作者: 2010ihotte    时间: 2013-5-14 20:37
fukystone 发表于 2013-5-14 18:39
不折腾了。
winvblock安装在win8x86系统中,无法直接map--直接死掉了……
既然原系统都不好用,更别提p ...

Win8PE map --mem 蓝屏怎么解决
作者: fukystone    时间: 2013-5-14 21:27
2010ihotte 发表于 2013-5-14 20:37
Win8PE map --mem 蓝屏怎么解决

win8对 winvblk支持的不好。我改用firadisk了,可以直接map,并且native也没问题
作者: 2010ihotte    时间: 2013-5-14 23:08
本帖最后由 2010ihotte 于 2013-5-14 23:10 编辑
fukystone 发表于 2013-5-14 21:27
win8对 winvblk支持的不好。我改用firadisk了,可以直接map,并且native也没问题

我这合盘因为要兼容CD,UD,PXE,firadisk要求NTFS,所以不能直接map。
需要map --mem 加载PEInit.iso ,不过PEInit.iso体积很小,这样通过PEInit.iso加载外置,就可以完美解决大型外置map的弊端;
作者: zhoubin    时间: 2013-5-15 07:07
请教一下楼主:
你的这个
FIRADISK.7z

16.29 KB, 下载次数: 58
firadisk可以用到64位8pe吗?
这里  ([分享] 从ISO文件直接安装各版本Windows?? 看这里http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1)  也有一个
firadisk.img.gz

98.03 KB, 下载次数: 2194

firadisk 0.0.1.30, 通用版本, 支持 32/64位windows安装 和 RamOS
他的firadisk.img.gz里面貌似有64位firadisk驱动,不知怎么用到64位8pe中....
不懂,冒昧地请教一下老大,谢谢了,万分地感谢!!!!
作者: fukystone    时间: 2013-5-15 14:51
zhoubin 发表于 2013-5-15 07:07
请教一下楼主:
你的这个firadisk可以用到64位8pe吗?
这里  ([分享] 从ISO文件直接安装各版本Windows?? 看 ...

理论上其实是一样的。
你可以用64位的firadisk.sys文件替换32位的,其他照我1楼的样子做就可以了。
不过64位win8对驱动是要数字签名的,我记得以前试过改mgrmount.sys,启动的时候必须手工选“禁用数字签名”才能进……
你先试试吧,不行的话等我找个win864位的pe研究一下,主要是数字签名没办法,只能等有高手像破解bcd那样把数字签名破解了……
作者: zhoubin    时间: 2013-5-16 00:09
fukystone 发表于 2013-5-15 14:51
理论上其实是一样的。
你可以用64位的firadisk.sys文件替换32位的,其他照我1楼的样子做就可以了。
不过 ...

报告老大,用你一楼的方法,又折腾了一下64位win8pe,正如你所说,仍然是驱动签名的问题,不能启动。。。。。
再次感谢你的帮忙,谢谢!!!
作者: 2012doberman    时间: 2013-5-16 02:26
zhoubin 发表于 2013-5-16 00:09
报告老大,用你一楼的方法,又折腾了一下64位win8pe,正如你所说,仍然是驱动签名的问题,不能启动。。。 ...

firadisk.cat  8x64

http://www.mediafire.com/?6vvi6io4wtdwi9b
作者: chiannet    时间: 2013-5-16 10:40
围观此帖,期待完整解决方案。
作者: zds1210    时间: 2014-2-24 20:12
个人感觉都已经用到8PE的机子,速度应该不慢才对,所以native PE就没有必要了。再说native内核对新机子兼容性不好。
未来的机子,因要兼容uefi,PE内核打包都不好使,更不要说native再分一二级内核了。
作者: 諾|_訁ゞ    时间: 2014-3-12 18:11
学习了哦




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3