抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD,轻松RAMOS!

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=363198&extra=
抛弃vboot不格盘用grub4dos+firadisk安装Ghost版XP到VHD(已成功)
因为vboot菜单不好弄,兼容性不太好,破解版有些只能识别500M内存,所以不想用vboot。
想在不格式化原有系统盘的情况下,用grub4dos+firadisk安装Ghost版XP到VHD,目前已成功,步骤如下:
1、工具:grub4dos,firadisk驱动包,bootice,深度GhostXP6.2,WIN7PE,WinContig软件,Ghost32.11.0。
2、进入WIN7PE,右击我的电脑→管理→磁盘管理,创建一个固定容量VHD虚拟硬盘文件,以E:\RAMOS\sdxp.vhd为例,在虚拟磁盘上选初始化,并创建简单卷,格式化为ntfs默认格式,同时设为活动分区。vhd容量要足够大,确保大于gho解压后体积+临时解压文件+物理内存*1.5(虚拟页面文件),这里以7G为例,以后可以关闭虚拟内存采用NTFS压缩减小vhd体积。为了适应后面的批处理,这里给vhd虚拟磁盘重新指定一个盘符A:盘。
3、把深度GhostXP6.2.gho镜像文件灌入虚拟磁盘A:盘。根据需要用SkyIAR更新vhd内的驱动防止SRS驱动7B蓝屏。
4、借用论坛的批处理离线注入firadisk驱动到vhd中,注意批处理要做一些修改,修改后内容如下:
@ECHO OFF
ECHO ┌─────────────────────────────────┐
ECHO │请确认: │
ECHO │1:当前为WinPE下; │
ECHO │2:VDM加载新IMG镜像为:A盘; │
ECHO │3:已手动复制系统盘下所有文件到A盘; │
ECHO │ │
ECHO │ 按任意键开始制作... │
ECHO └─────────────────────────────────┘
pause >nul

ECHO ┌─────────────────────────────────┐
ECHO │加载SYSTEM注册表 │
ECHO └─────────────────────────────────┘
reg load HKLM\11 A:\windows\system32\config\system
IF ERRORLEVEL 1 echo 加载注册表失败,按任意键退出。 &pause>nul &exit

ECHO ┌─────────────────────────────────┐
ECHO │获取Enum写入权限 │
ECHO └─────────────────────────────────┘
setacl MACHINE\11\ControlSet001\Enum /registry /grant Everyone /full

ECHO ┌─────────────────────────────────┐
ECHO │导入Firadisk驱动 │
ECHO └─────────────────────────────────┘
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "DeviceDesc" /t REG_SZ /d "磁盘驱动器"
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "Capabilities" /t REG_DWORD /d 40
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "ConfigFlags" /t REG_DWORD /d 0
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "HardwareID" /t REG_MULTI_SZ /d "FIRADISK\Disk\0GenDisk"
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "CompatibleIDs" /t REG_MULTI_SZ /d "GenDisk"
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "Service" /t REG_SZ /d "disk"
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "ClassGUID" /t REG_SZ /d "{4D36E967-E325-11CE-BFC1-08002BE10318}"
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "Class" /t REG_SZ /d "DiskDrive"
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "Mfg" /t REG_SZ /d "(标准磁盘驱动器)"
reg add "HKLM\11\ControlSet001\Enum\FIRADISK\Disk\1&2b2f4947&0&1.1" /f /v "FriendlyName" /t REG_SZ /d "RAM Disk"
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "ConfigFlags" /t REG_DWORD /d 0
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "Legacy" /t REG_DWORD /d 0
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "DeviceReported" /t REG_DWORD /d 1
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "Service" /t REG_SZ /d "firadisk"
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "HardwareID" /t REG_MULTI_SZ /d "root\firadisk"
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "CompatibleIDs" /t REG_MULTI_SZ /d "DETECTEDInternal\firadisk\0DETECTED\firadisk"
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "Capabilities" /t REG_DWORD /d 0
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "ParentIdPrefix" /t REG_SZ /d "1&2b2f4947&0"
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "ClassGUID" /t REG_SZ /d "{4D36E97B-E325-11CE-BFC1-08002BE10318}"
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "Class" /t REG_SZ /d "SCSIAdapter"
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "Mfg" /t REG_SZ /d "Karyonix"
reg add "HKLM\11\ControlSet001\Enum\Root\firadisk\0000" /f /v "DeviceDesc" /t REG_SZ /d "FiraDisk Virtual Disk Enumerator"
reg add "HKLM\11\ControlSet001\Services\firadisk" /f /v "Type" /t REG_DWORD /d 1
reg add "HKLM\11\ControlSet001\Services\firadisk" /f /v "Start" /t REG_DWORD /d 0
reg add "HKLM\11\ControlSet001\Services\firadisk" /f /v "ErrorControl" /t REG_DWORD /d 1
reg add "HKLM\11\ControlSet001\Services\firadisk" /f /v "Tag" /t REG_DWORD /d 21
reg add "HKLM\11\ControlSet001\Services\firadisk" /f /v "ImagePath" /t REG_EXPAND_SZ /d "system32\DRIVERS\firadisk.sys"
reg add "HKLM\11\ControlSet001\Services\firadisk" /f /v "DisplayName" /t REG_SZ /d "FiraDisk Virtual Disk Driver"
reg add "HKLM\11\ControlSet001\Services\firadisk" /f /v "Group" /t REG_SZ /d "Boot Bus Extender"
reg add "HKLM\11\ControlSet001\Services\firadisk\Parameters" /f /v "PnP" /t REG_DWORD /d 1
reg add "HKLM\11\ControlSet001\Services\firadisk\Security" /f /v "Security" /t REG_BINARY /d 01001480b8000000c4000000140000003000000002001c000100000002801400ff010f00010100000000000100000000020088000600000000001400fd01020001010000000000051200000000001800ff010f0001020000000000052000000020020000000014008d010200010100000000000504000000000014008d010200010100000000000506000000000014000001000001010000000000050b00000000001800fd01020001020000000000052000000023020000010100000000000512000000010100000000000512000000

ECHO ┌─────────────────────────────────┐
ECHO │恢复Enum只读权限 │
ECHO └─────────────────────────────────┘
setacl MACHINE\11\ControlSet001\Enum /registry /set Everyone /read

ECHO ┌─────────────────────────────────┐
ECHO │内存盘设为C盘 │
ECHO └─────────────────────────────────┘
reg add "HKLM\11\MountedDevices" /f /v "\DosDevices\C:" /t REG_BINARY /d fc57b2d94e68cb4dab7903cfa2f6b750

ECHO ┌─────────────────────────────────┐
ECHO │卸载注册表 │
ECHO └─────────────────────────────────┘
reg unload HKLM\11
IF ERRORLEVEL 1 echo 卸载注册表失败,按任意键退出。 &pause>nul &exit

ECHO ┌─────────────────────────────────┐
ECHO │复制驱动文件Firadisk.sys到drivers目录 │
ECHO └─────────────────────────────────┘
copy .\file\firadisk.sys A:\WINDOWS\system32\drivers\ /y

ECHO ┌─────────────────────────────────┐
ECHO │制作完毕,请仔细参看是否有出错,按任意键退出... │
ECHO └─────────────────────────────────┘
pause >nul
5、成功后从系统的磁盘管理中分离虚拟磁盘文件E:\RAMOS\sdxp.vhd,再用wincontig整理下E:\RAMOS\sdxp.vhd和firadisk.img。
6、用bootice把现有系统MBR修改为grub4dos,menu.lst菜单如下:
title SDVHDXP Install
password=123
find --set-root /RAMOS/sdxp.vhd
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
map /RAMOS/firadisk.img (fd0)
map /RAMOS/firadisk.img (fd1)
map /RAMOS/sdxp.vhd (hd0)
map (hd0) (hd1)
map --e820cycles=-1
#进入grub4dos后按e键按要求修改为1-4防止蓝屏。
map --harddrives=1
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/RAMOS/sdxp.vhd,boot;floppy,vmem=find:/RAMOS/firadisk.img;\n\0
chainloader  (hd0,0)/ntldr

title SDVHDXP Modify
password=123
find --set-root /RAMOS/sdxp.vhd
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
map /RAMOS/sdxp.vhd (hd0)
map (hd0) (hd1)
map --e820cycles=-1
#进入grub4dos后按e键按要求修改为1-4防止蓝屏。
map --harddrives=1
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/RAMOS/sdxp.vhd;\n\0
chainloader  (hd0,0)/ntldr

title VHDXP RAMOS
find --set-root /RAMOS/sdxp.vhd
map --mem /RAMOS/sdxp.vhd (hd0)
#map (hd0) (hd1)
map --e820cycles=-1
map --hook
chainloader  (hd0,0)/ntldr
7、选择第一个菜单SDVHDXP Install正常安装好GHOSTXP。(该菜单可多次运行直至安装完毕)
8、选择第二个菜单SDVHDXP Modify正常启动VHDXP修改模式。
9、选择第三个菜单进入SDVHDXP RAMOS。

10、顺便说下:

①第一个菜单可以反复运行直至成功进入vhdxp,然后用第二个菜单,他们是有区别的,第一个菜单firadisk在系统中被识别为Vmem floppy软盘,只能在前期使用,第二个菜单被识别为硬盘,才能正常驱动。

②因为ghost的克隆有个附带的功能就是ghost到vhd之后,vhd绝对是连续存储的(除非盘上确实找不到连续空间存储这个vhd),执行批处理只是改动了vhd内的C:\WINDOWS\system32\config\system文件,不会影响vhd文件连续性,所以wincontig整理E:\RAMOS\sdxp.vhd不一定必要,而grub4dos0.4.6a已经支持部分不连续的map了。
③采用的是用bootice直接修改主硬盘MBR为Grub4dos的办法,所以不论原系统是什么系统,xp/win7/win8,甚至是没有系统,只要BIOS是legacy BIOS,只要根目录有grldr+menu.lst,都可以用这个方法。当然如果你不喜欢Grub4dos为第一引导,你可以用ntldr/bootmgr作为第一引导,修改boot.ini或者BCD菜单来引导grub4dos。

④双显卡切换的电脑安装ghostxp很容易遭遇EA蓝屏,可以在BIOS中尝试关闭双显卡切换功能。
总之,教程是死的人是活的,根据需要变通吧。
这样子不用格式化原来的系统盘,仅仅用Grub4dos+firadisk就搞定了VHDXP,把XP用ghost快速灌入vhd,安装,修改,内存系统全搞定,简单方便快捷,再也不用难用的vboot了!

深度ghostxp6.2精简版:http://yunpan.cn/cJIdUtFzqsJyJ (提取码:4d17)

上一篇:Java集合源码阅读之HashMap


下一篇:ArrayList类源码浅析(一)