无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: zhaohj
打印 上一主题 下一主题

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
571#
发表于 2011-3-2 08:59:00 | 只看该作者
原帖由 zxw 于 2011-3-2 08:50 发表
嗯,好久不见j大了。支持!

对了,文件夹打包在注册表中用这个似乎更准确:
HKEY_CLASSES_ROOT\Directory\shell


早已经根据你在burgloader.com 上的提示修正了
回复

使用道具 举报

572#
发表于 2011-3-2 09:24:28 | 只看该作者

回复 #570 chenall 的帖子

源代码已经下载学习了。
Chenall兄要动手写GUI程序也是小菜一碟,可能是对GUI没什么兴趣吧。
回复

使用道具 举报

573#
发表于 2011-3-2 09:41:02 | 只看该作者
原帖由 Plantsoot 于 2011-3-2 09:24 发表
源代码已经下载学习了。
Chenall兄要动手写GUI程序也是小菜一碟,可能是对GUI没什么兴趣吧。


呵呵,我还没有用C写过GUI程序,只有以前很早用VB写过一个那个HAL选择程序。

你们都对GUI程序比较熟悉,不妨整一个出来让我研究学习一下,嘻嘻。对于图形编程我还没有入门。

从简单的程序开始学比较容易,其实我也是挺懒的。
回复

使用道具 举报

574#
发表于 2011-3-2 11:11:22 | 只看该作者
原帖由 chenall 于 2011-3-1 17:44 发表
单个模块文件的大小不能超过40KB。如果有超过的可以用GZ压一下应该就行了。


外部命令的文件好像都比较“结实” ,用gzip压缩后也少不了多少,单个模块的大小能否调大点?
chkpci  fat 两个打包后15K,gzip压缩后还有13k,这样打包不了几个就超额了,
回复

使用道具 举报

575#
发表于 2011-3-2 11:16:36 | 只看该作者
嘻,调大到500K就理想了。
回复

使用道具 举报

576#
发表于 2011-3-2 11:23:54 | 只看该作者
原帖由 jianliulin 于 2011-3-2 11:11 发表


外部命令的文件好像都比较“结实” ,用gzip压缩后也少不了多少,单个模块的大小能否调大点?
chkpci  fat 两个打包后15K,gzip压缩后还有13k,这样打包不了几个就超额了,


外部命令单个文件不超过40K,GRUB4DOS.MOD可以超过40K。相当于打包了。
代码中没对GRUB4DOS.MOD限制。
但是如果改成GUI版,把程序修改一下,变成一个打包工具了。这个时候就有体积太大的问题了。

不知道我分析的对不对。

刚才我想当然了,实际测试参数可以超过9个。

[ 本帖最后由 Plantsoot 于 2011-3-2 11:47 编辑 ]
回复

使用道具 举报

577#
发表于 2011-3-2 11:41:55 | 只看该作者
嗯,只是限制单个命令文件不超过40K。

可以自己修改源码取消这个限制。

另外还有一个GRUB4DOS的限制,insmod使用了0xF0000字节内存。
即所有要加载到内存的模块解压后的总大小不可以超过0xf0000。超过了后面的就会加载失败了。

[ 本帖最后由 chenall 于 2011-3-2 11:45 编辑 ]
回复

使用道具 举报

578#
发表于 2011-3-2 11:51:45 | 只看该作者

回复 #577 chenall 的帖子

Grub4dos_Ubuntu 是不是没图形界面?
鼓捣半天也不知道怎么进图形界面。

Windows下msys编译的外部命令grub下无法运行。
回复

使用道具 举报

579#
发表于 2011-3-2 13:09:00 | 只看该作者
嗯,就是没有图形界面。。
只是命令行的。

外部命令目前只能在linux下编译。
回复

使用道具 举报

580#
发表于 2011-3-2 13:22:39 | 只看该作者
to chenall
   有没有什么标记可以判断某个文件是否是grub4dos 的外部命令文件?
回复

使用道具 举报

581#
发表于 2011-3-2 14:16:18 | 只看该作者
原帖由 jianliulin 于 2011-3-2 13:22 发表
to chenall
   有没有什么标记可以判断某个文件是否是grub4dos 的外部命令文件?

grub4dos的外部命令文件有以下标志

文件未尾肯定是以下8个字节
05 18 05 03 BA A7 BA BC
回复

使用道具 举报

582#
发表于 2011-3-2 14:53:17 | 只看该作者
原帖由 chenall 于 2011-3-2 14:16 发表

grub4dos的外部命令文件有以下标志

文件未尾肯定是以下8个字节
05 18 05 03 BA A7 BA BC



http://grubutils.googlecode.com/files/fat-2010-12-30.zip 这个外部命令末尾就不是以上字符结束
回复

使用道具 举报

583#
 楼主| 发表于 2011-3-2 15:03:18 | 只看该作者
fat命令除外,fat文件找不到特殊标志
只找到文件未尾最后2个字节是
00 00
回复

使用道具 举报

584#
发表于 2011-3-2 15:22:44 | 只看该作者
因为经过GZ压缩过了,,,用GZIP解压后肯定有。
回复

使用道具 举报

585#
发表于 2011-3-2 15:25:42 | 只看该作者
这个fat.mod是使用makemod生成的嗎?
擴展名為.mod的必須使用makemod生成,否則是不行的。。
回复

使用道具 举报

586#
发表于 2011-3-2 15:26:52 | 只看该作者
原帖由 chenall 于 2011-3-2 15:22 发表
因为经过GZ压缩过了,,,用GZIP解压后肯定有。


原来这样,怪不得刚才打包fat后加载失败,fat是早已经压缩过的

[ 本帖最后由 jianliulin 于 2011-3-2 17:07 编辑 ]
回复

使用道具 举报

587#
 楼主| 发表于 2011-3-2 15:33:16 | 只看该作者
压缩过的也没关系,下面的fat已经gz压缩,用makemod fat生成改名为fat.mod

Snap1.jpg (68.33 KB, 下载次数: 101)

Snap1.jpg
回复

使用道具 举报

588#
发表于 2011-3-2 15:33:33 | 只看该作者
因為FAT比較大,所以在编译完成后就顺便压缩了一下,其它的命令都是没有压缩的。
回复

使用道具 举报

589#
发表于 2011-3-2 15:33:54 | 只看该作者
原帖由 chenall 于 2011-3-2 15:25 发表
这个fat.mod是使用makemod生成的嗎?
擴展名為.mod的必須使用makemod生成,否則是不行的。。



问题找到了,是因为我打包时候再次gzip压缩了fat模块造成的,makmod把外部命令合在一个文件,我用delphi实现makmod功能,且合并前先判断是否是外面命令文件并gzip压缩,

现在ok了:


[ 本帖最后由 jianliulin 于 2011-3-2 15:39 编辑 ]
回复

使用道具 举报

590#
 楼主| 发表于 2011-3-2 15:40:36 | 只看该作者
可以这样,先不管外部命令是否GZ压缩,生成mod后再把这个mod用gz压缩
回复

使用道具 举报

591#
发表于 2011-3-2 15:48:56 | 只看该作者
打包前改为以下判断:
先检查是否是标准的外部命令,若不是则试图解压后判断,若还不是或gzip解压失败则抛弃此文件,继续打包下一个

[ 本帖最后由 jianliulin 于 2011-3-3 11:40 编辑 ]
回复

使用道具 举报

592#
发表于 2011-3-2 20:58:10 | 只看该作者

回复 #591 jianliulin 的帖子

我倒是偏向于先判断是否是gzip压缩文件,如果是gzip压缩过的也不解压到磁盘,而是解压到Stream,再读Stream中的外部命令标志,这样操作就不需要在磁盘上写临时文件。

我还没写,不知道这样好不好。
回复

使用道具 举报

593#
发表于 2011-3-2 22:44:59 | 只看该作者
@ jianliulin:
批处理也应该可以打包吧

看了一下,新版新增了一些功能,在线更新grldr,较为贴心!

[ 本帖最后由 zxw 于 2011-3-2 22:49 编辑 ]
回复

使用道具 举报

594#
发表于 2011-3-3 09:03:29 | 只看该作者
首先判断文件头

如果是GZIP那前两个字节的值会是以下其中一样(现在只要判断第一个就可以了)
#define GZIP_HDR_LE      0x8B1F
#define OLD_GZIP_HDR_LE  0x9E1F
若是GZ文件就解压,然后继续。

如果前面的4个字节的值是 0x54414221     //!BAT
则认为是批处理文件。

如果文件尾是GRUB4DOS的可执行文件签名,就认为是外部命令,否则非法。
回复

使用道具 举报

595#
发表于 2011-3-3 09:08:52 | 只看该作者
另外更新到最新版本,目前好像是按最近的日期依次查找的,这样如果长时间没有更新则可能要查找挺久的。

建议使用RSS来获取
RSS地址.
http://code.google.com/feeds/p/grub4dos-chenall/downloads/basic
回复

使用道具 举报

596#
 楼主| 发表于 2011-3-3 09:48:40 | 只看该作者
批处理也可以打包进MOD吗?
回复

使用道具 举报

597#
发表于 2011-3-3 10:01:36 | 只看该作者
原帖由 chenall 于 2011-3-3 09:08 发表
另外更新到最新版本,目前好像是按最近的日期依次查找的,这样如果长时间没有更新则可能要查找挺久的。

建议使用RSS来获取
RSS地址.
http://code.google.com/feeds/p/grub4dos-chenall/downloads/basic


有这个连接太好了,不知道还有这个东西,呵呵!!!
回复

使用道具 举报

598#
发表于 2011-3-3 10:53:34 | 只看该作者
把批处理当成一个外部命令来处理就行了。
回复

使用道具 举报

599#
发表于 2011-3-3 11:40:31 | 只看该作者
原帖由 zxw 于 2011-3-2 22:44 发表
@ jianliulin:
批处理也应该可以打包吧

原帖由 chenall 于 2011-3-3 09:08 发表
另外更新到最新版本,目前好像是按最近的日期依次查找的,这样如果长时间没有更新则可能要查找挺久的。

建议使用RSS来获取
RSS地址.
http://code.google.com/feeds/p/grub4dos-chenall/downloads/basic



1.添加了对批处理的判断
2.获取grldr版本改为解析rss文件

[ 本帖最后由 jianliulin 于 2011-3-14 16:32 编辑 ]
回复

使用道具 举报

600#
发表于 2011-3-3 11:50:28 | 只看该作者
原帖由 jianliulin 于 2011-3-3 11:40 发表

1.添加了对批处理的判断
2.获取grldr版本改为解析rss文件

新版很好,测试正常。
对了,获取的grub4dos临时保存在什么地方?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-23 20:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表