无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)虚位以待广告联系 QQ:184822951 微信:wuyouceo
查看: 3041|回复: 5

[原创] 用SoftPerfect驱动构建wes7x64-ramos

[复制链接]
发表于 2014-6-24 19:02:44 | 显示全部楼层 |阅读模式
基本原理来自于“primo-io模式wes7x64-ramos[ms双启动镜像]”,http://user.qzone.qq.com/1543764927/blog/1402486319
与primo相比,SoftPerfect生成内存盘明显要迟,在系统将part.img作为系统盘时,主体盘还未建立,此时"\windows\system32"不能直接链接到主体盘,需要一个中转目录,该中转目录的内容应随着附体而改变,如"c:\sys32"。

附体前:系统文件来自于系统盘
┌────────────────┬────────────────┐
  part.img系统盘                          此时"C"为系统盘
├─────────────────────────────────┤
  \windows\system32        --> \sys32 (实体目录)
├─────────────────────────────────┤
  \windows\SysWOW64     --> \WOW64 (实体目录)
└─────────────────────────────────┘
附体后:系统文件来自于主体盘
┌────────────────┬────────────────┬──────────────────────┐
  part.img系统盘                          主体盘附体"C"盘                    SoftPerfect主体盘
├────────────────────────────────────────────────────────┤
  \windows\system32       --> \sys32 (junction)          --> \windows\system32       
├────────────────────────────────────────────────────────┤
  \windows\SysWOW64    --> \WOW64 (junction)      --> \windows\SysWOW64
└────────────────────────────────────────────────────────┘

1、安装驱动并配置内存盘:
boot.wim:在friend8179共享的native文件列表基础上补足以下文件:
\Windows\System32\CodeIntegrity\driver.stl
\Windows\System32\winload.exe

SoftPerfect内存盘://io模式,盘符为"b",克隆附体系统盘"c"
├─users
├─ProgramData
├─Program Files
├─Program Files (x86)
├─WOW64(junction到"c:\windows\sysWOW64",指向主体盘)
├─sys32(junction到"c:\windows\system32",指向主体盘)
└─windows
    │win32k.sys(修改),所有实体文件和目录
    └─system23(junction到"w:\windows\system23",指向系统盘,session相关文件需要放置在系统盘上,否则f4蓝屏)

part.img内存盘://大小64M就够了,盘符为"c",克隆后盘符为"w"
├─WOW64(ntdll.dll,缺少无法运行32位程序)
├─sys32
      │ntdll.dll,apisetschema.dll,smss.exe(修改)
     ├─CodeIntegrity目录(包括bootcat.cache)
     └─drivers(加载win32k.sys之前的驱动:"start=1"以及一些"start=3")
└─windows
    ├─fonts(junction到"b:\windows\fonts")
    ├─inf(junction到"b:\windows\inf")
    ├─system32(junction到"c:\sys32",附体前指向系统盘,附体后指向主体盘)
    ├─SysWOW64(junction到"c:\WOW64",附体前指向系统盘,附体后指向主体盘)
    └─system23(session启动所需文件)

2、注册表设置://bat文件
rem 克隆附体"c"
reg add "hklm\system\ControlSet001\Control\Session Manager\DOS Devices" /v C: /d \??\B: /f >nul 2>nul
rem 克隆系统盘为"w"
reg add "hklm\system\ControlSet001\Control\Session Manager\DOS Devices" /v W: /d \Device\Ramdisk{d9b257fc-684e-4dcb-ab79-03cfa2f6b750} /f >nul 2>nul
rem 非winpe方式启动,fbwf需要如下修改配置
reg add hklm\system\ControlSet001\Services\Fbwf /v EnabledOnAllSkus /t REG_DWORD /d 1 /f >nul 2>nul

3、使用sdi工具,将img文件放入到sdi文件part区。
sdimgr wes7x64.sdi /new
sdimgr wes7x64.sdi /import:part,0,part.img

4、用winhex修改:
wes7x64.sdi偏移0x440处修改为"57494d"(字符"WIM"),0x450处4个字节=0x410处4个字节+0x418处4个字节,注意低位在前。
修改smss.exe,按"Unicode"方式搜寻字符"\system32",偏移0x3e7a处,修改为"System23".
修改win32k.sys,按"Unicode"方式搜寻字符"\system32";偏移0x2b012a,修改为"System23"

5、启用testsigning模式需要使用"dseo13b.exe"处理win32k.sys及其它相关驱动的数字签名。

其它:
1、需要注意驱动文件的更新需要牵涉到3个镜像文件:boot.wim、sdi[part区中的part.img]、SoftPerfect内存盘。
2、system文件的更新,有效位置在boot.wim文件中。
3、主体盘也可以使用其它的ramdisk驱动,如:imdisk、QSoft RAMDisk。需要注意的是:"start=1",相应的驱动文件需要位于硬盘上。

发表于 2014-6-24 23:20:58 | 显示全部楼层
好东西  慢慢研究  
回复

使用道具 举报

发表于 2014-6-25 18:46:49 | 显示全部楼层
大神又出新作了。
另外,softperfect也有scsi模式,不过很可惜,它的镜像文件是自己的svi格式,不可以编辑,做不了单镜像启动了
回复

使用道具 举报

发表于 2014-6-25 19:13:28 | 显示全部楼层
大神新作  收藏慢慢研究
回复

使用道具 举报

发表于 2014-6-26 14:08:13 | 显示全部楼层
大神只讲理论,不出成品啊
回复

使用道具 举报

发表于 2014-6-26 17:28:14 来自手机 | 显示全部楼层
技术贴前排留名!!!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2020-9-24 13:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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