Board logo

标题: 求助!memdisk 启动 .zip 压缩镜像时说非系统磁盘 [打印本页]

作者: xiaoyunwang     时间: 2008-10-22 16:19    标题: 求助!memdisk 启动 .zip 压缩镜像时说非系统磁盘

是这样的,我用 bcdw 引导 zjz.img 镜像,其中 zjz.img 已 bootlace --floppy --chs zjz.img 写入引导码,并加入 grldr (0.4.3版的,发现 0.4.4版的显示不出中文),menu.lst 其它相关文件,在 zjz.img 中有一个容量为 56.8 MB 的 zjzdos.img ,用 menu.lst 中的 map --mem /zjzdos.img (fd0) 成功启动,我想压缩减少体积,将 zjz.img 中的 zjzdos.img 压缩后为 zjzdos.zip 体积由 56.8 MB 变为 34.9 MB,放到 zjz.img 中, menu.lst 中用
  kernel /memdisk.gz c=63 h=64 s=32 floppy
  initrd /zjzdos.zip
借 bcdw 启动 zjz.img ,zjz.img 中的 Grub4DOS 启动 zjzdos.zip 后却提示:



而内面 zjzdos.zip 中的 zjzdos.img 是可以单独用 Grub4DOS 引导的啊,chs 参数计算也正确啊,c 是取整值,我有将 c 改成 64 , 63 两个上下端都不行的,求 Grub4DOS 高手帮忙,如何让其启动成功。

[ Last edited by xiaoyunwang on 2008-10-22 at 16:41 ]
作者: lianjiang2004     时间: 2008-10-22 19:07
应该是img的制作不是很标准。
memdisk对img的要求比较高,可用map方式引导。
作者: lianjiang2004     时间: 2008-10-22 19:09
不知为何喜欢用img套img方式,有何优点?
作者: xiaoyunwang     时间: 2008-10-25 09:54
由 56.8 MB 变为 34.9 MB 的 .zip 减少体积啊,以最大限度的节省空间,要求 Esboot (或Bcdw)制作光盘菜单时引导对超大的 .IMG 读出的 A: 能读写啊,因此 esboot 启动 IMG 后借 Grub4DOS 再启动一个 IMG(真正的 IMG 工具镜像) 完成 A: 能够读写(因为chainloader /io.sys不能读写A:所以只有IMG套IMG了)。这下倒霉了,我用 fastslz 发布的几个据说比其它 IMG 镜像更能让 Grub4DOS 引导成功,我选了一个超大的,做好后还是只能 map --mem 启动成功,压缩成 .ZIP 后就启动失败。

[ Last edited by xiaoyunwang on 2008-10-25 at 10:03 ]
作者: lianjiang2004     时间: 2008-10-25 13:16
bcdw--grub--img.gz,效果不是一样的吗?
启动效率应该还要高些。
作者: zw2312914     时间: 2008-10-25 18:34
memdisk.gz 是syslinux中的工具,通常使用它出现无法引导的问题,跟grub4已没有关系。

grub4自身所带的仿真功能比memdisk强大太多,比如可以直接引导iso,可以进行磁盘映射,同时加载多个镜像,引导镜像无需指定chs值等等。如果不是特别偏爱memdisk,或者把它作为备用方案的话,实际上grub4是不需它的。只是需注意,grub4  支持的是gzip压缩格式。

因此,只从减少体积来说,楼主只用grub4即可,memdisk和bcdw都可以去除。因为grub4本身就能很好的支持各种启动介质和引导方式。

[ Last edited by zw2312914 on 2008-10-25 at 18:46 ]
作者: lianjiang2004     时间: 2008-10-25 18:47
map与memdisk,最好两种方式都保留,以实现最好的兼容性。
作者: xiaoyunwang     时间: 2008-10-26 13:03
原来 Grub4DOS 可以直接启动 .GZ 压缩的 IMG 镜像,看来我得多学习啊,我试试看,据说,用 Grldr 引导不具通用性,用 Grub.exe 程序好一点,不知是否如此。

[ Last edited by xiaoyunwang on 2008-10-26 at 13:08 ]
作者: lianjiang2004     时间: 2008-10-26 13:23


  Quote:
Originally posted by xiaoyunwang at 2008-10-26 13:03:
原来 Grub4DOS 可以直接启动 .GZ 压缩的 IMG 镜像,看来我得多学习啊,我试试看,据说,用 Grldr 引导不具通用性,用 Grub.exe 程序好一点,不知是否如此。 ...

个人以为应该是grldr好于grub.exe吧。

bcdw--grldr--img.gz的方式,应该不会比你用的bcdw--img--grldr--img.gz的方式差。
既然是考虑通用性问题,两者都用grldr,而并非你用的是grub.exe引导,而我用的是grldr。呵呵。

当然,不同的方式中,grub的兼容性表现,仅是推测,到底如何,还需作者解释。
作者: xiaoyunwang     时间: 2008-10-26 13:27
不错,太感谢了,原来 Grub4DOS 真的直接启动了 .GZ 压缩的 .IMG 镜像,我才不会偏爱 memdisk 启动和 .ZIP 压缩的格式呢,我看到很多大镜像压缩后都是用 memdisk 启动的,原以为 Grub4DOS 不能启动直接压缩的镜像,网上相关的一些文章也是这样说的,近日一试,又长见识了。

[ Last edited by xiaoyunwang on 2008-10-26 at 13:39 ]
作者: xiaoyunwang     时间: 2008-10-26 13:37


  Quote:
Originally posted by lianjiang2004 at 2008-10-26 01:23 PM:

个人以为应该是grldr好于grub.exe吧。

bcdw--grldr--img.gz的方式,应该不会比你用的bcdw--img--grldr--img.gz的方式差。
既然是考虑通用性问题,两者都用grld ...

那是肯定的,感谢 lianjiang 兄

bcdw--grldr--img.gz
bcdw--grub--img.gz

我再仔细看一下你的教程(看了又忘了).
要弄出中文菜单和将中文菜单置于背景图像上可能我还要学习一下了,grub4dos 0.4.3 弄得出中文菜单,偏偏 0.4.4 就弄不出了,也是同样的操作方法。
作者: lianjiang2004     时间: 2008-10-26 16:48
map是不能压缩的,而map --mem是支持压缩的。
早期的文章,一般都是基于gnu grub的,没有map --mem功能。
加上一般的img很少人用3-50mb的大家伙,没必要压缩。压缩后自己处理也麻烦。
作者: lianjiang2004     时间: 2008-10-26 17:10
Update 3:        Beginning at version 0.4.0, GRUB for DOS supports memdrives.
                Example:

                        # boot into a floppy image
                        map --mem (hd0,0)/floppy.img (fd0)
                        map --hook
                        chainloader (fd0)+1
                        rootnoverify (fd0)
                        map --floppies=1
                        boot

                Because the image will be copied to a memory area, the image
                itself can be non-contiguous and even gzipped.
作者: xiaoyunwang     时间: 2008-10-27 03:13


  Quote:
Originally posted by lianjiang2004 at 2008-10-26 05:10 PM:
Update 3:        Beginning at version 0.4.0, GRUB for DOS supports memdrives.
                Example:

                        # boot into a floppy image
                        map --mem (hd0,0)/floppy.img (fd0)
                        map --hook
                        chainloader (fd0)+1
                 ...

又出现一个新问题,不知何故,用 2008-3-14 日期的 Grub4DOS 中的中文 Grldr 才能启动 map --mem /boot/grub/zjzdos.gz (fd0)  而最新版 2008-10-22 日期的 Grub4DOS 的中文 Grldr 启动时还是报非系统磁盘(zjzdos.gz 共 38 MB):



难道最新版的还敌不过早先的版本?郁闷啊!
作者: lianjiang2004     时间: 2008-10-27 07:57


  Quote:
Originally posted by xiaoyunwang at 2008-10-27 03:13:


又出现一个新问题,不知何故,用 2008-3-14 日期的 Grub4DOS 中的中文 Grldr 才能启动 map --mem /boot/grub/zjzdos.gz (fd0)  而最新版 2008-10-22 日期的 Grub4DOS 的中 ...

解决其他bug时,引入了新的bug,不是没这可能,新版存在的问题,需要你到官网报告。