无忧启动论坛

标题: [求助]grub4dos启动精简安装版失败 [已解决] [打印本页]

作者: caney    时间: 2008-6-29 21:08
标题: [求助]grub4dos启动精简安装版失败 [已解决]
基本情况:
XP精简安装版:
       精简工具:Nlite1.4.1
       精简后I386目录下无WINNT.exe
虚拟机:VMware 6.0.0 build-45731
       虚拟机硬盘 (IDE 0:0) 3G  分二区,主系统分区1.5G 逻辑分区1.5G
        主系统分区NTFS格式装 XP   
        逻辑分区 NTFS格式 根目录下 有精简版安装光盘释放的 \I386 安装目录且有所有文件。
  虚拟机光驱  (IDE 0:1) 有精简安装版光盘
        精简版安装光盘制作:EasyBoot 5.0.9.553制作启动画面,其中以grub.img作启动XP精简安装版
  虚拟机软驱 grub.img镜像
  grub.img  中  grub.exe版本为 GRUB4DOS 0.4.3 2008-03-14
      menu.lst 内容如下:
splashimage (fd0)/BOOT/MY.XPM.GZ
fontfile (fd0)/BOOT/FONTS
timeout 20
default 1
title 【0】  老九 WinPE 老毛桃修改之撒手不管版(Build 070911)
chainloader (cd)/MTPE/SETUPLDR.BIN
title 【1】  XP_光盘安装版  
find --set-root (cd)/I386/SETUPLDR.BIN
chainloader (cd)/I386/SETUPLDR.BIN
boot
title 【2】  XP_硬盘安装版  
find --set-root /I386/SETUPLDR.BIN
chainloader /I386/SETUPLDR.BIN
boot
title 【2】  启动本机 WINDOWS 2000/XP 系统
find --set-root /ntldr
chainloader /ntldr
title 【3】  启动本机 VISTA 系统
find --set-root /bootmgr
chainloader /bootmgr
title 【4】  重启计算机
reboot
title 【5】  关闭计算机
halt

软驱启动: 

title 【1】  XP_光盘安装版  
find --set-root (cd)/I386/SETUPLDR.BIN
chainloader (cd)/I386/SETUPLDR.BIN
boot
出现如下图错误:

title 【2】  XP_硬盘安装版  
find --set-root /I386/SETUPLDR.BIN
chainloader /I386/SETUPLDR.BIN
boot
出现下图错误

用光盘启动也是一样的错误提示

百思不得其解,故求助于达者。

BTW:Nlite精简完制作完的XP安装光盘,直接制作成ISO能正常运行。



20080702 20:04 小结以方便TX

至目前为止,本贴已经验证了,在VM环境下[VMware 6.0.0 build-45731 and VMware Workstation版本V5.5.3 Build 34685],无法用该版

本的G4D [GRUB4DOS 0.4.3 2008-03-14]列出文件目录。故大胆质疑该版本G4D的兼容性。

为什么会选这个版本的G4D,那是为因本人翻阅本论坛关于G4D的研究,认为该版本的G4D为正式版,稳定、实用性好一点。

鉴于本人尚未混入时空论坛,所以借无忧宝地求助于诸位达人。请不吝赐教。

20080702 23:28

目前已对一楼,虚拟机测试不成功的盘,刻录到光盘,用grub启动光盘,命令行初始化光盘,

即 cdrom --init 结果如我VM二个版本测试后的结果一样。

同时我用winiso制作了一个grub启动的光盘,内容一样。

接下来
map --hook

cat (cd0)/<tab>

可列目录



chainloader (cd)/I386/SETUPLDR.BIN

boot

成功加载~

简直不敢相信。~~

能够执行非标准的Windows XP安装程序。

在此感谢 Climbing 不点 netwinxp xypcmac 等坛友给予的无私帮助,特别是Climbing版主,点拨我在“真机”测试,而我恰恰一直信任VM而忽略;指点我用命令行测试G4D,让我更深入了解G4D的细节。。

题外话:各位用什么虚拟机测试G4D。。

20080703 0:13

下载Virtual PC 6.0.156.0 安装之,grub命令行测试ISO,PASSED

[ 本帖最后由 caney 于 2008-7-3 12:15 AM 编辑 ]
作者: caney    时间: 2008-6-30 00:59
沙发自己坐,等待高人来!~
作者: hhhhhh    时间: 2008-6-30 08:45
这好像是路径、盘符问题,还有grub的版本太旧,换新的版本,再仔细核对一下试试。

[ 本帖最后由 hhhhhh 于 2008-6-30 08:51 AM 编辑 ]
作者: esxcfr    时间: 2008-6-30 12:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: Climbing    时间: 2008-6-30 13:12
楼主用grub.exe进入grub4dos,这个时候,grub4dos并没有初始化光驱,因此,根本不可能有(cd)这个设备,所以,当然是文件找不到。

应该这样:

title 【1】  XP_光盘安装版  
cdrom --init
map --hook
chainloader (cd)/I386/SETUPLDR.BIN

至于从硬盘上直接chainloader setupldr.bin,我印象中这样是无法启动xp的安装程序的,这种方式只适合在光盘上使用。
作者: caney    时间: 2008-6-30 15:56
谢谢各位的回答,特别是Climbing班猪的点拨,咱晚上测试完毕再汇报结果!~
作者: caney    时间: 2008-6-30 23:04
title 【1】  XP_光盘安装版  
cdrom --init
map --hook
chainloader (cd)/I386/SETUPLDR.BIN
改为后,出现以下错误:

分别用软盘及自行压制的ISO启动过。均为以上错误
ISO压制方法mkisofs
命令:
mkisofs -R -J -b grldr -no-emul-boot  -boot-load-size 4 -o USBCD.iso MyCD
我用软驱还试了
一、Win XP Pro SP2 VOL MSDN 简体中文
二、Windows XP SP2上海 g-o-v-e-r-n-m-e-n-t版
均为以上错误。

继续研究中。望达人明示我的错误。
作者: Climbing    时间: 2008-7-1 08:34
菜单项中明明没有find --set-root这条命令,为什么你的截图中却会出现这条命令的错误提示呢?

你可以进入grub4dos的命令行(从菜单界面按c),然后手工执行:
cdrom --init
map --hook

然后用:cat (cd0)/<tab>

注意<tab>表示键盘上的Tab键,grub4dos有自动完成功能,这时候它会列出光盘上的文件内容,如果可以访问的话。最好把这个过程,用截图的方式贴上来。
作者: caney    时间: 2008-7-1 21:16
原帖由 Climbing 于 2008-7-1 08:34 AM 发表
菜单项中明明没有find --set-root这条命令,为什么你的截图中却会出现这条命令的错误提示呢?
你可以进入grub4dos的命令行(从菜单界面按c),然后手工执行:
cdrom --init
map --hook
然后用:cat (cd ...


首先对Climbing表示歉意,我确实忘了把find --set-root删除。

接下来按Climbing的要求执行命令行操作并截图。
按C进入命令行


初始化CDROM



map



按TAB前



按TAB后



我怀疑用mkisofs命令行集成光盘时就出错,特附上相关命令
mkisofs -R -J -b grldr -no-emul-boot  -boot-load-size 4 -o USBCD.iso MyCD

衷心谢谢Climbing斑主耐心指导。
作者: Climbing    时间: 2008-7-1 22:03
我对mkisofs不熟悉,但从提示上看,很可能是你的VMware有问题,拿到真机上试验一下。
作者: netwinxp    时间: 2008-7-1 22:27
从LZ的cdrom --init返回的提示来看,很可能使用的是VM虚拟的SCSI光驱,并且该虚拟的光驱很可能不支持完整ATAPI标准。建议LZ虚拟一个IDE光驱再44,或者干脆跑到VPC看看。

[ 本帖最后由 netwinxp 于 2008-7-1 10:28 PM 编辑 ]
作者: caney    时间: 2008-7-1 22:58
正在下老版的VMware ,netwinxp一言惊醒梦中人啊~


下载完成前先试试netwinxp的方法!~

回头一看自己的虚拟光驱。。IDE(0:1)

心儿又凉了。~

经测试,结果还是失败。

还是要谢谢netwinxp指点。

[ 本帖最后由 caney 于 2008-7-1 11:01 PM 编辑 ]
作者: caney    时间: 2008-7-1 23:24
换VMware Workstation版本V5.5.3 Build 34685 后结果还是一样。

因手头没刻录机,又不喜欢用vpc,所以走进死胡同。

郁闷ing~
作者: Climbing    时间: 2008-7-2 09:26
找一张标准的微软的xp安装光盘先试试。
作者: xypcmac    时间: 2008-7-2 11:24
其实,我觉得不是VM的问题,也可能不是ISO的问题。是菜单的问题,试试单独用这个

title 【1】  XP_光盘安装版  
cdrom --init
map --hook
chainloader (cd0)/I386/SETUPLDR.BIN

你对比一下就知道哪里不一样了。同时,GRUB 对大小写也敏感。
作者: Climbing    时间: 2008-7-2 11:44
现在很显然不是VM就是ISO的问题。看前面的截图就知道了。
作者: xypcmac    时间: 2008-7-2 11:55
本身我也怀疑是ISO的问题,但他前面的测试菜单有问题,你觉得是否有关系呢?

chainloader (cd0)/I386/SETUPLDR.BIN

这一行少了一个数字“0”
作者: Climbing    时间: 2008-7-2 14:27
用(cd)跟用(cd0)在一个光驱时,效果应该是一样的。
作者: xypcmac    时间: 2008-7-2 14:36
据我所知,是不一样,少了东西是启动不了的。
作者: xypcmac    时间: 2008-7-2 14:37
应该0表示第一个,1表示第二个。
作者: 不点    时间: 2008-7-2 15:06
(cd) 代表 BIOS 赋予的 no-emulation mode CDROM 盘号。

(cd0), (cd1), ..., 则代表由 cdrom --init 所探测到的 CDROM 设备。

如果机器从 no-enulation 模式的光盘启动,那么就有 (cd) 这个设备。否则,(cd) 就可能是不存在的(但也有例外,在 qemu 中,无论是否从光盘启动,它都能够赋予 (cd) 给光盘)。即便在使用 cdrom --init 之后,(cd) 也不一定存在(只有 (cd0), (cd1) ... 是存在的,由识别到的光驱数目而定)。
作者: caney    时间: 2008-7-2 19:10
即使有不点大师对CDROM的阐释,我仍对G4D启动安装版XP无能为力。

BTW:已试过二个标准版的Windows XP 安装盘。

如果要我试msdn 的windows xp sp3 标准安装版都有条件。

但即使试SP3标准安装版,仍无意义,不是吗?

至目前为止,本贴已经验证了,在VM环境下[VMware 6.0.0 build-45731 and VMware Workstation版本V5.5.3 Build 34685],无法用该版

本的G4D [GRUB4DOS 0.4.3 2008-03-14]列出文件目录。故大胆质疑该版本G4D的兼容性。

为什么会选这个版本的G4D,那是为因本人翻阅本论坛关于G4D的研究,认为该版本的G4D为正式版,稳定、实用性好一点。

鉴于本人尚未混入时空论坛,所以借无忧宝地求助于诸位达人。请不吝赐教。

[ 本帖最后由 caney 于 2008-7-2 08:04 PM 编辑 ]
作者: 不点    时间: 2008-7-2 20:58
抱歉,本人没有XP的安装光盘,不能确定到底怎么回事。看你前面列出目录文件时的死机显示,我觉得可能是 VMware 有什么缺陷。当然也不排除 grub4dos 的 iso9660 驱动模块出现 bug 的可能。这需要进一步验证才可确定。你不妨多试验几个虚拟机,看看其他虚拟机是否也出现同样的问题。你可以免费得到的虚拟机还有 Virtual PC,VirtualBox,QEMU,不妨都试试。我猜,虚拟机出现 bug 的可能性要大一些,所以建议你换换虚拟机。

[ 本帖最后由 不点 于 2008-7-2 09:01 PM 编辑 ]
作者: xypcmac    时间: 2008-7-2 21:05
我测试过,完全没有问题
作者: netwinxp    时间: 2008-7-2 21:10
其实虚拟机的设备和真实机子还是有很大的差别的,比如:
1、虚拟机的设备占用的内存并不完全包含在你分配的内存中,也就是说虚拟机64M可启动的PE在真实机子里面很有可能启动不了。
2、虚拟机的BIOS通讯区数据不一定能得到及时更新(我和蛙兄在改进一键还原的延时算法时就发现这个问题)。
3、虚拟机中一些CPU指令不能执行。
4、有的虚拟机(比如VM)含有几个VEN_0000或DEV_0000的虚拟设备,很可能是用来和宿主机通讯的。
作者: caney    时间: 2008-7-2 21:41
原帖由 netwinxp 于 2008-7-2 09:10 PM 发表
其实虚拟机的设备和真实机子还是有很大的差别的,比如:

虚拟的设备确实与真实硬件有所区别,不然我们都不用添加硬件了;但我相信VM专业虚拟软件公司至少80%能模拟真实硬件的运作。
所以本人仍以VM作为一个可信的研究工具。

1、虚拟机的设备占用的内存并不完全包含在你分配的内存中,也就是说虚拟机64M可启动的PE在真实机子里面很有可能启动不了。

这一点我很难把握您的意思。我理解的虚拟机内存是这样的:已分配的内存+不足时是否使用PC的虚拟内存。
作者: caney    时间: 2008-7-2 21:44
原帖由 xypcmac 于 2008-7-2 09:05 PM 发表
我测试过,完全没有问题


请把您测试的过程,使用的软件版本,及g4D的菜单代码展示一下,以便启发后进肓流。
作者: caney    时间: 2008-7-2 21:45
原帖由 不点 于 2008-7-2 08:58 PM 发表
抱歉,本人没有XP的安装光盘,不能确定到底怎么回事。看你前面列出目录文件时的死机显示,我觉得可能是 VMware 有什么缺陷。当然也不排除 grub4dos 的 iso9660 驱动模块出现 bug 的可能。这需要进一步验证才可确 ...


回去以后马上测试。谢谢提醒~
作者: aloneforever    时间: 2008-7-2 22:06
我曾经试过用GRUB直接启动ISO,然后再启动XP安装盘成功,不过忘了具体怎么弄的了,应该就是直接chainloader /I386/SETUPLDR.BIN的,因为我对GRUB不熟悉,肯定搞不出什么有技术含量的东西来,嘿嘿。应该是虚拟机的问题吧,LZ要是有结果了还说一下哦
作者: netwinxp    时间: 2008-7-2 22:33
原帖由 caney 于 2008-7-2 21:41 发表

虚拟的设备确实与真实硬件有所区别,不然我们都不用添加硬件了;但我相信VM专业虚拟软件公司至少80%能模拟真实硬件的运作。
所以本人仍以VM作为一个可信的研究工具。


这一点我很难把握您的意思。我理解 ...

我们真实的机子并不是所有的物理内存空间都可以被使用,与BIOS、ACPI、PCICFG、显存映射的页面地址重合的部分是没办法被使用的,然而虚拟机里面我们所设定的内存并没有把这些完全包括在内。
作者: caney    时间: 2008-7-2 23:28
标题: 回复 #30 netwinxp 的帖子
确实如此。集成显卡便是一例。

目前已对一楼,虚拟机测试不成功的盘,刻录到光盘,用grub启动光盘,命令行初始化光盘,

即 cdrom --init 结果如我VM二个版本测试后的结果一样。

同时我用winiso制作了一个grub启动的光盘,内容一样。

接下来

map --hook

cat (cd0)/<tab>

可列目录



chainloader (cd0)/I386/SETUPLDR.BIN

boot

成功加载~

简直不敢相信。~~

能够执行非标准的Windows XP安装程序。

[ 本帖最后由 caney 于 2008-7-3 06:38 AM 编辑 ]
作者: caney    时间: 2008-7-3 00:17
下载Virtual PC 6.0.156.0 安装之,grub命令行测试ISO,PASSED
作者: xypcmac    时间: 2008-7-3 00:30
chainloader (cd)/I386/SETUPLDR.BIN

这样也启动成功了,果然是高手。
作者: caney    时间: 2008-7-3 06:37
原帖由 xypcmac 于 2008-7-3 12:30 AM 发表
chainloader (cd)/I386/SETUPLDR.BIN

这样也启动成功了,果然是高手。


不好意思
笔误
应为
chainloader (cd0)/I386/SETUPLDR.BIN

没能共享到您测试成功的经验,很是遗憾。

[ 本帖最后由 caney 于 2008-7-3 06:39 AM 编辑 ]
作者: 不点    时间: 2008-7-3 08:38
楼主,这原因没讲清楚,就算【已解决】了吗?到底是什么原因导致死机的?究竟什么【已解决】了?是用 winiso 重新制作光盘之后【已解决】呢,还是什么别的原因?你原来在 VMware 上死机的光盘,拿到 Virtual PC 上是否同样死机?这些问题你都没有说清楚,只能说【部分已解决】,或者【解决了一半】。
作者: caney    时间: 2008-7-3 11:10
原帖由 不点 于 2008-7-3 08:38 AM 发表
楼主,这原因没讲清楚,就算【已解决】了吗?到底是什么原因导致死机的?究竟什么【已解决】了?


到底是什么原因造成的,我也说不好,我只能说简单描述一个现象:
G4D在VM上无法列出目录;究竟是G4D对VM兼容性问题呢?还或VM对G4D兼容性的问题,或是VM对ISO的兼容性问题捏,我无法断定。

究竟什么【已解决】了?

我的目的是用G4D引导XP安装光盘,安装Windows XP。非微软标准的XP安装光盘刻录后能在实体上正常工作,那么我认为已经解决了我的问题,所以我认为已经解决了。

是用 winiso 重新制作光盘之后【已解决】呢,还是什么别的原因?你原来在 VMware 上死机的光盘,拿到 Virtual PC ...

无论是原来在 VMware 上死机的光盘,还是用 winiso 重新制作光盘,都能正常工作。

我敬佩不点细致入微的研究精神,但我没有对G4D与VM的代码有所研究。目前只停留在G4D这款优秀软件的应用层面,所以未能深入,为此只能说一声抱歉,让您失望了!

或许您还有什么建议、方法、途径让我进一步加深对G4D的了解。再次感谢~
作者: caney    时间: 2008-7-3 11:13
#31的确实描述的有点岐义,我不打算修改,暴露我的不足,警示后人。
但我有在一楼补充,并列讨论的进程,以方便后人。
作者: 不点    时间: 2008-7-3 13:49
你的解释仍然不十分清楚,我只能猜测,grub4dos 在 vmware 上遇到问题,而在真实机器和 Virtual PC 下都没有遇到所说的问题。因此,我把它看成是 vmware 的 bug。vmware 显示的信息也说清楚了,它希望用户向它报告问题。
作者: caney    时间: 2008-7-3 16:18
不点兄弟,你已经说服我了。祝G4D一路走好~




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