中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » [下载]grub4dos用内存仿真磁盘,请测试
« [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] ... [17] »
作者:
标题: [下载]grub4dos用内存仿真磁盘,请测试 上一主题 | 下一主题
blue777
中级用户




积分 452
发帖 134
注册 2004-6-16
状态 离线
『第 46 楼』:  

多谢不点兄,我用WinHex将grldr的第4扇区覆盖软盘的第1扇区,并恢复了事先保存的软盘第1扇区第3到第62这60个字节到原位置,在虚拟机中成功启动,但问题又来了,我发现将此image做成可引导CD,在虚拟机中却不能启动,而之前用stage1,stage2方式制作的image做成可引导CD,在虚拟机中启动很顺利.还有一点,用虚拟软驱vFloppy虚拟启动后,如下项目不可用了:
title Boot from image file (hd0,0)/floppy.img
map --mem (hd0,0)/floppy.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title Smart Boot Manager
map --mem /sbm.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title Memtest86+
kernel /memtest.gz

[此贴子已经被作者于2005-3-10 18:51:58编辑过]




2005-3-7 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
blue777
中级用户




积分 452
发帖 134
注册 2004-6-16
状态 离线
『第 47 楼』:  

酷啊!grub_for_dos-0.4.0pre4支持单分区代替整个硬盘的image镜像在内存里仿真运行了!不点兄辛苦了!

2005-3-9 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 48 楼』:  

> 在虚拟机中成功启动,但问题又来了,我发现将此image做成可引导CD,在虚拟机中却不能启动,menu.lst界面出不来.

”不能启动“ 与 ”menu.lst界面出不来“ 这说得有些含糊。究竟是”启动了但只能进入命令行“呢?还是根本就不能启动(比如死机)?

如果是前者,这就不算是太大的问题。新的 GRLDR 不再查找 boot/grub/menu.lst 而只查找根目录的menu.lst,所以如果你的软盘根目录没有 menu.lst ,则进入命令行是正确的。现在我们不需要 boot/grub/这个目录了,直接删除它吧。

---------------------------------------------------

> 还有一点,grldr方式的image用虚拟软驱vFloppy虚拟启动后,如下项目不可用了。

这个问题我目前还感到不可思议,按道理是不应当出现的。我接下来会研究一下产生这个问题的原因。但你也可以提供更进一步的信息,帮助解决这一问题。我相信,最终问题应当能够得到解决,因为我们从中似乎发现不了“必然失败”的理由。blue兄也辛苦了,非常地谢谢你。





因为我们亲手创建,这个世界更加美丽。
2005-3-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 49 楼』:  

你可以在命令行之下逐个敲如这些命令序列,看看究竟那个命令返回失败的信息。

你的第一个例子,应当是成功的。
title Boot from image file (hd0,0)/floppy.img
map --mem (hd0,0)/floppy.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

这第二个例子,如果失败的话,可能是缺少 root 造成的。像如下这样添加上就应当好了。
title Smart Boot Manager
map --mem (hd0,0)/sbm.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)这第三个例子,和上述第二个一样,也是缺少 root,添加上就应当行了。
title Memtest86+
kernel (hd0,0)/memtest.gz
很抱歉关于 GRLDR 以及 GRUB4DOS 的操作方式目前缺乏详细的技术说明。的确,GRUB4DOS 和 GNU GRUB 有差异。比如以下这一点:
GRLDR 的位置是活动的,它不是像 stage2 那样完全是死定的(stage2的物理扇区位置被记录到 stage1 或者stage1.5 中)。如此的差别,就使得 GRUB4DOS在启动后不能确定它的”当前“驱动器,也就是说,其”当前“驱动器是一个无效的概念。而stage1,stage2 这种 GNU GRUB在setup 的时候就硬性确定了”当前“的 boot设备,所以,它具有”当前“这个概念。我猜想,主要是这个差别,导致了以上问题的出现,解决的办法就是在菜单中用root命令明确设定默认为”当前“的设备,或者在每个文件名之前都加上它所在的设备名,这样就不会打开文件时失败了。





因为我们亲手创建,这个世界更加美丽。
2005-3-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 50 楼』:  

> 酷啊!grub_for_dos-0.4.0pre4支持单分区代替整个硬盘的image镜像在内存里仿真运行了!

是的,这个功能已经具备了。但我本人还没有完全测试这个功能。我只是简单做了如下测试:

我用一个 win98 的 1.44M 软盘镜像文件 win98dos.img  来仿真硬盘 (hd0) 是成功的。

map --mem (hd0,0)/win98dos.img  (hd0)
map --hook
chainloader (hd0)+1
rootnoverify (hd0)
boot

由于软盘映象和硬盘分区的格式没有太大的差别,所以,这样也就等于测试了硬盘分区的仿真功能。似乎 memdisk 以及其它类似软件还没能提供这个功能。希望这个功能可以给大家带来方便。






因为我们亲手创建,这个世界更加美丽。
2005-3-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
blue777
中级用户




积分 452
发帖 134
注册 2004-6-16
状态 离线
『第 51 楼』:  

不点兄,十分感谢你认真详细的回答,可能我表达意思不够明确:
用grldr引导的Image,做成可启动光盘后,用在虚拟机启动,机器自检后根本就无法启动了,一直黑屏.
更正一下:不仅仅是grldr引导的image经vFloppy模拟启动后上述项目不能用,就是stage1,stage2方式引导的image经vFloppy模拟启动后上述项目也不能用,而只要不用vFloppy模拟启动,不论是grldr或是stage1,stage2引导的image用在真实软驱,虚拟机软驱,以及做成可启动光盘,上述项目都可以用.我想是否和vFloppy自身模拟方式有关?vFloppy好像是用memdsk方式模拟运行image的,而grub用memdrive方式,不能嵌套重复模拟?不知我的瞎猜能否给您提供一个解决方向?谢谢!

[此贴子已经被作者于2005-3-10 18:59:08编辑过]




2005-3-10 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hnlyzhd
高级用户




积分 544
发帖 164
注册 2004-10-17
状态 离线
『第 52 楼』:  

不点兄,这几天好忙,今天下载了你的GRLDR可以正确引导扩展FAT分区上的GRLDR了,真的很好,并且载取其引导扇区后,可以正确加载GANDLAF的中文GRLDR,但他的不支持自动寻找各分区根目录的MENU.LST,希望你能在最终版时放出个中文的GRLDR,还有你上面提到的只找根目录的LST不太好,我认为应该在根目录上和原来那样自动找BOOT及GRUB文件夹下和MENU.LST文件...



    我的留言簿

http://hnlyzhd.ys168.com            我的网络盘
2005-3-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 53 楼』:  


> 用grldr引导的Image,做成可启动光盘后,用在虚拟机启动,机器自检后根本就无法启动了,一直黑屏.

这段话理解起来也不是太容易,可能你是想简而言之,少费笔墨。
做成可启动光盘,这应当能够启动到 GRUB 的状态。你说的问题,大概是说此时无法再用这个 GRUB来引导一个虚拟仿真的启动设备,而启动常规的非虚拟设备是正常的。如果情况是这样的,我觉得有很多种可能,比如说,你用的命令序列有什么不对的,或者BIOS 有什么问题,或者你启动的操作系统有问题,等等吧。如果 BIOS 不支持int15/eax=e820h调用,或者这个调用存在BUG,或者BIOS可启动光驱本身的软盘仿真部分也有问题,那么就无法正常使用GRUB4DOS所提供的仿真功能。不光是 grub4dos 有问题,你用 memdisk 或者其它类似软件也照样会出现同样问题的。

> 还有,grldr引导的软盘,不是直接寻找menu.lst,而是经过搜寻5,6个os_setup什么的再最终调出menu.lst.怎么和您ftp里qlinux_setup.img引导方式一样啊?qlinux_setup.img引导后立即搜寻os_setup可以理解,但grldr为何也这样呢?
最新的 pre4 已经去掉 os_setup 这些了,只留下 /menu.lst 一个了。就连 /boot/grub/menu.lst 都不再支持了。

> 更正一下我昨天的"误报军情":不仅仅是grldr引导的image经vFloppy模拟启动后上述项目不能用,就是stage1,stage2方式引导的image经vFloppy模拟启动后上述项目也不能用,而只要不用vFloppy模拟启动,不论是grldr或是stage1,stage2引导的image用在真实软驱,虚拟机软驱,以及做成可启动光盘,上述项目都可以用.我想是否和vFloppy自身模拟方式有关?vFloppy好像是用memdsk方式模拟运行image的,而grub用memdrive方式,不能嵌套重复模拟?不知我的瞎猜能否给您提供一个解决方向?谢谢!
这么说来问题就在 vFloppy 本身了。vFloppy 不是开放源码的软件,外界恐怕不容易把握它的一些深层的东西吧。所以我觉得应当向 vFloppy 的开发者询问,才比较容易获得一个满意的答复。我很早都知道有 vFloppy 这个软件,但我本人并没有用过 vFloppy,因而也不能给您提供点什么帮助。谢谢您提供的这些信息,让我对此能够有所了解。





因为我们亲手创建,这个世界更加美丽。
2005-3-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
blue777
中级用户




积分 452
发帖 134
注册 2004-6-16
状态 离线
『第 54 楼』:  

"用grldr引导的Image,做成可启动光盘后,用在虚拟机启动,机器自检后根本就无法启动了,一直黑屏."
就是说用您介绍的方法将grldr安装在软盘上,保存为Image,此Image可以在真实软驱中,虚拟机软驱中正常启动;但如果将此Image作为引导文件做成启动光盘,此光盘却根本不能启动.
但是,用root (fd0),setup (fd0)方式,将/boot/grub/stage1,stage2安装在软盘上,保存为Image,此Image则可以用在所有场合.此Image作为引导文件做成启动光盘完全可以启动.
我的疑问是,为何用grldr引导方式的Image,作为引导文件做成启动光盘无法启动?

[此贴子已经被作者于2005-3-10 19:00:11编辑过]




2005-3-10 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 55 楼』:  

> 载取其引导扇区后,可以正确加载GANDLAF的中文GRLDR,但他的不支持自动寻找各分区根目录的MENU.LST,希望你能在最终版时放出个中文的GRLDR, .......

我不打算做中文版的,至少目前没有时间。我得把 linux 的分区给彻底支持了才行,我认为这个才要紧。等我们支持了 linux的分区之后,我们也就准备开始淘汰老式的 GNU GRUB 的过程了。我们的游动式查找方法,比 GNU GRUB的固定式查找方法要优越得多,也强健得多,理应逐步得到大家的认同。这话我本来不想说的,但是这里确实有不少人关心中文化,而对 linux不很关心,大家可能偏重于希望有个中文化的 GRUB版本,因此我也就把我的打算说出来了,我个人认为,中文化可以以后再考虑也不迟,现在GRLDR(安装到MBR)对linux的支持应当是迫切的。虽然linux的各种文件系统都有源代码,但是,支持它们并非容易的事情。

另外我认为,Gandalf 不可能彻底离开 GRUB 的开发,他迟早还会发布新版本的。诸位如果能代替他发布,也是可以的呀,为什么不可以呢?世界上的事情,只有想不到,没有做不到。

> 还有你上面提到的只找根目录的LST不太好,我认为应该在根目录上和原来那样自动找BOOT及GRUB文件夹下和MENU.LST文件...

是的,现在只支持根目录了。短期看,这会存在兼容性问题,但是长期看,这是值得的。微软的习惯是把所有与系统启动有关的重要东西都放在根目录,我比较赞成遵从微软这个习惯。当初 GNU GRUB 把启动目录设定在 /boot/grub/,我认为是不太恰当的。也许他们这么做也有道理,那便是,那些用来支持各种文件系统的 stage1_5 文件竟然不下于十个,如果把这许多的stages 文件都放在根目录,那也不很雅观,所以开发者开辟了一个目录 boot 用来专门存放这些文件。

我们现在不同了,那些 stages 文件,一个也用不上,全部要废弃,我们只要一个 GRLDR,外加一个 menu.lst,全部都解决了。不为别的,就为美观,也得废弃掉 boot 目录。





因为我们亲手创建,这个世界更加美丽。
2005-3-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
blue777
中级用户




积分 452
发帖 134
注册 2004-6-16
状态 离线
『第 56 楼』:  

实在不好意思,我前天用的grldr不是最新pre4版的,我今天用最新版安装到软盘,启动先出来如下界面:
find /menu.lst
enter commandline mode
5秒倒计时后就出来了menu.lst界面.我的误报,给您添麻烦了.
但是,还有个问题依旧没解决,就是将该软盘保存为image,将此image作为引导文件做成启动光盘,在虚拟机中测试,依然不能启动,除了机器自检,什么界面都出不来.
如果老方法制作的含stage1,stage2的image,做成启动光盘则可以顺利启动,调出menu.lst.

[此贴子已经被作者于2005-3-10 19:07:19编辑过]




2005-3-10 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 57 楼』:  


> 我的疑问是,为何用grldr引导的Image,做成可启动光盘后无法启动?

今天有别的事情,这个问题估计也不容易马上能有个解决,明天再谈。

> 还有我的确是用pre4的最新3月9日的grldr安装在软盘上的,启动后在menu.lst出来之前还是出现了一系列 os_setup 等,最后才调出menu.lst,因此很不解,请教原因.
这不会吧,一定是你搞错了。我已经试验过了很多台机器,都是只有 find  /menu.lst 出现了。





因为我们亲手创建,这个世界更加美丽。
2005-3-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
blue777
中级用户




积分 452
发帖 134
注册 2004-6-16
状态 离线
『第 58 楼』:  

实在不好意思,我前天用的grldr不是最新pre4版的,我今天用最新版安装到软盘,启动先出来如下界面:
find /menu.lst
enter commandline mode
5秒倒计时后就出来了menu.lst界面.我的误报,给您添麻烦了.
但是,还有个问题依旧没解决,就是将该软盘保存为image,将此image作为引导文件做成启动光盘,在虚拟机中测试,依然不能启动,除了机器自检,什么界面都出不来.
如果老方法制作的含stage1,stage2的image,做成启动光盘则可以顺利启动.

2005-3-11 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 59 楼』:  

我又检查了一遍 GRLDR 第四扇区的代码,未发现任何错误。

我制作了一个用 grldr 来引导的光盘,在虚拟机和真实机中都能成功启动并进入通常的 menu 界面。我采用的虚拟机是 qemu软件。由此看来,你所遇到的错误估计还是由于你自己的什么失误造成的。如果你能确认绝对不是由于你自己的失误造成的,那还可能有以下一些原因:

1。你所用的虚拟机不能完全遵守 BIOS 启动规范(这是多年以来早已被广泛认可的工业标准),比如在从 CDROM 引导的时候,不能正确地将 DL=0 传递给光盘中软盘映象的引导代码。这也就是说,虚拟机的BIOS存在BUG。

2。你所用的虚拟机不能完全遵守 BIOS 启动规范(这是多年以来早已被广泛认可的工业标准),比如在从 CDROM 引导的时候,不能正确地将软盘规格数据(C/H/S) 传递给光盘中软盘映象的引导代码,导致该引导代码在调用 int13时出现误读或失败。这也就是说,虚拟机的BIOS存在BUG。

3。你的光盘制作工具,或者ISO文件制作工具含有未知的 (或者随机的) BUG,比如将软盘映象的位置搞错,从而制作出了一个无效的、不可引导的光盘。

大致情况应当就是这样的,除了上述这些情况以外,应当不会再有其它的可能了。






因为我们亲手创建,这个世界更加美丽。
2005-3-11 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
blue777
中级用户




积分 452
发帖 134
注册 2004-6-16
状态 离线
『第 60 楼』:  

不点兄,老是打扰麻烦你,真是不好意思,我是在虚拟机VPC5.2版下测试的,光盘制作工具就是用UltraISO,您提到的三种可能都不存在.这样吧,我将我做的grldr.img上传上来,该镜像用的是您ftp上3月9日最新的grldr制作的,用在软驱上(真实的,虚拟的,虚拟机的)都可正常启动,但做成启动光盘就不能启动了.麻烦您试验下看看究竟是什么原因?打开附件

[此贴子已经被作者于2005-3-11 16:48:05编辑过]




2005-3-11 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] ... [17] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: