|
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 |
|
|