无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
12
返回列表 发新帖
楼主: thttht
打印 上一主题 下一主题

GRUB4DOS发现一个BUG问题!!!(chenall老师又有一个新问题帮忙看看!)

[复制链接]
31#
发表于 2010-4-20 08:06:01 | 只看该作者
文件放在FTP://60.190.19.108/zhhsh/20100415正式版

我虚拟机VM7.0可以重现,不过要多试几次。

[ 本帖最后由 zhaohj 于 2010-4-20 08:13 编辑 ]

Snap2.jpg (108.76 KB, 下载次数: 108)

正常的

正常的

Snap1.jpg (97.76 KB, 下载次数: 93)

非正常的

非正常的
回复

使用道具 举报

32#
发表于 2010-4-20 09:05:59 | 只看该作者
在乱码情况下,write 0x400018  0xb 就不乱码了。
这就是说,0x400018需要保护或RESET.

现在解决办法是在UNIFONT前write 0x400018  0xb 确保不乱码(实际上也不能说乱码,是只写了半个汉字)。
回复

使用道具 举报

33#
发表于 2010-4-20 12:44:52 | 只看该作者
谢谢zhaohj .

明白了,晚上上传一个新版本

[ 本帖最后由 chenall 于 2010-4-20 13:11 编辑 ]
回复

使用道具 举报

34#
 楼主| 发表于 2010-4-20 14:47:27 | 只看该作者
原帖由 chenall 于 2010-4-19 15:05 发表
对不起,我还是没有完全明白。
具体是什么失败,WENV执行失败?map命令失败?还是????

不过对于command --set-path建议使用一个绝对路径(尽量保证这个路径一直可以访问)



不好意思!我的这个菜单在执行时并不是WENV执行失败而是在执行map命令时失败的,执行这个菜单时手动输入的文件必须和外部命令在同一个分区不然在执行map命令时就会失败!说找不到文件!其实WENV执行手动输入的文件路径和文件名时已经通过并找到了文件后执行下一步map命令时会失败!在整个过程中WENV执行没有什么问题,问题出在WENV执行完进行下一步map命令时!如果外部命令和手动输入的文件在同一个分区里,目录路径不同也没有关系,就会成功启动!

在你的提示下我把command --set-path使用一个绝对路径后以上问题就没有了!看来还是因为我原来菜单command --set-path设置和后面的WENV执行手动输入的文件后并map时WENV变量的设备根目录和我原来菜单command --set-path设置的根目录有冲突吧?是不是在command --set-path没有用绝对路径而搜索到的路径和WENV变量搜索储存的文件根目录产生了混淆而导致map时是到command --set-path的根目录里找文件而没有在WENV变量手动输入的搜索到的文件根目录去map文件,这样路径相同但设备根目录已经改变导致map文件时找不到文件了!不知道这种问题应该是使用方法方面的错误还是属于WENV和command --set-path搜索设置路径方面冲突的BUG!!!

不过问题已经找到并按你的方法解决设置绝对路径!!!谢谢chenall老师!这个属于不属于BUG我不太清楚!同时也感谢zhaohj对我的帮助!谢谢!!!
回复

使用道具 举报

35#
发表于 2010-4-20 15:09:55 | 只看该作者
失败的情况下,你返回到命令行查看一下
GRUB>command
我想一般(bd)是不会变的,你的主要问题还是大小写混合引起的。
G4D对大小写太敏感了,设备名都是小写,文件名扩展名包括路径要么全大写,要么全小写。
象这个 map --mem (fd3)/srs/srs_f6.IMG (rd)就不行,map --mem (fd3)/SRS/SRS_F6.img (rd)也不行
          map --mem (FD3)/srs/srs_f6.img (rd)就不行,map --mem (fd3)/SRS/SRS_F6.IMG (RD)也不行

         map --mem (fd3)/srs/srs_f6.img (rd)就行,map --mem (fd3)/SRS/SRS_F6.IMG (rd)也行
回复

使用道具 举报

36#
 楼主| 发表于 2010-4-20 15:33:08 | 只看该作者
原帖由 zhaohj 于 2010-4-20 15:09 发表
失败的情况下,你返回到命令行查看一下
GRUB>command
我想一般(bd)是不会变的,你的主要问题还是大小写混合引起的。
G4D对大小写太敏感了,设备名都是小写,文件名扩展名包括路径要么全大写,要么全小写。
...



这个在你上次发帖说的时候这个问题我已经改了!现在看应该不完全是大小写的问题!我个人觉得还是command --set-path搜索并设置的根设备和后面WENV变量搜索储存的文件根目录产生了相互影响!command --set-path不用搜索设置而是直接指定使用绝对路径相同的菜单就不会出现这样的问题了!这个菜单如果你修改好大小写的问题在虚拟机里把GRUB4DOS和外部命令放在硬盘A分区,把要加载的ISO文件放在硬盘B分区,command --set-path这里用
find --set-root /boot/grub/fonts.gz 
command --set-path=()/boot/grub/

不直接指定使用绝对路径应该可以重现我说的现象!

点评

混沌剑神 www.aoswx.com/book/991.html 永生之门www.gmwxw.com/book/4185.html  发表于 2014-9-26 16:59
回复

使用道具 举报

37#
发表于 2010-4-20 15:50:34 | 只看该作者
找不到文件可能是提示找不到WENV文件。。
你必须保证wenv可以访问。

不建议使用
command --set-path=()/boot/grub/

因为这时如果执行了root命令那就可能会找不到外部命令。

所以你还是先试试使用绝对路径像(bd)或(hd0,0)之类的。
回复

使用道具 举报

38#
发表于 2010-4-20 15:52:52 | 只看该作者
对于外部命令
有空我会尝试一些改进。只要第一次执行这个命令成功,就把这个命令放到内存中。这样一般就不会找不到了。
回复

使用道具 举报

39#
 楼主| 发表于 2010-4-20 16:01:42 | 只看该作者
原帖由 chenall 于 2010-4-20 15:50 发表
找不到文件可能是提示找不到WENV文件。。
你必须保证wenv可以访问。

不建议使用
command --set-path=()/boot/grub/

因为这时如果执行了root命令那就可能会找不到外部命令。

所以你还是先试试使用绝对 ...



这个时候wenv应该是可以访问的,
WENV run find --set-root ${ISO} || WENV set ISO=$input,Input new ISO file PATH: && fallback --go 3
执行完这一步时都没有问题接下来就执行
WENV run map ${ISO} (0xff) || WENV run map --mem ${ISO} (0xff)
这一步时提示找不到文件,这之间没有在执行root命令,
我马上用命令行试试提示找不到文件到底是找不到WENV文件了还是找不到ISO文件!

我现在是按你的建议command --set-path使用了绝对路径,并且在使用了绝对路径后这个问题也的确是解决了!

================================================================================================
有空我会尝试一些改进。只要第一次执行这个命令成功,就把这个命令放到内存中。这样一般就不会找不到了。

不知道是不是可以把比较成熟稳定的外部命令加入到 GRUB4DOS中啊!

[ 本帖最后由 thttht 于 2010-4-20 16:05 编辑 ]
回复

使用道具 举报

40#
发表于 2010-4-20 16:06:12 | 只看该作者
原帖由 chenall 于 2010-4-20 15:52 发表
对于外部命令
有空我会尝试一些改进。只要第一次执行这个命令成功,就把这个命令放到内存中。这样一般就不会找不到了。


那这个外部命令成功,其他外部命令怎办?
我觉得这样很好,放到内存万一冲突或覆盖也很麻烦。
回复

使用道具 举报

41#
 楼主| 发表于 2010-4-20 16:32:30 | 只看该作者
经测试的确是由于ISO文件和外部命令不在同一个分区,command --set-path又没有使用绝对路径导致在执行WENV set ISO=$input,Input new ISO file PATH: 时root根目录的改变使WENV外部命令找不到!下面的WENV run map --mem ${ISO} (0xff)也就失败了!这里提示的找不到文件的确是在执行WENV run map --mem时已经找不到外部命令WENV!ISO文件和外部命令在同一个分区时root根目录不会改变也就可以成功启动了!

[ 本帖最后由 thttht 于 2010-4-20 16:34 编辑 ]
回复

使用道具 举报

42#
发表于 2010-4-20 16:39:07 | 只看该作者
原帖由 zhaohj 于 2010-4-20 16:06 发表


那这个外部命令成功,其他外部命令怎办?
我觉得这样很好,放到内存万一冲突或覆盖也很麻烦。


当然没有那么简单了。

到时会在内存中开辟一个区域,根据需要(可以设定一个参数)把外部命令放到内存中(这样就相当于内部命令了),只要这个命令使用过一次以后就从内存读取。
回复

使用道具 举报

43#
发表于 2010-4-20 16:42:12 | 只看该作者
C大有空看看下面的,是不是可以取消INIFILE的65535B限制
http://www.cnblogs.com/strinkbug/archive/2008/12/18/1357801.html
回复

使用道具 举报

44#
发表于 2010-4-20 17:23:10 | 只看该作者
新版UNIFONT已经上传,麻烦测试一下。

INIFILE,现在好像用不上了。。
回复

使用道具 举报

45#
发表于 2010-4-21 08:47:50 | 只看该作者
原帖由 chenall 于 2010-4-20 17:23 发表
新版UNIFONT已经上传,麻烦测试一下。

INIFILE,现在好像用不上了。。


完美解决,感谢!

以前运行控制台有些乱码也不见了,现在非常正常。

现在的驱动都超大,hwid部分可能会超过65535B(64KB),得想法改进INIFILE或搞个替代品。
回复

使用道具 举报

46#
发表于 2010-4-21 12:24:29 | 只看该作者
还有一点忘了说了,
新的GRUB4DOS应该可以在内置菜单中使用UNIFONT显示中文了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-27 02:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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