|
声明:本教程是在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 编辑 ] |
|