无忧启动论坛

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

grub4dos 外部命令 wenv [2010-10-17 ]

  [复制链接]
1#
发表于 2010-5-10 17:37:01 | 显示全部楼层
我在虚拟机测试的时候,CAT 是可以正常显示内容的. 第一次可以正常读出啊.
之前测试的时候,总也读不出. 读多少次也是0. 虚拟机,DISKGEN3创建的NTFS. 然后,DOS下NTFS4DOS,拷贝的文件,从真实机拷到虚拟机.  这儿有几个问题,一,NTFS是DISKGEN创建的,第二,DOS下拷贝的,使用了NTFS4DOS,而且是从真实机又转到虚拟机的.  使用的是 8.3短文件名.

后来,在PE下,格式化了一下NTFS的盘,从真实机重新拷贝了一下文件. 格式化之前,打开原来拷贝的文件也没发现什么问题,可以正常解压缩的.
再试的时候,就正常了.
回复

使用道具 举报

2#
发表于 2010-5-10 22:02:20 | 显示全部楼层
我又在家里的机器做了一下测试。这次使用的GRUB4DOS版本是0.4.4 2009-3-31. 通过XP的BOOT.INI进行引导GRLDR。

我从论坛下载附件,直接保存到了我的电脑的D盘,为了测试,我使用WINRAR解压开,并重新使用7-ZIP进行了压缩。  这样,要测试的文件一共有三个,一个是直接下载的,一个是解开的,一个是重新压缩的。
直接下载的是: (hd0,4)/BACK[1].XPM.GZ ,解开的是 (hd0,4)/BACK[1].XPM/BACK.XPM ,重新压缩的是 (hd0,4)/BACK.XPM.gz .

我使用下面的命令进行了测试。

cat --hex --length=150 (hd0,4)/BACK[1].XPM.GZ
cat --hex --length=150 (hd0,4)/BACK.XPM.gz
cat --hex --length=150 (hd0,4)/BACK[1].XPM/BACK.XPM

压缩的GZ文件都无法读取,都是0,而解包的XPM可以读取。
以上命令重复执行多次,结果一样。

我的机子有两块硬盘,第一块全是NTFS的分区 (hd0) ,第二块硬盘第一个分区是FAT32的。

接下来,我读取了一下FAT32的分区,使用上面的CAT命令随便找了一个文本文件显示了一下。 再执行上面的命令,结果还是一样。无法读取GZ文件。 这说明应该是GRUB4DOS对NTFS上面比较小的文件读取有BUG。

上面的测试至少说明,压缩文件本身并没有问题,换用不同的压缩软件,读取的时候,结果一样。 换用7-ZIP压缩后文件大小不一样,比原来小。
更换了GRLDR的版本有同样的问题。0.4.4版本也有这个问题.
回复

使用道具 举报

3#
发表于 2010-5-11 16:42:00 | 显示全部楼层
期待尽快解决. 又要辛苦CHENALL了.
昨天从 zhaohj 那里学到东西了,加深了对 write 命令的认识. 搞清了 内存地址与(md)设备之间的联系与区别.

另: 借这个地方问个问题. 总是短消息问别人,回复了大家也看不到.

map /menu (rd) 与 map --mem /menu (rd) 有区别吗??   (rd)本来就是内存驱动器吧??
还是我理解有误?  或者应该这样理解:  map /menu (rd) 仅仅是做了映射,我们在访问 (rd)的时候,指向了 /menu,这里假设 / 指的是硬盘,我们在读取 (rd)的时候,实际上是记问的硬盘??  而 map --mem /menu (rd) 是把 /menu 放到内存以后,又映射到了 (rd) ,然后,我们访问 (rd) 的时候,是访问的内存?

另外,使用上面的命令,是不是要求 文件是 UTF-8格式的???  还是其它要求?
回复

使用道具 举报

4#
发表于 2010-5-12 14:56:16 | 显示全部楼层
原帖由 hhh333 于 2010-5-12 13:17 发表
那就基本肯定是GZ解压模块的问题;或者splashimage命令代码存在瑕疵。

应该不是 splashimage 命令的问题,因为 cat 命令也不正常,我在测试的时候也是花屏的,花的很厉害.
回复

使用道具 举报

5#
发表于 2010-5-12 15:22:15 | 显示全部楼层
原帖由 <i>zhaohj</i> 于 2010-5-11 18:40 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=1949643&ptid=159851" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
map对文件的要求是这个文件是连续存放的,要求比较高。<br />
如果连续存放的文件也可用map。<br />
<br />
这个与UTF-8格式无关,任何文件都可以。如SRS.ZIP也可以。
<br />

既然是与格式无关.那应该与文件大小有关系.  (rd)是内存驱动器,所以不存在要求文件是连续存放这个问题.请看我的虚拟机截图.
文件不是连续存放的,也可以MAP到 (RD). 但是一个小文件却不可以.
回复

使用道具 举报

6#
发表于 2010-5-12 15:26:24 | 显示全部楼层
上传不了文件.晕.

以下是测试结果
grub>map /fd0.lst (rd)

Error 13: Invalid or unsupported executable format

grub>blocklist /grub/unifont
(hd0,0)68160+8,68208+1

grub>map /grub/unifont (rd)
Autodetect numbers-of-heads failed. Use default value 2
Autodetect sectors-per-track failed. Use default value 18

关于 map 文件到 (rd) ,出错的原因终于找到了.  不是文件格式的原因,也与文件是否连续存放无关,因为(rd)本来就是内存驱动器.
只要文件小于512字节,就会出错. 大于等于512字节的时候是正常的. 因为zhaohj维护的 SRS F6中使用了map  MENU到rd,所以,这是一个需要注意的问题.


另外,我在虚拟机的测试:   关于读取小文件出错的问题:  只有在读取扩展分区NTFS的文件时才报错.  只要读一下主分区NTFS或者FAT分区同名的文件(测试的时候用的是相同的文件),再去读一下扩展分区的文件,就能读取了.另外,读取TXT格式的时候是正常的,100多个字节的TXT文件也是正常的,应该还是跟GZ文件有关系.

[ 本帖最后由 sgw888 于 2010-5-12 17:45 编辑 ]
回复

使用道具 举报

7#
发表于 2010-5-19 10:12:43 | 显示全部楼层
测试了一下045B的版本, map 小于512字节的文件到 (rd) 时仍然不能成功. chenall给我的回复是,新版的fat 外部命令已经改进,拷贝文件的速度已经提高,先 map 文件到 (rd)再拷贝跟直接拷贝差别不大.

to:  zhaohj
SRS_F6光盘SRS_F6目录下的MENU文件应该是用户自定义菜单吧. 为了安全起见,建议直接拷贝吧,不用先map到(rd)再拷贝吧?? 只是一个菜单嘛,又不会太大,如果这个文件小于512字节,先map到内存就会出错的.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-3 12:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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