无忧启动论坛

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

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
421#
发表于 2011-10-5 14:47:13 | 显示全部楼层

回复 #1338 zxw 的帖子

之前的版本虽然可以运行,但是实际上没有并没有退出批处理环境,占用了一个进程号。。

你可以尝试一下用旧版的看看运行几次之后将会无法运行任何批处理。有时可能会重启或死机。。
回复

使用道具 举报

422#
发表于 2011-10-6 08:10:24 | 显示全部楼层

回复 #1345 不点 的帖子

1.我试了一下,好像是正常的啊,很早的版本就是这样子的,configfile不会改变当前root(这个或许是BUG),很早的时候我就发现了,只是觉得这个是正常的。

   新版的改动
   rd,configfile (rd)+1不改变boot_drive,
   fb,  从fb启动时不会额外处理boot_drive,即恢复原来的样子。
   因为目前没有比较好的办法确定是否从fb启动的,前面的版本只是判断了ud是否存在,处理看起来是正常的,其实有BUG, 从fb启动后,再chainloader 任意一个grldr都不会改变boot_drive,因为(ud)还存在。

2.我试了好像没有问题啊。我没有改动这一部份的内容。
回复

使用道具 举报

423#
发表于 2011-10-6 08:15:39 | 显示全部楼层

回复 #1342 hhh333 的帖子

你们也许认为这个处理很简单,其实是挺麻烦的,需要的变动太大,并且还会造成不兼容的后果。

还有一点,这个boot_drive的值并不一定正确,这个取决于启动GRLDR的程序是否有把正确的值传递过来。所以也就没有什么意义了。

也许以后考虑内置一个只读变量@boot,在GRLDR启动初始化的时候就写入到变量中。这样就解决问题了,可能会比较简单一些。
回复

使用道具 举报

424#
发表于 2011-10-6 09:19:06 | 显示全部楼层

回复 #1348 tingyue-wu 的帖子

抱歉,我从来没有用过gfxmenu,你的问题,我也没有看明白。

另外,你可以看看前面的贴子
还有这里
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1

新的版本改动相关
回复

使用道具 举报

425#
发表于 2011-10-6 14:06:36 | 显示全部楼层

回复 #1350 hhh333 的帖子

GRLDR再调用另一个GRLDR时就相当于重启了全新的环境,以新的为准,并且所有的以前的变量都会消失。

说实在的GRLDR再调用GRLDR感觉完全没有必要。
回复

使用道具 举报

426#
发表于 2011-10-7 14:55:13 | 显示全部楼层

回复 #1355 hhh333 的帖子

/boot/grub 与 ()/boot/grub

在一般情况下是等效的,但是以下情况例外。
指定了root路径比如

root ()/boot/

这时/boot/grub相当于()/boot/boot/grub

()代表当前磁盘根而/是按当前root开始算。

至于(bd)/boot/grub是特指(bd)磁盘的,如果当前盘刚好等于(bd),就是等效的了。

这个在不修改GRLDR内置菜单,并且使用外置菜单启动的时候会一样

/boot/grub 和 ()/boot/grub 还有(bd)/boot/grub  是属于三个不同的路径,但是在某些情况下这三个的实际路径是一样的。

具体可以去看GRUB4DOS的Readme
回复

使用道具 举报

427#
发表于 2011-10-7 15:23:57 | 显示全部楼层
新的版本测试
http://grub4dos-chenall.googleco ... -2011-10-07-test.7z


        1.新增?_Boot变量,访问启动GRUB4DOS的Boot_drive
          add new Variable ?_Boot to access grub4dos Boot_drive.
        2.为了节省代码GRUB4DOS内部不再处理外部命令WENV的兼容性(WENV tuxw版)
        解决办法如下:
          如果需要使用该版本WENV则自己在菜单或批处理中添加以下命令
          write --offset=0x1f8 (md)0x228+1 ?_WENV\0
        3.uuid 命令对于uuid字符的判断不区分大小写。


另外新的版本,初始化变量时只初始化变量表。即只初始化存放变量表的空间(一个扇区)

[ 本帖最后由 chenall 于 2011-10-7 15:25 编辑 ]
回复

使用道具 举报

428#
发表于 2011-10-7 15:45:54 | 显示全部楼层
直接传到论坛上来。。

grub4dos-0.4.5b-2011-10-07-test.7z

263.74 KB, 下载次数: 13, 下载积分: 无忧币 -2

回复

使用道具 举报

429#
发表于 2011-10-7 15:46:52 | 显示全部楼层

回复 #1359 tingyue-wu 的帖子

?_Boot是一个变量,和其它变量一样使用时直接%?_Boot%就可以了。

注::::区分大小写。
回复

使用道具 举报

430#
发表于 2011-10-7 16:23:26 | 显示全部楼层

回复 #1363 zhaohj 的帖子

1.启动新的GRLDR,所有的变量都重设了,当然就会改变。
2.直接set ?_Boot=xxx
回复

使用道具 举报

431#
发表于 2011-10-7 16:54:56 | 显示全部楼层

回复 #1366 zhaohj 的帖子

?_UUID已经取消,目前的版本只是把?_UUID转换成?_WENV来访问。

%?_WENV%=%?%=%?_UUID%

还在使用?_UUID的请及时更新,建议使用%?%比较简洁。
执行uuid命令后就可以使用%?_WENV%或%?%来得到UUID值。
回复

使用道具 举报

432#
发表于 2011-10-8 10:16:17 | 显示全部楼层

回复 #1377 hhh333 的帖子

?开头变量属于系统变量,用户可以修改,但一般不建议修改。(只有3个变量空间可用)

另外?开头的变量还有一个特性,SETLOCAL/ENDLOCAL对于?开头的变量无效。即SETLOCA/ENDLOCAL不会处理?开头的变量。

有时候这个就很有用了,像MODBOOT里面就有用到
回复

使用道具 举报

433#
发表于 2011-10-8 10:55:38 | 显示全部楼层

回复 #1381 hhh333 的帖子

这个是属于FBINST的问题。
FBINST启动UD区的GRLDR时没有传递正确的DL参数过来。

要检测是否从fb启动,只能初次启动的时候检测

如果你启动之后再chainloader另一个GRLDR,这时的检测就不准了。
回复

使用道具 举报

434#
发表于 2011-10-8 10:56:36 | 显示全部楼层

回复 #1381 hhh333 的帖子

前面一直在讨论的就是这个问题,之前的版本由GRUB4DOS内部简单处理,但是造成了其它BUG。

新的版本取消了,不处理。
回复

使用道具 举报

435#
发表于 2011-10-9 08:14:56 | 显示全部楼层

回复 #1385 hhh333 的帖子

这样子也没有用,还是没有办法正确判断是否从FB启动的。

解决问题的根本在于修改FBINST的源码,不过这些都是汇编的,我看不懂
回复

使用道具 举报

436#
发表于 2011-10-9 11:39:22 | 显示全部楼层

回复 #1373 zhaohj 的帖子

使用pxe keep再chainloader 就不会死了,或者在chainloader之后再执行root (hd0,0)之类的语句也不会死

因为没有pxe keep这时的启动盘还是(pd),启动时自动卸载PXE后再访问这个(pd)会出错,导致卡死(新的版本已经修正这个问题)
回复

使用道具 举报

437#
发表于 2011-10-11 16:12:31 | 显示全部楼层
忘了改掉了,下次再改。。谢谢提醒。。
回复

使用道具 举报

438#
发表于 2011-10-11 22:48:07 | 显示全部楼层

回复 #1391 zxw 的帖子

很早就改了,忘了是从哪个版本开始改的.

看起来NUL和不存在的文件名的效果是一样的,其实处理方法是不一样的。

对于nul直接忽略输出结果。其它情况会尝试写入。

只是新的版本对于输出重定向时文件写入错误的情况直接忽略了。所以看起来是一样的。
回复

使用道具 举报

439#
发表于 2011-10-12 16:45:47 | 显示全部楼层

回复 #1393 zxw 的帖子

请注意

使用 >> (md)+1,1,写入可能会导致系统出错,因为你这样写入实际上修改了中断0的地址,万一刚好有程序用到这个中断的话就会出问题了。

低端的内存不建议随意写入。
回复

使用道具 举报

440#
发表于 2011-10-14 00:29:34 | 显示全部楼层

回复 #1397 sratlf 的帖子

使用WINVBLK正常吗?不使用dd命令是否正常(可以直接映射一个空白的镜像)。
回复

使用道具 举报

441#
发表于 2011-10-14 12:33:13 | 显示全部楼层
难怪,之前我看到报告测了几次都没有发现问题。

因为我都是直接使用map (md)+xxxx的,产生内存盘其实直接map (md)+xxxx (yy)就可以了
没必要map (md)xxx+yyy (zz),除非特别需求。

这个问题的原因这样就很明显了,因为你映射的(99)带有55AA标志,所以firadisk把这个当成是一个软盘来处理了。
回复

使用道具 举报

442#
发表于 2011-10-14 16:28:55 | 显示全部楼层

回复 #1406 快雪时晴 的帖子

map --mem (md)+xxx (yy)

这个是不会改动到(md)+xxx部份的内存的,因为有使用了--mem参数

--mem会把这一部份内存复制过去,原内存不会改动。

低端内存不建议使用是不建议改写。比如

write (md)+xxx之类的。
回复

使用道具 举报

443#
发表于 2011-10-15 23:28:32 | 显示全部楼层

回复 #1409 hotdll 的帖子

哪里不正常?

什么错误?哪里的错误?
回复

使用道具 举报

444#
发表于 2011-10-16 17:05:27 | 显示全部楼层

回复 #1411 幸运的草 的帖子

内置的fontfile是不支持小字库,小字库只是用于测试的。

[ 本帖最后由 chenall 于 2011-10-16 17:39 编辑 ]
回复

使用道具 举报

445#
发表于 2011-10-21 16:55:43 | 显示全部楼层

回复 #1430 zxw 的帖子

新版的ECHO命作了一些改动,以方便以后VBE模式下的颜色。

这个问题其实也不算问题,很少人会这样子。

新版本判断完$[xxx]后面的内容直接就输出了。旧版要返回重新判断。

另外新的版本的颜色代码可以直接使用0xhh的方式
比如
echo $[0x5]test
回复

使用道具 举报

446#
发表于 2011-10-21 17:19:01 | 显示全部楼层

回复 #1433 zxw 的帖子

????

这个也有人利用,,真晕了。。

如何利用的?我没明白。

有必要的话,下次可以改成和旧版的一样。
回复

使用道具 举报

447#
发表于 2011-10-23 21:32:44 | 显示全部楼层

回复 #1438 zhaohj 的帖子

在新版中使用32MB位置的内存是错误的。

因为从32MB开始的内存供外部命令使用,执行外部命令后32MB位置的内存就被改掉了...

如果外部命令不是很大可以用33或35以上的内存。当然可能还得考虑其它因素,可以试试用40MB以上的内存。
回复

使用道具 举报

448#
发表于 2011-10-23 21:36:13 | 显示全部楼层
回复

使用道具 举报

449#
发表于 2011-10-23 21:37:26 | 显示全部楼层

回复 #1439 hhh333 的帖子

为什么不把GRLDR直接作为启动文件?

使用MKISOFS生成ISO时把GRLDR真接作为启动文件,MKISOFS会很好的自动处理。
回复

使用道具 举报

450#
发表于 2011-10-29 16:13:13 | 显示全部楼层

回复 #1450 zxw 的帖子

三个月前就修改了,现在才发现...
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-18 08:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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