无忧启动论坛

标题: 求助:关于GRUB的MAP命令参数的问题 [打印本页]

作者: leonliao78    时间: 2009-5-21 21:17
标题: 求助:关于GRUB的MAP命令参数的问题
我是初学者,想用VMware虚拟机测试物理U盘上的系统。U盘在VMware里是认成Hard Disk(SCSI 0:0),虚拟光驱是CD-ROM(IDE 1:0)。在用U盘启动时出错,下面是menu.lst的内容:
        map --mem (sd0)/winxp.img (hd0)
        map --hook
        rootnoverify (hd0)
        chainloader (hd0,0)/ntldr
    返回的错误代码是23号: error while parsing number。      
    但是把img文件封装到ISO镜像里,再用VMware的虚拟光驱CD-ROM(IDE 1:0)启动,可以启动系统。下面是VMware虚拟光驱启动时ISO里的menu.lst的内容:
       map --mem (cd)/winxp.img (hd0)
       map --hook
       rootnoverify (hd0)
       chainloader (hd0,0)/ntldr

请问我怎么做才能让U盘里的img文件能在VMware虚拟机中映射到虚拟硬盘?
作者: leonliao78    时间: 2009-5-21 21:31
我的U盘在实机BIOS里是认成USB-HDD的。再问一问在实机中测试,又应该怎么做才能启动并进入系统呢?
作者: pseudo    时间: 2009-5-21 21:54
把(sd0)改为(hd0,0)试一次,再把(sd0)改为(hd1,0)试一次,最后把(sd0)去掉试一次
作者: leonliao78    时间: 2009-5-21 22:32
用(hd0,0)的结果是:

用(hd1,0)的结果是:

把(sd0)去掉的结果是:

看来第一和第三个参数都是对的,那么怎么解决接下来的17号错误呢?
作者: hpy7332    时间: 2009-5-21 23:27
见本论坛《用UltraISO9.3制作高兼容多合一启动U盘》,链接地址:
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
作者: x.Nichdlas    时间: 2009-5-22 00:40
(sd0)改为(sd0,0)行不行呢
我还没试过虚拟机下测试u盘启动 如果lz成功了 我也来学习下
作者: leonliao78    时间: 2009-5-22 01:00
标题: 回复 #6 x.Nichdlas 的帖子
sd0)改为(sd0,0)也不行,返回的错误代码是23号: error while parsing number。

谢谢hpy7332 !
作者: yjd    时间: 2009-5-22 01:06
晕。直接把前面都去掉
map --mem /winxp.img (hd0)
这样的格式就行了。关键的问题是你没在vm的cmos里设置sd盘在前面。
看图


作者: leonliao78    时间: 2009-5-22 01:08
我是想把U盘根目录的winxp.img映射到内存中去,用虚拟机和实机现在都无法启动,我觉得要么是GRUB参数设置的问题,要么就是不能用IMG格式而要用到SDI格式的硬盘映像。请达人指点指点我。
作者: x.Nichdlas    时间: 2009-5-22 01:28
code17是不是提示不能映射啊
映射成CD不知道行不行,例如
     map --mem (sd0)/winxp.img (cd0)
        map --hook
        rootnoverify (cd0)
        chainloader (cd0)/ntldr

我也是胡乱猜测的
作者: leonliao78    时间: 2009-5-22 01:51
标题: 对两位的回复
把虚拟机BIOS照您的设置了以后,仍然返回17号错误。之前我虽然是把CD-ROM启动放在前面,但已经把CD-ROM的参数设置成不活动的了,如图:

用(cd0)返回的是23号错误。
作者: leonliao78    时间: 2009-5-22 02:57
我用sdiloader.exe新建了一个500M大小的test.sdi,在磁盘管理器中把它格式化为NTFS压缩格式并激活,接着把文件拷入此sdi文件对应的虚拟硬盘中,然后remove虚拟的SDI硬盘,最后把test.sdi拷贝到U盘,U盘中的menu.lst改成了:
        map --mem /test.sdi (hd0)
        map --hook
        rootnoverify (hd0)
        chainloader (hd0)/ntldr
进虚拟机中测试,返回的结果是:
在实机中返回的也是同样的autodetect mumber of heads failed.use default value 255
不知道自己错在哪里,请指正。
作者: xianglang    时间: 2009-5-22 09:38
不要MAP成HD0试试——我的经历是ISO如果MAP成CD0或者CD什么的,就不成功,如果MAP成HD32就行了。
作者: yjd    时间: 2009-5-22 10:33
以为是U盘启动问题-_-!!
map还真从来没虚拟成hd0这样用过。
目前看到的只有fd0和0xff这样。

        map --mem ()/winxp.img (0xff)

我觉得应该是要map成hd32然后再用map (hd0) (hd1)这种切换方式才对。

[ 本帖最后由 yjd 于 2009-5-22 10:34 编辑 ]
作者: leonliao78    时间: 2009-5-22 14:26
标题: 谢谢两位的指点!
我下班后先弄好虚拟机,再综合两位的意见做个正交试验看看。昨夜弄了很久VM,我下载的那个VMware workstation 5.5.3-34685英文安装版的不好用,又下了两个6.5版的绿色版,无法打开电源。
作者: yjd    时间: 2009-5-22 16:24
chenall  5.53中英版才是经典。一直在用很好用。

http://chenall.ys168.com/
作者: leonliao78    时间: 2009-5-22 22:19
我想应该是我用的操作系统不允许让VM运行得很好。我的操作系统上用VPC6.0还比较顺,也许因为它是微软自家做的东西吧,不过没有组件不支持把U盘认做物理硬盘直接与虚拟机交流数据,而我用虚拟机主要是为了测试U盘启动的。你的网络硬盘mytools chenall目录需要认证码才能进去。
作者: leonliao78    时间: 2009-5-22 22:22
你说的chenall  5.53中英版是指放在VMWARE目录下的东西吧?
晕,我还以为chenall 是一个虚拟机软件的名字呢,呵呵。
作者: wind_fsm    时间: 2009-5-23 00:19
楼主的问题挺有趣,请教一下,你的 winxp.img 中是什么内容?这个文件是如何制作的?
作者: fujianabc    时间: 2009-5-23 03:58
原帖由 leonliao78 于 2009-5-22 02:57 发表
我用sdiloader.exe新建了一个500M大小的test.sdi,在磁盘管理器中把它格式化为NTFS压缩格式并激活,接着把文件拷入此sdi文件对应的虚拟硬盘中,然后remove虚拟的SDI硬盘,最后把test.sdi拷贝到U盘,U盘中的menu ...

sdiloader创建的sdi文件不能直接用grub来map,因为sdi文件有文件头,你要把sdi导成标准的img才行,比如命令
sdimgr test.sdi /export:DISK,test.img
作者: chenall    时间: 2009-5-23 09:00
看楼主应该使用的是GRUB4DOS吧?

grub4dos有sd0吗?我还没有用过....

如果封装到ISO里面可以启动,那么,前面的换成如下应该也可以启动,否则CD启动的结果就是错误的...

menu.lst的内容:
        map --mem /winxp.img (hd0)
        map --hook
        chainloader (hd0,0)/ntldr
作者: yjd    时间: 2009-5-23 09:54
好像lz刚开始不是创建sdi文件。后来说img不行又制作了sdi格式的?
vpc是后来被微软收购的好像不是微软自家的^_^。
作者: leonliao78    时间: 2009-5-25 22:43
标题: 回复 #21 chenall 的帖子
我也是在网上到处翻找找到的这个参数,说是SCSI用这个对路一些。
现在还是觉得把ISO格式的镜像刻录到DVD-RW光盘里测试更容易实现一点,启动速度可能比量产到U盘里的USB-CDROM快些。1G大小的ISO,启动时通过USB延长线传进内存,我猜可能要传一个通宵才能传完吧
作者: ycpqcl    时间: 2011-2-4 22:54
刚刚学习这方面的内容,还有点看不明白




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