|
本帖最后由 2012wuzhong 于 2016-8-23 15:45 编辑
win7之后使用“克隆附体”系统启动到smss以后会出现f4蓝屏,对于win7系统可以通过修改smss.exe和win32k.sys两个文件解决此问题。win8之后此法一直没有尝试成功。
经过多次试错终于找到了蓝屏根源,KBDUS.DLL这个文件必须实体存在于\SystemRoot\system32内。
解决问题的一个思路是:将primo-io内存盘\windows\system32\KBDUS.DLL链接到\SystemRoot\system32\KBDUS.DLL。
一个win7x86实施例:
盘符设置:
┌──────────┬─────────┬─────────┐
虚拟盘 克隆附体前 克隆附体后
├──────────┼─────────┼─────────┤
img系统盘 C
├──────────┼─────────┼─────────┤
primo-io主体盘 R C
└──────────┴─────────┴─────────┘
primo内存盘://io模式,盘符为"R",可选ntfs压缩
├─ProgramData
├─users
├─Program Files
├─temp
└─windows//其中ntdll.dll、KBDUS.DLL、ntkrnlpa.exe分别链接到\SystemRoot\system32相应文件
img系统盘://分区映像格式,ntfs压缩,使用宇森WIN7LITE7.636,大小750M左右(精简后为300M左右)
└─windows
├─fbwf.cfg //fbwf配置文件,可以不用
├─Fonts,inf //实体目录
├─system32
├─CodeIntegrity,config,drivers,zh-CN //实体目录
├─其它目录,均junction到R:\windows\system32相应目录
└─其它文件,可精简
└─其它目录,均junction到R:\windows相应目录
3、注册表设置://将下面内容拷入到一个bat文件执行
rem 克隆和附体
reg add "hklm\system\ControlSet001\Control\Session Manager\DOS Devices" /v C: /d \??\R: /f >nul 2>nul
4、bcd设置
用bootice新建一个wim启动项(ramdisk),设备文件指向img文件。
切到高级编辑模式,\device objects\{ramdiskoptions}删掉"sdi path"
5、"\SystemRoot\system32"文件链接
1.任意分区创建Root目录,如
md r:\Root
2.设primo内存盘的盘符为z,原来的文件删除或改名
mklink z:\windows\system32\ntdll.dll r:\Root\system32\ntdll.dll
mklink z:\windows\system32\KBDUS.DLL r:\Root\system32\KBDUS.DLL
mklink z:\windows\system32\ntkrnlpa.exe r:\Root\system32\ntkrnlpa.exe
3.用dg“扇区编辑”找到该文件,右键-扇区跳转-NTFS文件记录,向下翻页找到“\??\r:\Root\system32”,将前面的“\??\r:\”改成“\System”,保存
4.确认:将z:\windows\system32\KBDUS.DLL复制到其它地方,看一下该文件是否正常。
说明:
1、注意img文件不能为硬盘映像格式,否则启动出错。
2、如果bcd勾选winpe,系统盘符则为X。注册表设置需要修改为
reg add "hklm\system\ControlSet001\Control\Session Manager\DOS Devices" /v X: /d \??\R: /f >nul 2>nul
3、通知区域图标会丢失,解决办法:将R:\windows\explorer.exe链接到\SystemRoot\explorer.exe。
|
评分
-
查看全部评分
|