无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 13004|回复: 19
打印 上一主题 下一主题

[求助] 如何用grub4dos虚拟winvblock驱动来安装xp.vhd

[复制链接]
跳转到指定楼层
1#
发表于 2013-1-14 12:54:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用grub4dos虚拟winvblock驱动为软驱,虚拟xp sp3(msdn原版)镜像为光驱,虚拟xp.vhd为硬盘。
菜单如下所写
title INSTALL_VHDXP1
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
find --set-root /RAMOS/winvblock.img
map /RAMOS/winvblock.img (fd0)
find --set-root /RAMOS/xp.vhd
map /RAMOS/xp.vhd (hd0)
find --set-root /MSDN/XPSP3.iso
map /MSDN/XPSP3.iso (0xff)
map (hd0) (hd1)
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/RAMOS/xp.vhd,boot;cdrom,vmem=find:/MSDN/XPSP3.iso;floppy,vmem=find:/RAMOS/winvblock.img;\n\0
chainloader (0xff)

安装失败,然后改为如下
title Windows @VHD Step 1 : Boot from ISO, with Virtual CD+Floppy
find --set-root /RAMOS/xp.vhd
map --heads=255 --sectors-per-track=63 /RAMOS/xp.vhd (hd0)
find --set-root /MSDN/XPSP3.iso
map /MSDN/XPSP3.iso (0xff)
find --set-root /RAMOS/winvblock.img
map /RAMOS/winvblock.img (fd0)
map --harddrives=1
map --hook
chainloader (0xff)
安装失败,错误是在复制xp.iso文件到硬盘时发生的,也就是说安装时按f6加载winvblock驱动、然后按f8接受许可协议、然后选择安装磁盘、再然后格式化磁盘、这些都没问题。就是在复制文件开始时出现错误,错误提示如下

[ 本帖最后由 2011董海江 于 2013-1-14 13:10 编辑 ]

1.jpg (188.14 KB, 下载次数: 108)

1.jpg

2.jpg (168.51 KB, 下载次数: 122)

2.jpg
2#
 楼主| 发表于 2013-1-14 13:04:36 | 只看该作者
winvblock.img文件已上传到网盘,大家帮我看看是不是winvblock.img的问题
http://pan.baidu.com/share/link?shareid=255743&uk=352481157

还有如果菜单有问题希望大家指正,谢谢了。
回复

使用道具 举报

3#
发表于 2013-1-14 15:36:14 | 只看该作者
在 map /RAMOS/winvblock.img (fd0) 后加多一句 map /RAMOS/winvblock.img (fd1) 试试。如果不行,再将 WINNT.SIF 中的 OemPreinstall="Yes" 改成 OemPreinstall="No" 试试。
回复

使用道具 举报

4#
 楼主| 发表于 2013-1-14 16:58:56 | 只看该作者
原帖由 xianglang 于 2013-1-14 15:36 发表
在 map /RAMOS/winvblock.img (fd0) 后加多一句 map /RAMOS/winvblock.img (fd1) 试试。

问提依旧,第二种方法没有试
回复

使用道具 举报

5#
发表于 2013-1-14 18:42:33 | 只看该作者
原帖由 2011董海江 于 2013-1-14 13:04 发表
winvblock.img文件已上传到网盘,大家帮我看看是不是winvblock.img的问题
http://pan.baidu.com/share/link?shareid=255743&uk=352481157

还有如果菜单有问题希望大家指正,谢谢了。

帮你改了改,试试看吧
http://pan.baidu.com/share/link?shareid=211955&uk=2098012847
回复

使用道具 举报

6#
 楼主| 发表于 2013-1-14 21:44:02 | 只看该作者
原帖由 xianglang 于 2013-1-14 15:36 发表
如果不行,再将 WINNT.SIF 中的 OemPreinstall="Yes" 改成 OemPreinstall="No" 试试。


我刚才看了一下我的xp.iso,由于是msdn原版,所以没有WINNT.SIF。如果哪位前辈会写麻烦给写一个呗。
还有 527104427前辈修改的winvblock.img也不行。我觉得是不是启动菜单的问题呢?
回复

使用道具 举报

7#
发表于 2013-1-15 02:13:27 | 只看该作者

呵呵,我有这方面的资料,参考下吧:

首先就是传说中的WINNT.SIF文件:
文件位置:\I386\WINNT.SIF
文件内容:
;SetupMgrTag
[Data]
    AutoPartition=0
    MsDosInitiated="0"
    UnattendedInstall="Yes"

[Unattended]
    UnattendMode=FullUnattended
    OemSkipEula=Yes
    OemPreinstall=No
    TargetPath=\WINDOWS
    UnattendSwitch="yes"

[GuiUnattended]
    AdminPassword=*
    EncryptedAdminPassword=NO
    OEMSkipRegional=1
    OemSkipWelcome=1
    TimeZone=210

[UserData]
    ProductKey=*****-*****-*****-*****-*****
    FullName="GameBoy"
    OrgName="肇庆学院"
    ComputerName=Chen-PC

[TapiLocation]
    CountryCode=86

;[GuiRunOnce]
;    Command0=c:\oem.exe

[Identification]
    JoinWorkgroup=WORKGROUP

[Networking]
    InstallDefaultComponents=Yes

;文件结束。
产品密匙自己上网找个可以用的就行了,自己把那些星号填充就OK;
关于winvblock.img这个文件,其实里面是集合了很多个驱动。一般地,如果使用原始的XPISO安装镜像,那么我们就至少需要ACHI驱动和winvblock、firadisk中的一个,共两个驱动。
当初为了免除麻烦,我就把这些驱动都合在一起,所以我们只需要加载这个IMG镜像往A盘就可以了,否则又要加载A盘,又要加载B盘很容易出错!例如在AMD的机子里面,你首先选择AMD驱动,然后再选择winvblock/firadisk。这时候XP光盘就会加载这两个驱动,然后就可以往下继续了。

存放在硬盘上的IMG/ISO文件必须连续,否则map 不带--mem参数的话将被拒绝。

如何把winnt.sif文件集合到ISO镜像里面呢?,用UltraISO,添加WINNT.SIF到I386这个文件夹里面,然后直接另存为就OK了。

假设现在在D盘存放连续的XP.IMG文件(4GB)(必须连续!),
D盘XP.ISO文件 (700+MB)(内存不大于2GB的电脑也必须连续)(内存不够大就没有办法map --men,也就需要连续)
D盘ACHI.IMG(即winvblock.img);

我是这样引导他们启动的:
重启电脑,或许你已经把GRUB4DOS安装到MBR了。我也不多说废话,进入grub4dos,
然后:
map (hd0,2)/XP.IMG (hd1)
map --mem (hd0,2)/XP.ISO (0xff)
(内存不大于2GB的话就不加--mem参数),即:map (hd0,2)/XP.ISO (0xff)
map --men (hd0,2)/ACHI.IMG (fd0)
map --hook
map (hd0) (hd1)
map (hd1) (hd0)
map --rehook
上面是交换硬盘位置,不明白自己搜索就懂了;
chainloader (0xff)
boot
此时,应该启动XP安装程序了,F6之后记得选上自己的ACHI和winvblock驱动,不清楚ACHI驱动,例如英特尔的主板就真的很难选,这个时候查看ACHI硬件ID,然后打开winvblock.img中的txtsetup.oem,然后看看这个硬件ID是对应哪个驱动就应该明了了。(我觉得有必要先做这一步)

然后的,看你了,我也不知道能成功不。
最后不同的机子可能会有点不同,请熟悉grub4dos这个软件的功能(例如ls 了解当前硬盘和光盘的数目什么的),上面的我是凭记忆打出来的,不保证没有错漏。
自己加油囖。
我等下或许用我的电脑试试看,不过从连续的XP.IMG文件创建直到achi.img文件的创建估计要花我不少时间呢。最近很久没玩GRUB4DOS,因为折腾Linux去了呢~~~
回复

使用道具 举报

8#
发表于 2013-1-15 02:22:49 | 只看该作者
回复

使用道具 举报

9#
发表于 2013-1-15 04:06:33 | 只看该作者
下载那位网友提供的winvblock.img,我是利用移动硬盘进入grub4dos的,我的gun grub2 无法启动grub4dos,总是提示说:MBR HELPER MISSING 。
看图不文字了:

第四张图,说那个硬盘无法读取。。我决定删掉这个XP.ING,重新用UltraISO新建然后另存为。。。然后再contig令其连续。。。再按照这个步骤试多次。。。

图片地址:http://weibo.com/1770628181/zevGBb48f(临时用微博发得图片。。。。。。。不是卖广告了。)
回复

使用道具 举报

10#
发表于 2013-1-15 04:52:22 | 只看该作者
我删掉XP.IMG,重新创建一个,终于使得XP安装程序识别了这个虚拟的硬盘,,但是文件复制完毕后,XP安装程序把他的NTLDR和MBR写到我笔记本内部的硬盘上。然后无论我怎样调转三个硬盘的顺序(hd0,1,2)。然后在启动NTLDR,都提示说:erroring loading operator system/miss operator、或者是提示说“因计算机磁盘硬件配置问题,Windows 无法启动。不能读取所选的引导盘。。。。”前两个原因是没有把笔记本硬盘映射为(hd0)导致的。而第三个原因,会不会是其实NTLDR根本就不支持GRUB4DOS映射出来的硬盘呢?这会不会直接就判我死刑了???另外由这个安装过程中生成了boot.ini我贴出来,希望大家能够分析分析,看看能不能够帮NTLDR正确地启动躺在虚拟磁盘XP.IMG上的Windows XP。

boot.ini信息:

[boot loader]
timeout=1
default=signature(4dbf36cc)disk(2)rdisk(0)partition(1)\WINDOWS
[operating systems]
signature(4dbf36cc)disk(2)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\ = "在驱动器 D 上有无法识别的操作系统。"

第六行不用管。这个硬盘路径表示写法我之前还真没见过,4dbf36cc恐怕是全局标识符吧。。这有点复杂了。。
回复

使用道具 举报

11#
发表于 2013-1-15 14:54:46 | 只看该作者

行了!!

1、首先安装grub4dosMBR到本地磁盘MBR,
2、准备楼上网友修改好的winvblock.img、XP.ISO、XP.img(文件文是区分大小写的,我这
里不区分了,请大家以自己实际情况而定)
注:xp.img,我是用UtrlISO新建一个2GB的硬盘镜像,然后另存为的得到的,另外,还必
须使用contigx:\xp.img使其连续。(大家可以改用其他方法,不过我就不知道能否被XP安
装程序识别)
3、重启进入grub4dos,键入如下命令:
map(hd0,x)/xp.img(hd0)
map--mem(hd0,x)/xp.iso(0xff)
map--mem(hd0,x)/winvblock.img(fd0)
map(hd0)(hd1)
map--hook
chainloader(0xff)
boot
在此之后,在F6驱动选择页面,按S选择winvblock(不能选择firadisk)驱动,然后返回
后再次按S,安装你的ACHI驱动(amd或者Intel等等)
这时,按Enter继续:
到了分区阶段,你会发现有两个硬盘了:
第一个硬盘就是虚拟映射出来的硬盘,如果上面有至少一个主分区的话,那么这个分区即使
C盘(这是我们所希望的,如果不是等下再说明)
然后第二个硬盘,即我们真实的硬盘,这个硬盘上第一个激活的主分区就会被分区D盘符。
此时,我们就必须选择我们虚拟出来的那个硬盘,删除它上面所有的分区(一般地,就只有
一个C盘而已)(必须这么做,否则就会出现10楼的情况,无法启动),然后重新创建一个
分区,它又被分配C盘符了。然后往里面安装XP吧!
安装完毕后,重启。
注:此时XP安装程序应该把它的MBR安装到虚拟磁盘上,而不是覆盖你的GRUB4DOS
MBR。
重启后进入了GRUB4DOS,然后再次执行(请注意命令有些地方改变了):
map(hd0,x)/xp.img(hd0)
map--mem(hd0,x)/xp.iso(0xff)
map(hd0)(hd1)
map--hook
chainloader(hd0)+1
boot
此时:应该正确进入了xp了。等待安装完毕吧。
注:以后该如何启动这个XP呢:
map(hd0,x)/xp.img(hd0)
map(hd0)(hd1)
map--hook
chainloader(hd0)+1
boot
即可。
下面是部分解释:
1、为什么要交换硬盘(map(hd0)(hd1))
这是因为不怎么做,你的XP就所在分区就不会分配C盘符了,而是D盘。同时,安装XP
的过程中其MBR将覆盖你真实硬盘的MBR,boot.ini文件外置,ntldr文件外置。等等,这
对你造成麻烦!
2、为什么要删掉虚拟磁盘上的所有分区,然后重新创建呢?
不这么做,就会出现10楼的情况。
3、为什么需要XP.img需要连续。
因为grub4DOS不支持不加载到内存对不连续的镜像映射。
4、为什么map--mem(hd0,x)/xp.iso(0xff)和map--mem(hd0,x)/winvblock.img(fd0)需要加上
--mem参数?
这是因为不这么做会出现楼主的截图的情况。其实我认为不加--mem参数理论上是可行的,
只要保证这两个文件连续。可是事实上就是不行。
最佳的情况下,虚拟磁盘上的BOOT.INI文件内容如下:
[bootloader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operatingsystems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"
/noexecute=optin/fastdetect
看,这是多么正常的一个内容,如果不交换磁盘,这个文件即会“外置”,而且不会那么简
单的。至起码上面会有个0变成其他数字。。。
(上面内容错别字太多了,忍不住
修改了。。。修改了才发现换行全部丢失。。唉,结果黏贴到WORD,替换,然后输出PDF,然后在复制黏贴回来到这里。折腾啊。。)

[ 本帖最后由 2011GameBoy 于 2013-1-15 15:05 编辑 ]
回复

使用道具 举报

12#
 楼主| 发表于 2013-1-15 22:49:45 | 只看该作者
我终于成功了!!!!!!!
用到的文件包括,win7下建立的VHD文件(xp.vhd)、2011GameBoy 前辈集成的f6驱动drives.img(自己做了小小修改)、msdn的xp sp3(XPSP3.iso)
目的:将xp.vhd虚拟成硬盘、将drives.img虚拟成软盘、将XPSP3.iso虚拟成光盘。然后启动xp的安装程序,加载软盘中的AHCI和winvblock驱动,将系统安装的xp.vhd中。
安装菜单如下
方案一
title INSTALL_VHDXP 1
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
find --set-root /RAMOS/drives.img
map --mem /RAMOS/drives.img (fd1)
map --mem /RAMOS/drives.img (fd0)
find --set-root /RAMOS/xp.vhd
map /RAMOS/xp.vhd (hd0)
find --set-root /MSDN/XPSP3.iso
map /MSDN/XPSP3.iso (0xff)
map (hd0) (hd1)
map --hook
dd if=(fd1) of=(fd0) count=1
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/RAMOS/xp.vhd,boot;cdrom,vmem=find:/MSDN/XPSP3.iso;floppy,vmem=find:/RAMOS/drives.img;\n\0
chainloader (0xff)

title INSTALL_VHDXP 2
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
find --set-root /RAMOS/xp.vhd
map /RAMOS/xp.vhd (hd0)
find --set-root /MSDN/XPSP3.iso
map /MSDN/XPSP3.iso (0xff)
map (hd0) (hd1)
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/RAMOS/xp.vhd,boot;cdrom,vmem=find:/MSDN/XPSP3.iso;\n\0
root (hd0,0)
chainloader /ntldr
方案二
title INSTALL_VHDXP 1
find --set-root /RAMOS/xp.vhd
map --heads=255 --sectors-per-track=63 /RAMOS/xp.vhd (hd0)
find --set-root /MSDN/XPSP3.iso
map /MSDN/XPSP3.iso (0xff)
find --set-root /RAMOS/drives.img
map --mem /RAMOS/drives.img (fd1)
map --mem /RAMOS/drives.img (fd0)
map --harddrives=1
map --hook
dd if=(fd1) of=(fd0) count=1
chainloader (0xff)

title INSTALL_VHDXP 2
find --set-root /RAMOS/xp.vhd
map --heads=255 --sectors-per-track=63 /RAMOS/xp.vhd (hd0)
find --set-root /MSDN/XPSP3.iso
map /MSDN/XPSP3.iso (0xff)
map --hook
rootnoverify (hd0)
chainloader +1
用这两种方式均能正常加载ahci和winvblock驱动,并完成安装。

之前,之所以出现软盘坏损的错误提示,是由于菜单中缺少如下两句
map --mem /RAMOS/drives.img (fd1)
dd if=(fd1) of=(fd0) count=1
可惜我不知道第二句的意思是什么,最奇怪的地方是如果菜单这样写就会提示软盘坏损
map --mem /RAMOS/drives.img (fd0)
map --mem /RAMOS/drives.img (fd1)
dd if=(fd1) of=(fd0) count=1
而将1、2句颠倒却可以正常安装,及如下
map --mem /RAMOS/drives.img (fd1)
map --mem /RAMOS/drives.img (fd0)
dd if=(fd1) of=(fd0) count=1
真是不知所错呀,有懂的朋友指点一下。
64位的系统没有测试,不知是否可行。
修改的drives.img文件从这里下载。http://l6.yunpan.cn/lk/QvQ2hsGRhzwe8
回复

使用道具 举报

13#
发表于 2013-1-15 23:28:42 | 只看该作者
原帖由 <i>2011董海江</i> 于 2013-1-15 22:49 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2659437&ptid=274302" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
我终于成功了!!!!!!!<br />
用到的文件包括,win7下建立的VHD文件(xp.vhd)、2011GameBoy 前辈集成的f6驱动drives.img(自己做了小小修改)、msdn的xp sp3(XPSP3.iso)<br />
目的:将xp.vhd虚拟成硬盘、将drive ...
<br />


请问,你创建的XP.VHD文件是不是连续的啊?
第二,你所用的语法跟我的很大不同,你能解释下么?我不懂:
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/RAMOS/xp.vhd,boot;cdrom,vmem=find:/MSDN/XPSP3.iso;\n\0
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
第三,另外,你的VHD是分配了全部空间,还是待数据增加而增大呢?
(其实我更加倾向于用grub2实现而不是grub4dos,不过目前不行,呵呵。)

另外,dd if=(fd1) of=(fd0) count=1 ,这句话的意思是:把fd1的头一块数据复制覆盖到fd0头的位置。一块数据我无记错的话就是512B。此命令应慎重使用,切勿不能出现类似:dd if=(x) of=(hd0),即of后面决不能接你的硬盘或者U盘,否则上面的内容有可能会丢失的。
回复

使用道具 举报

14#
 楼主| 发表于 2013-1-16 00:40:15 | 只看该作者
回上楼
1、是
2、语法是我抄来的,一开始用firadisk驱动来安装xp.vhd,屡试不爽。后来将firadisk驱动改为winvblock驱动失败,所以才发帖求助,至于什么意思,说实话,我是个外门汉,一窍不通。
3、分配了全部空间
回答完毕,谢谢提醒,受益匪浅。谢谢!
回复

使用道具 举报

15#
发表于 2013-1-18 01:20:37 | 只看该作者

回复 #14 2011董海江 的帖子

我以为firadisk不行的,原来可以的啊。
回复

使用道具 举报

16#
 楼主| 发表于 2013-1-18 18:04:11 | 只看该作者
原帖由 2011GameBoy 于 2013-1-18 01:20 发表
我以为firadisk不行的,原来可以的啊。

我以前总是用firadisk,winVblock倒是第一次用,感觉不如firadisk好用。
回复

使用道具 举报

17#
发表于 2013-1-20 16:19:22 | 只看该作者
原帖由 <i>2011董海江</i> 于 2013-1-18 18:04 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2661466&ptid=274302" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />
我以前总是用firadisk,winVblock倒是第一次用,感觉不如firadisk好用。
<br />

当你需要一步一步打命令时,你会发觉用winvblock会让你省下很多按键次数。。。
回复

使用道具 举报

18#
发表于 2013-1-20 18:42:06 | 只看该作者
问个很傻逼的问题
用virtualbox安装好的windows XP的VHD能用windows 7的bootmgr引导吗???
回复

使用道具 举报

19#
发表于 2013-1-20 22:51:18 | 只看该作者
记得以前初次用firadisk做ramxp时,顺便用winVblock也做了,发现winVb|ock居然不支持待机,最近因要全内存测试运行《穿越火线》这款游戏,又用破解了时间限制的VSuite服务器版做了32位的XP,2K3,win7的内存系统,同样的硬件平台比firadisk快,只要内存盘4G及以上就能正常运行《穿越火线》游戏,小了会发生爆死内存盘的现象,内存盘可用为零.顺便解决了关机时保存镜像文件的问题:那个勾永远是去掉的.当然不会是启机后导入注册表的办法,那也太傻逼了.
回复

使用道具 举报

20#
发表于 2013-2-23 21:35:30 | 只看该作者

回复 #12 2011董海江 的帖子

按楼主的做法问题依旧。还是出现插入winvblock驱动器到A的提示。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 07:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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