无忧启动论坛

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

[分享] 推荐用 imdisk 处理标准 IMG 镜像——给 03PE 加入 imdisk 和扩大 PE 镜像大小

  [复制链接]
跳转到指定楼层
1#
发表于 2014-3-13 22:20:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2013_top398 于 2014-3-13 22:22 编辑

一、加入 imdisk
1、将 WINPE.IM_ 用 7-zip 或类似工具解开其中的 WINPE.IMG 到 r:(这是我的内存工作和缓存盘)。
2、用 imdisk 挂载 WINPE.IMG 到 z: 盘。
3、从 imdisk 安装文件中提取出 x86 版的 IMDISK.EXE、IMDISK.CPL、IMDISK.SYS、IMDSKSVC.EXE 4个文件,将 IMDISK.SYS 放到 z:\wxpe\system32\drivers 里,其他3个放到 z:\wxpe\system32 里。
4、复制 z:\WXPE\SYSTEM32\SETUPREG.HIV 到 r:\,复制 z:\WXPE\SYSTEM32\CONFIG\SOFTWARE 到 r:\,这是为了避免修改注册表产生一堆垃圾文件。
5、regedit 挂载 setupreg.hiv 为 pe-sys,SOFTWARE 为 pe-soft,导入以下注册表:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\pe-sys\ControlSet001\Enum\Root\LEGACY_IMDISK\0000]
  3. "Service"="ImDisk"
  4. "Legacy"=dword:00000001
  5. "ConfigFlags"=dword:00000000
  6. "Class"="LegacyDriver"
  7. "ClassGUID"="{8ECC055D-047F-11D1-A537-0000F8753ED1}"
  8. "DeviceDesc"="ImDisk Virtual Disk Driver"
  9. "Capabilities"=dword:00000000

  10. [HKEY_LOCAL_MACHINE\pe-sys\ControlSet001\Enum\Root\LEGACY_IMDISK\0000\Control]
  11. "*NewlyCreated*"=dword:00000000
  12. "ActiveService"="ImDisk"

  13. [HKEY_LOCAL_MACHINE\pe-sys\ControlSet001\services\ImDisk]
  14. "Type"=dword:00000001
  15. "Start"=dword:00000003
  16. "ErrorControl"=dword:00000000
  17. "ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  18.   52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,6d,00,64,00,69,00,73,00,6b,\
  19.   00,2e,00,73,00,79,00,73,00,00,00
  20. "DisplayName"="ImDisk Virtual Disk Driver"
  21. "Description"="Disk emulation driver"

  22. [HKEY_LOCAL_MACHINE\pe-sys\ControlSet001\services\ImDisk\Enum]
  23. "0"="Root\\LEGACY_IMDISK\\0000"
  24. "Count"=dword:00000001
  25. "NextInstance"=dword:00000001

  26. [HKEY_LOCAL_MACHINE\pe-sys\ControlSet001\services\ImDskSvc]
  27. "Type"=dword:00000010
  28. "Start"=dword:00000003
  29. "ErrorControl"=dword:00000000
  30. "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
  31.   74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,\
  32.   00,6d,00,64,00,73,00,6b,00,73,00,76,00,63,00,2e,00,65,00,78,00,65,00,00,00
  33. "DisplayName"="ImDisk Virtual Disk Driver Helper"
  34. "ObjectName"="LocalSystem"
  35. "Description"="Helper service for ImDisk Virtual Disk Driver."

  36. [HKEY_LOCAL_MACHINE\pe-soft\Classes\*\shell\ImDiskMountFile]
  37. @="加载为 ImDisk 虚拟盘(&M)"
  38. [HKEY_LOCAL_MACHINE\pe-soft\Classes\*\shell\ImDiskMountFile\command]
  39. @="rundll32.exe imdisk.cpl,RunDLL_MountFile %L"

  40. [HKEY_LOCAL_MACHINE\pe-soft\Classes\Drive\shell\ImDiskSaveImage]
  41. @="保存磁盘内容为镜像文件(&S)"
  42. [HKEY_LOCAL_MACHINE\pe-soft\Classes\Drive\shell\ImDiskSaveImage\command]
  43. @="rundll32.exe imdisk.cpl,RunDLL_SaveImageFile %L"

  44. [HKEY_LOCAL_MACHINE\pe-soft\Classes\Drive\shell\ImDiskUnmount]
  45. @="卸载 ImDisk 虚拟盘(&U)"
  46. [HKEY_LOCAL_MACHINE\pe-soft\Classes\Drive\shell\ImDiskUnmount\command]
  47. @="rundll32.exe imdisk.cpl,RunDLL_RemoveDevice %L"
复制代码

6、卸载 pe-sys、pe-soft,将修改后的 SETUPREG.HIV 和 SOFTWARE 复制回原处覆盖原文件。
7、imdisk 卸载 z:,更新 WINPE.IMG。
8、控制台运行:
  1. d:\app\makecab.exe /D compressiontype=lzx /D compressionmemory=21 WINPE.IMG
复制代码

9、将生成的 WINPE.IM_ 拿到虚拟机里测试,启动成功,imdisk 各项功能正常。

二、扩大 WXPE.IMG 可用空间
原 WINPE.IMG 大小为70.7MB,基本上填满了,再加入稍微大些的程序就会空间不够。于是动手给它扩成128MB。
控制台输入:
  1. r:
  2. imdisk -a -m z: -s 128M -p "/fs:fat32 /q /y /v:WXPE" -f r:\abc.img
  3. imdisk -a -m y: -o ro -f r:\WINPE.IMG
  4. xcopy y:\WXPE z:\WXPE /e/i/y
  5. imdisk -d -m z:
  6. imdisk -d -m y:
  7. ren winpe.img winpe.img.old
  8. ren abc.img WINPE.IMG
  9. del WINPE.IM_
  10. d:\app\makecab.exe /D compressiontype=lzx /D compressionmemory=21 WINPE.IMG
复制代码

现在已经得到了一个新的 WINPE.IM_,其内部可用空间有50多M,而且由于未用空间填充为0,压缩后大小和原来的基本一样。进虚拟机测试,启动成功。

虽然说这些东西并不新鲜,自己也是没有弄过,所以操练一下。顺便试验一下 imdisk 对标准 IMG 镜像的支持。感觉 imdisk 挂载处理标准 IMG 是很给力的。借此也给一个新贴的楼主提个醒。

评分

参与人数 1无忧币 +5 收起 理由
天使的魔翼 + 5 很给力!

查看全部评分

2#
发表于 2014-3-13 22:41:46 来自手机 | 只看该作者
谢谢楼主分享技术…
回复

使用道具 举报

3#
发表于 2014-3-14 08:33:38 | 只看该作者
谢谢楼主的分享
回复

使用道具 举报

4#
 楼主| 发表于 2014-3-14 10:59:19 | 只看该作者
还要提一下,Imdisk 本身建立的虚拟硬盘,默认是没有MBR的,但是手动保存(即在驱动器上右键保存镜像)时,是可以选择有无MBR的,如果有MBR,镜像前面附加32256字节的信息,也就是512字节*63扇区,传统硬盘一条磁道的容量,0扇区就是 MBR。这使得 imdisk 生成的 IMG 镜像兼容性更好。
回复

使用道具 举报

5#
 楼主| 发表于 2014-3-14 11:02:29 | 只看该作者
对于这种附加了MBR信息的IMG镜像,GUI方式(文件名上右键挂载)可以自动识别,但命令行必须这样:
  1. imdisk -a -m z: -b 63b -f abc.img
复制代码

-b 63b 指定镜像文件偏移为63个块(1块=512字节)
回复

使用道具 举报

6#
发表于 2014-3-14 15:48:07 | 只看该作者
楼主的这个方法还是蛮不错的值得分享啊。
回复

使用道具 举报

7#
发表于 2014-3-16 09:41:10 | 只看该作者
绝对是个好工具,谢楼主提醒。
回复

使用道具 举报

8#
发表于 2014-3-18 07:35:10 | 只看该作者
好方法,值得一试,谢谢
回复

使用道具 举报

9#
发表于 2014-3-20 10:02:38 | 只看该作者
很好很强大很实用!谢谢楼主…
回复

使用道具 举报

10#
发表于 2014-3-21 11:45:45 | 只看该作者
谢谢 分享 ,自己认真学习一下。
回复

使用道具 举报

11#
发表于 2014-3-22 22:31:51 | 只看该作者
休息楼主分享,需要仔细学习一下。

点评

谢谢,楼主确实是要“休息”一下了。  详情 回复 发表于 2014-3-22 22:53
回复

使用道具 举报

12#
 楼主| 发表于 2014-3-22 22:53:35 | 只看该作者
2010cmgb 发表于 2014-3-22 22:31
休息楼主分享,需要仔细学习一下。

谢谢,楼主确实是要“休息”一下了。
回复

使用道具 举报

13#
发表于 2014-3-22 22:59:10 | 只看该作者
抱歉打错拉,是谢谢。
回复

使用道具 举报

14#
发表于 2015-10-23 12:22:58 | 只看该作者
谢谢楼主分享技术…
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-24 15:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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