Board logo

标题: 我又回来了!请教grub的问题。 [打印本页]

作者: hunome     时间: 2005-10-28 22:54    标题: 我又回来了!请教grub的问题。

好长时间没有来论坛了,还有人记得我吗?
最近对grub for dos感兴趣,但好多东西都搞不懂,是不是老了?
先问一个问题:
如果我想做一个以grub启动软盘镜像,但机器本身没有软驱,该怎么办?用vmware行吗?
如果以前有贴讨论过,能否告知地址?谢谢!
作者: hunome     时间: 2005-10-28 23:20
哈哈,找到一个gimage,人家以及给做成现成的了。
拿来主义!
作者: GOTOmsdos     时间: 2005-10-29 01:27
哈哈!
作软盘镜象本来就是不需要真软驱的呀!
作者: coolboy163     时间: 2005-11-16 23:04
这个问题,我也有个疑问?
GRUB的启动盘,在VM中怎么建立?
建立的IMG大小有限制没?
作者: 不得不爱     时间: 2005-11-17 07:34
在VM中大概只能建立最大1.44M的!
作者: coolboy163     时间: 2005-11-17 08:35
我制作了一个3M多的IMG镜像,我导入GRUB的启动文件BIN(事先我已经把BOOT\GRUB里的文件存到镜像中了)
结果启动到GRUB时(就是显示GRUB,然后就重起了)....
难道GRUB不支持1.44M以上的镜像?
作者: tinybit     时间: 2005-11-17 18:01
对于你建立的 3M 的 IMG,可以这么做:

bootlace --floppy your_IMG

然后生办法把 GRLDR 和你自己的 menu.lst 这两个文件拷贝到这个 IMG 中(拷贝到它的根目录下),这就够了。

上述 bootlace 需要在 DOS 下操作,也可以在 WINDOWS 98 的 DOS 窗口操作,或者在 WIN2000/XP 的命令提示符下操作。

这个 BOOTLACE 工具是由新版的 GRUB4DOS 提供的。

不仅支持 3M 的 IMG 软盘,任意大小的 IMG 软盘映象都是支持的。

以上没有提到的其他文件和目录,都没有用处。
作者: coolboy163     时间: 2005-11-17 22:10
谢谢7楼,TINYBIT~~~

不过,好象我在GRUB的帮助文件中没发现这个命令,我回去就试!
作者: coolboy163     时间: 2005-11-18 10:20
OK,可以了`~~~~不过又有问题了.
我在GRUB菜单中想调用另外一个IMG,我用如下格式:

title 启动效率源镜像文件
root    (fd0)
kernel (fd0)/tools/memdisk.gz
initrd (fd0)/tools/xly.img


其中TOOLS文件夹包含了MEMDISK.GZ和XLY.IMG了,
但提示错误!
错误行:

kernel (fd0)/tools/memdisk.gz
ERROR26:attemp to access blockouside partition!
不太懂,求教!

[ Last edited by coolboy163 on 2005-11-18 at 10:47 ]
作者: tinybit     时间: 2005-11-18 11:34
这是谁的 BUG,现在还无法判断。如果是 GRUB4DOS 的 bug,有希望很快得到解决的。你能否上载你制作的这个 3M 的 IMG 文件?

不知你是否尝试过以下的启动方式:

title 启动效率源镜像文件-仿真软盘
map --mem (fd0)/tools/xly.img (fd0)
map --floppies=1
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

title 启动效率源镜像文件-仿真硬盘
map --mem (fd0)/tools/xly.img (hd0)
map --harddrives=1
map --hook
chainloader (hd0)+1
rootnoverify (hd0)
boot
作者: coolboy163     时间: 2005-11-18 15:25
谢谢TINYBIT的热心指导,这个方法还没试过,回去试下.有时理论上看的通的,但实际做出来就不行了.
我找了下资料,会不会是不是这样的问题呢?
memdisk.gz 后面要加磁盘的C,H,S三个参数,如果是标准的1.44M的话就可以不必加.
如:kernel (fd0)/tools/memdisk.gz 否则就要在后面加c=xx h=xx s=xx
现在上班没时间弄,回家再研究
作者: tinybit     时间: 2005-11-18 16:05
根据你的描述,你的错误是出在 kernel 一行。kernel 是 grub 的命令,这应当是 GRUB 在读取 memdisk.gz 文件时出现的错误,似乎和 c=xx h=xx s=xx 没有关系。

我怀疑是 BIOS 不承认你的软盘所导致的。如果你的软盘大小超出了 BIOS 所限定的范围,那么 BIOS 就可能不接受。如果是这样,那就无法解决了。比如,有些软驱只支持 1.44M 的软盘,不支持更大的软盘。如果你在 DOS 下可以正常打开 memdisk.gz 等文件(比如在纯 DOS 下可以拷贝软盘里的所有文件到硬盘),那就说明 GRUB 的 kernel 命令有 BUG。
作者: tinybit     时间: 2005-11-18 16:14
刚看到你是用 VMWARE 虚拟机。这个虚拟机不支持大于 1.44M 的软盘。换一个试试,比如用 QEMU,应该就好了。QEMU是一个非常优秀的开源虚拟机软件,功能比 VMWARE 强大得多,它可以运行在许多平台之下,包括 x86 之外的 CPU,如 苹果的,SUN的,SGI的,当然在 x86 平台的 LINUX 和 WINDOWS 下运行最好了。这使得这个虚拟机软件将会越来越流行。
作者: coolboy163     时间: 2005-11-18 16:42
谢谢~~~
TINYBIT真是太热心了,刚忙完.
刚才用你的方法改了下,呵呵,现在问题比较明显了
提示:
map --mem(fd0)/tools/xyl.img(fd0)
autodetect number-of-heads failed.user default value 2
autodetect sectors-per-tract failed.user default value 63
ERROR26:attemp to access blockouside partition!
press any key to continue........

难道真的是VM的问题?只能支持<1.44M的?
再次感谢TINYBIT,我刚学GRUB,能遇见这样的好人,真是太幸运了,现在对GRUB的认识越来越深了.现在网上的资料都是比较浅显,找到的都是一个模样的.(也许我太笨,找不到)

[ Last edited by coolboy163 on 2005-11-18 at 16:44 ]
作者: tinybit     时间: 2005-11-18 17:23
对于这个情况,重新安排你的 xyl.img 或许可以解决问题,也就是说,把 xyl.img 存放在 1.44M 以内,让 DOS和BIOS可以访问到它,刚才粗略试验了一下,QEMU 好像也不支持大于 1.44M 的软盘。

其实,许多真实机的 BIOS 也都不支持 2.88M 以上的大软盘,所以,我们其实也不能责怪 VMWARE 和 QEMU 这些虚拟机。

但是幸运的是,GRUB4DOS 却支持任意大小的软盘,你可以尝试以下操作,不出意外的话,应该成功:

首先从硬盘进入 GRUB4DOS 的环境,假定你的 3M 的 IMG 在 (hd0,0) 上,在 GRUB 提示符下敲入以下命令序列:

map --mem (hd0,0)/your_3M_img (fd0)
map --floppies=1
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

当进入软盘之后,你可以继续操作你的 xly.img。

或者,干脆你直接把 xly.img 放在硬盘上,然后直接用类似的方法用 GRUB4DOS 来运行它就好了。
作者: coolboy163     时间: 2005-11-18 20:37
呵呵,多谢
要是放在硬盘上就简单多了,只不不方便了。
要是放在光盘上的话,用EASYBOOT就很好实现了,
我想,要是GRUB在IMG中可以自由应用的话,就更好了
作者: tinybit     时间: 2005-11-18 21:10
光盘不支持 3M 的软盘启动映像。光盘只能支持 1.2M, 1.44M 和 2.88M 三种软盘格式的启动映像。如果你制作的启动映像不是上述三种格式之一,那么你就无法把它用在光盘启动中。虽然光盘标准规定了上述三种格式是必须支持的,但不一定所有的 BIOS 都能完整实现。制作一个 1.44M 的软盘启动映像是最保险的,可以在所有的 BIOS 下顺利启动。

另一方面,即便 VMWARE 不能运行某个 2.88M 的软盘映像,那也不要紧。当你用它制作光盘启动映像之后,BIOS 有可能顺利启动它。VMWARE 之所以不能运行,那是因为它的 BIOS 不支持大于 1.44M 的软盘。这不等于说,当这个映像制作成光盘之后,光盘的 BIOS 仍然存在这个问题。也就是说,光盘的 BIOS 有可能完美支持 2.88M 的启动映像。你可以试试,同样是 VMWARE,它也许不能启动2.88M的软盘映像(或者虽然勉强启动但进一步操作却存在问题),但用这个软盘映像制作的可启动光盘,却有可能被 VMWARE 正确地、完美地启动。
作者: coolboy163     时间: 2005-11-19 11:27
有道理。
对于光盘启动来说,就没有必要制作超过1。44M的镜像了(多分几个镜像就是了^0^),软盘镜像中的文件引导不像EASYBOOT一样容易实现(我想说的是通过GRUB引导IMG中的不同镜像文件,就是IMG中嵌套IMG,所以,IMG才会很大了,不过好象也没什么实用,呵呵.).
还有,用EASYBOOT做的多启动光盘,是可以引导任意大小的IMG格式的.
作者: jojo2008     时间: 2005-11-19 12:53
vm只支持正规的IMG镜像!