无忧启动论坛

标题: 无需WIN7无需Vboot,另类超简单 在win2003里 装2003 VHD,并启动成功,XP估计也可以 [打印本页]

作者: thomas0769    时间: 2012-2-25 16:46
标题: 无需WIN7无需Vboot,另类超简单 在win2003里 装2003 VHD,并启动成功,XP估计也可以
在坛论里搜索了多位大大的经验,可能我这本本偏门,一直不是这里问题,就是那里兰屏,最后思考了一个方法,试了一次竟然OK,马上写出来分享。

我的硬件,17寸本本,965芯片组,凤凰BIOS,T8300,4G ram ,500G hdd,8600GS独显。OS:win2003 sp2

此方法特点:无需再纠结麻烦的安装过程,无需配置grub4dos安装菜单,有坛友说这种VHD做法和RAMOS差不多,是的,不过使用上比RAMOS要更方便,因为VHD的菜单可以不加-Mem参数,重启后会保存资料,也可以加上-Mem参数当个RAMOS使用,随你喜欢

1.在硬盘里装个2003在C盘(随你用Ghost还是ISO),我是自已用Nlite精简,200M的ISO装的,装完后装FIRADISK或winvblk驱动(随你选一个,我装的是FIRADISK 0.0.1.30),然后其他驱动Office 应用之类的安装,自已看着办了,需求多少就装多少。

2.用论坛里的 水大,马大的PE启动,我也是用2003的PE, PE启动后打开 DiskGen ,3.5 以上版本都ok,我是用3.7的,在DiskGen的“硬盘”-“新建虚拟硬盘文件”-“新建Virtual PC 磁盘文件”,自已填容量,我选的是2.5G(没错,可以小数点),并点选“分配全部空间”,然后新建MBR,格式化为NTFS。

3. 在DiskGen 的“工具”-“克隆分区”,源 :选C盘,目标 :就选VHD的盘符(没盘符,就替VHD加载个盘符)。克隆OK后,卸载VHD,用WinContig.exe整理 VHD。(注:这一步其实相当于用Ghost的分区至分区的克隆功能,不过用DiskGen更简单方便),注:克隆前 需处理C盘注册表,这样VHD启动为C盘

4.在C盘boot.ini 的[operating systems] 下加上 C:\grldr="Win2003 VHD",menu.lst内容为:
title Boot VHD 2003

unhide (hd0,0)
find --set-root /WIN2003.vhd
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
map /WIN2003.vhd (hd0)
map (hd0) (hd1)
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/WIN2003.vhd;\n\0
root (hd0,0)
chainloader /ntldr

总结一下,其实就3步:
1:装个系统在C盘,或直接用现成的系统做VHD。
2:进PE,用DiskGen 建个VHD文件,并把C盘的系统克隆到VHD里。
3:改Boot.ini,建grub4dos菜单。

整个过程不包括装系统的话 ,只要10多分钟,简单快速,不容易出错,一个字,,,爽

VHD 盘符不是C 的问题已经解决了,结合多位网友的意见, 二步可搞定 1)Ghost时 处理注册表  2 )菜单加上 unhide (hd0,0)  这二步都要做,缺一不可

[ 本帖最后由 thomas0769 于 2012-3-10 12:13 编辑 ]
作者: 2011maizi    时间: 2012-2-25 16:59
这个置顶帖
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
里面有解决的方案,最后一个就可以
作者: 2011maizi    时间: 2012-2-25 17:01
把vhd里的文件用diskgen克隆到实体硬盘
修改system等注册文件后再克隆回vhd
作者: thomas0769    时间: 2012-2-25 17:13
标题: 回复 #3 2011maizi 的帖子
这样的话,不如在建VHD前 先改好硬盘C盘的注册表,再克隆回至vhd
作者: wanghh    时间: 2012-2-25 19:23
第三步:用GHOST32以分区到分区对刻方式将分区中的当前系统克隆到VHD文件中。
第四步:若系统是被隐藏后克隆的,须用bootice软件将其“显现”;须将该VHD文件放置在NTFS分区内;若VHD的内部分区格式为FAT32,须用convert h: /fs:ntfs命令将其转换为NTFS分区格式。
第五步:用bootice软件将VHD系统的主引导记录更改为nt5.x(对winxp/win2003系统)或nt6.x(对winvista/win2008/win7/win2008r2系统);分区引记更改为ntldr(对winxp/win2003系统)或bootmgr(对winvista/win2008/win7/win2008r2系统)。对winvista/win2008/win7/win2008r2系统,若原已用Windows 7 Loader 1.9.5软激活的,如激活文件名为XQAPR(或为他名),其分区引导记录须更改为NTLDR但改名为XQAPR。
第六步:在WIN7PE中,打开regedit, HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices,将挂载VHD加载的H:盘对应的两项(其中一项为其ID号)保留,其余项全部删除,导出本机HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices为reg文件保存到某盘某目录下,用记事本打开该reg文件,把内容[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]改成[HKEY_LOCAL_MACHINE\000\MountedDevices]保存备用。如为sys1.reg
第七步:打开regedit,用加载配置单元命令,把 H:\Windows\System32\config\system 挂上HKEY_LOCAL_MACHINE 取名为000;把 HKEY_LOCAL_MACHINE\000\MountedDevices 删除;导入以上保存备用的sys.reg及sys1.reg文件 ,编辑 MountedDevices,删除 \DosDevices\C: ,把\DosDevices\H: 改为 \DosDevices\C:;选中000项,卸载配置单元,退出 regedit。此步即是导入分区系统的注册表,编辑后保存回vhd系统的\Windows\System32\config\的system配置单元中。(此法保证一定可开机,如只删除MountedDevices,可能开机失败;假设不想让系统占用C:盘,而想让系统占用E:盘,那就删除\DosDevices\E:,把\DosDevices\H: 改为 \DosDevices\E: )。

看得一头雾水。
作者: wanghh    时间: 2012-2-25 19:23
发重了。。。。。。。。
作者: ones    时间: 2012-2-25 22:18
楼主的方法,就跟做ramos一样,装系统,装firadisk,克隆整个分区到IMG镜像或者VHD等,编写启动菜单
至于最后一个改盘符问题,就是在克隆分区前修改HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices,论坛很多帖子都有写
至于最后的VHD启动菜单,我对grub4dos的偏移量计算不太了解,也不知道你写的gurb菜单能否应用到其他人做的VHD系统上
作者: zhuoer    时间: 2012-2-26 16:45
这个不是RAMOS么?不用DG,直接用diskpart建VHD可以不?加载VHD速度如何?
作者: thomas0769    时间: 2012-2-26 18:23
标题: 回复 #8 zhuoer 的帖子
无论用 DiskGen  还是 用diskpart建VHD 都一样,加载VHD速度?没测过,但感觉和本地硬盘差不多
作者: 201058177880    时间: 2012-2-28 00:12
zzzzzzzzzccccccccccc
作者: yueyezhan    时间: 2012-2-28 00:34
map iso vhd和firadisk的软盘镜像,软盘镜像分别map到fd0和fd1,装完2003之后盘符就是c了

write (md)0x200+1 [FiraDisk]\nStartOptions=disk,vmem=find:/RAMOS/test.vhd,boot;cdrom,vmem=find:/ramos/test.iso;floppy,vmem=find:/RAMOS/test.img;\n\0
map --mem (md)0x200+16 (99)
find --set-root /RAMOS/test.img
map /RAMOS/test.img (fd0)
map /RAMOS/test.img (fd1)
find --set-root /RAMOS/test.vhd
map /RAMOS/test.vhd (hd0)
find --set-root /RAMOS/test.iso
map /ramos/test.iso (0xff)
map (hd0) (hd1)
map --hook
chainloader (0xff)


title INSTALL_VHDXP 2

write (md)0x200+1 [FiraDisk]\nStartOptions=disk,vmem=find:/RAMOS/test.vhd,boot;cdrom,vmem=find:/ramos/test.iso;\n\0
map --mem (md)0x200+16 (99)
find --set-root /RAMOS/test.vhd
map /RAMOS/test.vhd (hd0)
find --set-root /RAMOS/test.iso
map /ramos/test.iso (0xff)
map (hd0) (hd1)
map --hook
root (hd0,0)
chainloader /ntldr
作者: tylerhu    时间: 2012-2-28 12:57
标题: 回复 #11 yueyezhan 的帖子
上将军的一个疏忽,可给小鸟们一阵折腾。上将军的菜单安装XP无问题,但安装2K3我试了几个版本均提示软盘已破坏而无法安装,后来我将map换成map --mem一次成功。不过得到了上将军的菜单还是很高兴,谢谢了。
作者: thomas0769    时间: 2012-2-28 17:42
标题: 回复 #11 yueyezhan 的帖子
将军 可否解析下原理?
作者: qj_tzy    时间: 2012-2-28 21:33
标题: 回复 #5 wanghh 的帖子
在VHD注册表中将盘符改为C:的方法

在win7pe 右键打开电脑 :管理 :磁盘管理: 右键>连结 vhd 把 F:\winxp.vhd 连上。系统自会分佩盘符 本例( H:)记住,等一下用到。

在本系统(如win7pe)中,打开regedit,导出HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices为注册表文件*.reg,保存到某处如桌面,用记事本打开把内容[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]改成[HKEY_LOCAL_MACHINE\000\MountedDevices]保存备用。

用regedit,把H:\Windows\System32\config\system挂上HKEY_LOCAL_MACHINE取名为000,把HKEY_LOCAL_MACHINE\000\MountedDevices 删除,导入桌面的reg文件,编辑MountedDevices,找到HKEY_LOCAL_MACHINE\000\MountedDevices下的dosdevice\H:,还有一项是数据和它一样的,名字类似于\??\Volume{xxxx-xxxx-xxxx-xxxx}这样的,把这两项留下,其它的全部删除,把\DosDevices\H:改为\DosDevices\C:,然后,点取000,再点文件菜单中的卸载配置单元,把刚修改的保存到H:\Windows\System32\config\system中,退出regedit。(此法保证一定可开机,如只删除MountedDevices,可能开机失败)(若想让系统占用E:,那就改为\DosDevices\E: )

[ 本帖最后由 qj_tzy 于 2012-2-28 21:39 编辑 ]
作者: 健佬    时间: 2012-2-29 02:50
按楼主的方法第一次成功是2003SP2(4G的VHD),随后每次做好各种容量的VHD用WINCONTIG都提示磁盘错误(用的是同一个系统),而用WIN7(32位)随便做了几个各种容量的VHD就都没事。日后有时间再找原因吧。

我自己保持VHD为C盘的简单方法:
1 将硬盘上的C盘设为用GRUB引导,菜单如下:

title [0]  进入硬盘系统
#显示C盘
unhide (hd0,0)
find --set-root --ignore-floppies /ntldr
chainloader /ntldr

title Boot VHD 2003
#隐藏C盘
hide (hd0,0)
find --set-root /WIN2003.vhd
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
map /WIN2003.vhd (hd0)
map (hd0) (hd1)
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/WIN2003.vhd;\n\0
root (hd0,0)
chainloader /ntldr
作者: thomas0769    时间: 2012-2-29 09:51
标题: 回复 #15 健佬 的帖子
这位大哥,用WINCONTIG都提示磁盘错误 的几个VHD是不是容量都大于4G?
作者: 健佬    时间: 2012-2-29 17:13
原帖由 thomas0769 于 2012-2-29 09:51 发表
这位大哥,用WINCONTIG都提示磁盘错误 的几个VHD是不是容量都大于4G?

WINCONTIG没有提示大于4G呀,只提示磁盘错误(用磁盘错误描瞄功能的时候,我将VHD的容量减少到2G和3G的时候也一样的提示),我用WIN7 的VHD容量是6G,WINCONTIG 都没有提示,而且可以正常进入系统。相信是和VHD的容量无关。我的电脑是8GB内存。做RAMOS的时候,XP32,XP64,WIN732,WIN764都能一次成功,唯独WIN2003有时成功,有时失败,而且失败的机会很高。有时间再做多几次看看怎样再说吧,总之现在还未找出失败的根本原因。
作者: fsnhli2003    时间: 2012-2-29 17:21
原帖由 健佬 于 2012-2-29 02:50 发表
按楼主的方法第一次成功是2003SP2(4G的VHD),随后每次做好各种容量的VHD用WINCONTIG都提示磁盘错误(用的是同一个系统),而用WIN7(32位)随便做了几个各种容量的VHD就都没事。日后有时间再找原因吧。

我自 ...

磁盘剩余容量不足?
作者: thomas0769    时间: 2012-2-29 17:26
标题: 回复 #17 健佬 的帖子
提示磁盘错误?那与VHD无关,是硬盘问题了 运行下 CHKDSK 查下
作者: 2010iris    时间: 2012-3-1 02:12
這個 vhd 能否使用子分差?如不能恐怕失去 vhd 最強功用!
作者: 95453818    时间: 2012-3-1 10:17
可以贴个完整的过程贴不!
作者: thomas0769    时间: 2012-3-2 10:22
标题: 回复 #21 95453818 的帖子
一楼的 还不够完整? 
作者: zqjiang    时间: 2012-3-3 15:00
不知道 如何 才能 做成  WIM 格式
作者: wanghh    时间: 2012-3-3 17:07
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)

这句是什么意思?
作者: wanghh    时间: 2012-3-3 17:15
不知为何启动蓝屏?
STOP:C000021a  {Fata]
作者: thomas0769    时间: 2012-3-4 12:33
标题: 回复 #25 wanghh 的帖子
说下你的步骤,我试了XP,也成功了
作者: wanghh    时间: 2012-3-4 15:08
我内存只有3G,VHD2003设2G,不知这样内存够不够用?
作者: wanghh    时间: 2012-3-4 16:25
另我本本有一隐藏分区占用了C盘。XP只能装在另一主分区,不知可有关系?
作者: thomas0769    时间: 2012-3-5 09:59
标题: 回复 #27 wanghh 的帖子
如果内存不够,菜单里 可以不加 --mem 参数,作为本地硬盘使用,这样不占用内存
作者: thomas0769    时间: 2012-3-5 10:00
标题: 回复 #28 wanghh 的帖子
这种情况我没能测试过,测试环境是只有一个主分区
作者: wanghh    时间: 2012-3-5 11:49
原帖由 thomas0769 于 2012-3-5 09:59 发表
如果内存不够,菜单里 可以不加 --mem 参数,作为本地硬盘使用,这样不占用内存


不加 --mem 参数的菜单如何写?谢谢!
作者: wanghh    时间: 2012-3-5 11:50
原帖由 wanghh 于 2012-3-5 11:49 发表


不加 --mem 参数的菜单如何写?谢谢!


这样可以吗?

title Boot VHD 2003  
find --set-root /WIN2003.vhd
map --heads=2 --sectors-per-track=18  (md)0x800+4 (99)
map /WIN2003.vhd (hd0)
map (hd0) (hd1)
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/WIN2003.vhd;\n\0
root (hd0,0)
chainloader /ntldr
作者: 95453818    时间: 2012-3-5 17:25
标题: 回复 #1 thomas0769 的帖子
不知道不用grub直接使用NT6 加载VHD可以不??
作者: 95453818    时间: 2012-3-6 10:23
标题: 回复 #1 thomas0769 的帖子
这个在可以用做ghostXP不??
作者: yueyezhan    时间: 2012-3-7 15:17
原帖由 thomas0769 于 2012-2-28 17:42 发表
将军 可否解析下原理?


我也是知其然不知其所以然,当时装2003的 时候 ,vhd的盘符始终不能为c,后来无意发现分别map 软盘镜像到fd0和fd1,就可以在挂载 iso和vhd安装时 盘符为c
作者: thomas0769    时间: 2012-3-8 08:04
标题: 回复 #32 wanghh 的帖子
是了
map /WIN2003.vhd (hd0) 就是把VHD 模拟成本地硬盘


map  --mem /WIN2003.vhd (hd0) 就是把VHD 整个放入内存 做为 内存盘 就是RAMOS吧
作者: wanghh    时间: 2012-3-8 19:52
原帖由 thomas0769 于 2012-3-8 08:04 发表
是了
map /WIN2003.vhd (hd0) 就是把VHD 模拟成本地硬盘


map  --mem /WIN2003.vhd (hd0) 就是把VHD 整个放入内存 做为 内存盘 就是RAMOS吧


谢谢楼主!可能是我的X200显卡不行。一直蓝屏。
作者: thomas0769    时间: 2012-3-9 10:19
标题: 回复 #37 wanghh 的帖子
把 硬盘模式 设为 基本 IDE 不要选 AHCI ,先不装显卡驱动,试下行不行,这样可以一步步排除故障,找出原因
作者: wanghh    时间: 2012-3-9 14:20
原帖由 thomas0769 于 2012-3-9 10:19 发表
把 硬盘模式 设为 基本 IDE 不要选 AHCI ,先不装显卡驱动,试下行不行,这样可以一步步排除故障,找出原因


谢谢!我再试试看。。。。。
作者: 超级坏蛋    时间: 2012-3-9 17:15
盘符的问题,可以这样解决:VHD只格式化一个主分区,其余的分区不格式化,这样就只有一个分区分配C盘?
作者: thomas0769    时间: 2012-3-12 07:39
标题: 回复 #40 超级坏蛋 的帖子
VHD 一般都是做系统盘,所以多数就一个主分区的
作者: wanghh    时间: 2012-3-13 15:18
不知用winvblock驱动代替firadisk驱动是否可行?
作者: wanghh    时间: 2012-3-13 15:21
因为firadisk驱动对WIN2003兼容性是不很好。
作者: axgshr    时间: 2012-3-16 04:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: haook    时间: 2012-3-16 11:21
标题: 昨天试着按照楼主的方法制作XP.VHD
结果,启动到滚动条,就蓝屏死机:(STOP:0X0000007B)请问是哪里出问题了?谢谢!
作者: ren001    时间: 2012-3-16 19:17
这个法 用于 win7专业版不知可以吗
作者: fly2sky    时间: 2012-4-2 23:50
不错,这个理论上支持XP和2003,是VHD文件需要连续存放,这才是个问题
作者: a2003a    时间: 2012-4-10 10:17
楼主,请问XP按这步骤做,也可以成功吗?
作者: a2003a    时间: 2012-4-11 22:40
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)

write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/WIN2003.vhd;\n\0

这两步我都报错了,郁闷,没成功,请问楼主怎么解决
Error 28:Error while parsing number

今天投到VBOOT阵营,一下就OK了。。。汗
作者: zcl200563    时间: 2012-9-20 14:11
这样的VHD没有vboot驱动不支持差分等功能吧,与IMG只是格式不同吧?
作者: 2012mrp    时间: 2014-3-9 23:18

结果,启动到滚动条,就蓝屏死机:(STOP:0X0000007B)请问是哪里出问题了?谢谢!

FIRADISK 0.018
作者: 2010lizhilong    时间: 2014-3-17 09:45
顶起来!·#!·#学习学习
作者: 湛蓝阴影    时间: 2014-4-4 15:22
我试过在XP下用grub引导VHDXP。的确可行。不过我一直弄不明白
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
这段代码是什么意思
作者: 2010xinup    时间: 2014-4-14 09:11
这个想法是可以有的~~
作者: change_sh    时间: 2014-6-24 08:58
感谢分享
作者: ~z9~    时间: 2014-9-13 16:10
mk
作者: wangjf    时间: 2014-12-2 23:39
这个方法很好




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3