无忧启动论坛

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

[讨论] 再次修改标题!!新版的grldr已经解决了在某些联想老主板上与KON存在内存冲突的问题

[复制链接]
跳转到指定楼层
1#
发表于 2012-3-17 23:58:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新版的grldr已经解决此问题!以下内容成为过去时了……只要升级就ok!!特别感谢勤勉的grub4dos的团队!
【新版的grldr与KON不兼容,启动的时候提示内存不足,换成老版本的却可以用!但是没有VBE的漂亮换面,纠结啊~~】
【----具体的状况请看#86楼拍的图,对比7-14和3-22的图请看#101楼】
【暂时替代方法:1、可以结合memdisk使用;2、也可以通过FBINST调用7.14版的GRLDR,再通过7.14版的GRLDR调用KONBOOT,】
【现在只要升级就可以。】


原帖由 不点 于 2012-3-25 17:06 发表
map 前,内存顶部的 EBDA 占用 1K。

map 后,由于 grub4dos 仿真代码占用 12 K,所以,常规内存顶部总共占用 13 K。

0x280 = 640
0x273 = 627

两者相差 13 K,正常。

0xA0000 - 13×1024 = 0x9CC00

这说明,map 后用户可以使用的常规内存的结尾位于 0x9CC00。

但是,konboot 却报告只有 9B400 的可用常规内存,因此,它自己占用了 6 K 的常规内存。 正是这个占用,导致了问题。它占用内存的同时,还修改了 int 15。它应该修改错了。int15 很复杂,一不小心就要出错。有理由怀疑,konboot 没弄好。

konboot 开源吗?如果开源,我们可以帮它找毛病。如果不是开源的,让其作者解决问题。

[ 本帖最后由 不点 于 2012-3-25 17:15 编辑 ]

原帖由 幸运的草 于 2012-3-25 20:21 发表
回复 #63 zjzaog 的帖子


通过不点的分析,可以判断是由于新版GRLDR对常规内存进行了控制,KONBOOT与之有内存的冲突。
知道问题所在,可采以下取变通方法加以解决。(该方法只对FB制作的U盘,对其他方式不适用)

----------------------------------------------------------------------------------------------------------------------

 下载7.14版的GRLDR,改名为KONBOOT或其他名。修改改名后的grldr内置菜单,在内置菜单中调用KONBOOT。
  修改FBINST菜单,在FBINST菜单中调用这个改名后的GRLDR(7.14版)。

  即通过FBINST调用7.14版的GRLDR,再通过7.14版的GRLDR调用KONBOOT。

原帖由 不点 于 2012-3-26 06:56 发表

个人发表一点揣测性意见:

konboot 有可能建立了一个 int13 的虚拟内存盘。否则,它没必要驻留在常规内存。估计它应该像 grub4dos 以及 memdisk 那样,建立了内存盘。设计者自己设计了一套内存盘,与 grub4dos 步调不一致,产生冲突。尤其是,当它的 int15 代码有漏洞时,还间接地造成死机。

我觉得,作者完全可以优化他的代码,去掉他自己的内存盘。这样,他即不需要写 int13 磁盘仿真代码,也不需要写 int15 内存处理代码,当然还永远不会与 grub4dos、memdisk 等仿真程序造成冲突。

分析如下:

在 map --mem /konboot.gz (fd0) 时,已经把 konboot 的代码加载到软盘上了。他可以修改这个软盘的内容,来达到他的目的。

当然,如果他的程序需要接管键盘输入之类的,那他还是需要另外开辟内存使用区,从而自己处理 int15。

===============

当有人发现 grub4dos 的 int15 有错误时,我们可以纠正。

但是,当任何人都不能发现错误时,那怎么可能纠正呢?

总得有错,才能纠正吧?

代码是开源的,任何人都可以检查。

特别是,konboot 的作者也一定可以检查。如果他发现了 grub4dos 的 int15 代码的毛病,相信他一定会给出报告,甚至直接给出补丁。

所以,这个问题可以先放在这里不管它了。等待 konboot 的作者给出结果。

[ 本帖最后由 不点 于 2012-3-26 14:58 编辑 ]


原帖由 不点 于 2012-3-29 05:35 发表
回复 #101 zjzaog 的帖子


这次终于找到毛病了,功夫不负有心人,很棒。

map 后,kon 还没开始运行,但 3 月 22 日的已经少掉了关于 9C800 - 9F800 这一段的描述。

要是早贴这个图多好,一下子就找到毛病了,不用浪费这么多的楼层。


原帖由 zjzaog 于 2012-3-29 20:54 发表
在时空看到不点大师上传的新版的grldr已经解决了这个问题,大家只要升级就ok,估计不久就能放出新版!完美,这贴可以关了,哈哈


3月29日的GRLDR,测试通过。没有发现与KON冲突。
测试菜单,没有使用多余的参数
map --mem /konboot.gz (fd0)
map (hd0)  (hd1)
map (hd1)  (hd0)
map --hook
chainloader ()+1
rootnoverify (fd0)
大家再通过泛的测试,(非memdisk方式),看是否有问题。

[ 本帖最后由 幸运的草 于 2012-3-29 22:00 编辑 ]


附件
2012-3-29 21:35
  下载次数: 2
grub4dos-0.4.5c-2012-03-29.7z.zip (251.66 KB)
  

[ 本帖最后由 zjzaog 于 2012-3-30 10:11 编辑 ]
2#
发表于 2012-3-18 03:20:57 | 只看该作者
难怪我怎么试都不行,希望c大大改善一下。
回复

使用道具 举报

3#
发表于 2012-3-18 10:22:09 | 只看该作者
很正常的啊,你是怎么启动的。哪个版本?

[ 本帖最后由 chenall 于 2012-3-18 11:44 编辑 ]
回复

使用道具 举报

4#
发表于 2012-3-18 11:41:14 | 只看该作者

回复 #3 chenall 的帖子

报告C大大,我用的是grub4dos-0.4.6a-2012-02-27.7z  版的,

KONBOOT.GZ

6 KB, 下载次数: 131, 下载积分: 无忧币 -2

回复

使用道具 举报

5#
发表于 2012-3-18 11:43:49 | 只看该作者
请先使用0.4.5测试。
回复

使用道具 举报

6#
 楼主| 发表于 2012-3-18 22:06:46 | 只看该作者

回复 #5 chenall 的帖子

进系统的这个步骤会提示windows NT 需要最少7mb memory,换成旧版的galdr就完美的进去的,我什么都没有改动,就换了版本
回复

使用道具 举报

7#
发表于 2012-3-19 11:49:08 | 只看该作者
我用的kon没有问题啊。我用的0.4.5c 2012.2.27,只是在有些机子上启动后会蓝屏,但是都可以进入kon的界面和运行他。
回复

使用道具 举报

8#
发表于 2012-3-19 13:25:15 | 只看该作者
楼主报告问题含糊不清。让人不知道究竟是 0.4.5 的问题呢,还是 0.4.6 的问题。

诸如此类的报告,都白费了工夫,与完全不报告是一样的效果。

我们遇到含糊不清的报告,一般都认为是使用者自己的问题,从而予以忽略。甚至有可能连回帖都不回的。

这是处理此类报告的一般原则。
回复

使用道具 举报

9#
 楼主| 发表于 2012-3-19 17:01:13 | 只看该作者
原帖由 zjzaog 于 2012-3-17 23:58 发表
新版的grldr与KON不兼容,启动的时候提示内存不足,换成老版本的却可以用!但是没有VBE的漂亮换面,纠结啊~~

所以我用的是最新版0.4.6的grldr,在这贴里已经说的很清楚,怎么能说搞不清版本呢?

原帖由 zjzaog 于 2012-3-18 22:06 发表
进系统的这个步骤会提示windows NT 需要最少7mb memory,换成旧版的galdr就完美的进去的,我什么都没有改动,就换了版本

在这里说明了症状,不知不点大师有没有试一下kon与最新版的结合?您是否是看了下面的人说没有问题,所以以为我是乱叫呢?

原帖由 xintiandi 于 2012-3-19 11:49 发表
我用的kon没有问题啊。我用的0.4.5c 2012.2.27,只是在有些机子上启动后会蓝屏,但是都可以进入kon的界面和运行他。

我试用了2012.2.27的0.4.5c和0.4.6a的两个版本,都不行!换成更早的版本却是没有问题的!

[ 本帖最后由 zjzaog 于 2012-3-19 17:26 编辑 ]
回复

使用道具 举报

10#
发表于 2012-3-19 17:09:12 | 只看该作者
很淡定的路过,没有什么好说的。
回复

使用道具 举报

11#
 楼主| 发表于 2012-3-19 17:18:32 | 只看该作者
原帖由 chenall 于 2012-3-19 17:09 发表
很淡定的路过,没有什么好说的。

十分惭愧,让c大笑了,!上资源贴才发现有2。27的0.4.5c的,
惭愧啊,我是通过FbinstTool升级的,升级界面上没有2.27的0.4.5c,只有0.4.6,唉~~~
回复

使用道具 举报

12#
发表于 2012-3-19 17:42:50 | 只看该作者
现在知道了两个问题 。

1.FbinstTool有BUG不能适应同一天发布两个不同版本的情况。
2.grub4dos0.4.6a和KON不兼容(我还没有试,晚上得空再试试看)。
回复

使用道具 举报

13#
 楼主| 发表于 2012-3-19 17:46:06 | 只看该作者

回复 #12 chenall 的帖子

实际上我把整个0.4.5c的从1月17号到2月27号的都遍都出现NT需要7mb的问题,直接卡死了,
回复

使用道具 举报

14#
发表于 2012-3-19 17:50:12 | 只看该作者

回复 #12 chenall 的帖子

我试了下没问题。。。

猜测是zjzaog的konboot版本不太一样。。。
回复

使用道具 举报

15#
发表于 2012-3-19 17:50:52 | 只看该作者

回复 #11 zjzaog 的帖子

既然是搞错了,那不是你的责任。只是以后注意便可。

提醒一下,0.4.5 和 0.4.6 是两个不同的系列。因此,最新版也有两个,一个是 0.4.5 的最新版,一个是 0.4.6 的最新版。

0.4.5 处于 c 开发阶段,c 是候选发布版的意思。
0.4.6 处于 a 开发阶段,a 是 alpha 测试版的意思。
回复

使用道具 举报

16#
 楼主| 发表于 2012-3-19 18:08:40 | 只看该作者
还有,我试用了一下grub4dos-0[1].4.5b-2011-06-19.7z的这个版本是完美进去的,konboot是最新的版本,不是最早的那个

[ 本帖最后由 zjzaog 于 2012-3-19 18:09 编辑 ]

KONBOOTS.rar

2.93 KB, 下载次数: 71, 下载积分: 无忧币 -2

回复

使用道具 举报

17#
发表于 2012-3-19 18:24:14 | 只看该作者

回复 #16 zjzaog 的帖子

那你就得搞清楚,究竟从何时开始,不支持 konboot 了。

开发者有可能犯了某个错误,引入了 bug。但如果不知道从何时引入的 bug,那么,开发人员也很难确定错误在哪里。

因此,你还得进一步测试一下,看究竟从何时开始,首次不支持 konboot。
回复

使用道具 举报

18#
发表于 2012-3-19 20:58:08 | 只看该作者
刚试了一下,在我的电脑上一切正常。0.4.5C和0.4.6A都可以使用。
回复

使用道具 举报

19#
 楼主| 发表于 2012-3-19 22:28:39 | 只看该作者

回复 #18 chenall 的帖子

通过地毯式的换用版本,我发现2011年7月14号的版本是个分水岭,使用之前(包括7月14号)的版本的grldr,kon在我的电脑上完美的进入系统,之后的所有版本都出现错误。并且按任何键都没用,只有按主机上的重启键


[ 本帖最后由 zjzaog 于 2012-3-19 22:33 编辑 ]

SUC50150.JPG (157.25 KB, 下载次数: 96)

SUC50150.JPG
回复

使用道具 举报

20#
 楼主| 发表于 2012-3-19 22:42:30 | 只看该作者
我在grldr的升级记录中看到了这句话
http://code.google.com/p/grub4do ... -03-10.zip&can=2&q=
"迟来的更新,针对自2011-07-16至2012-02-27的改动更新说明,重点在 vbe 模式有关的命令,取消外部命令 unifont 说明,增加外部命令 hotkey 说明。"
肯请不点大师,c大,等诸多前辈研究一下这个情况。会否与VBE有关??特别是7-14之后的版本在我的电脑上都不能用的情况!

[ 本帖最后由 zjzaog 于 2012-3-19 22:49 编辑 ]
回复

使用道具 举报

21#
发表于 2012-3-19 23:02:15 | 只看该作者

回复 #20 zjzaog 的帖子

这个不是更新日志。。。。

ChangeLog_chenall.txt

2011-07-30
        1.批处理执行时允许使用Ctrl+C强制中断运行.

2011-07-19
        1.内置变量?_WENV=?_UUID=?
          注:1.将来会取消?_UUID,为了保持兼容性,暂时先放一段时间.
               请使用%?%或%?_WENV%代替%?_UUID%来获取UUID.
             2.%?%变量可以获取命令返回的字符串信息.
               目前可用的信息有两个.uuid dev(返回指定设备的UUID字符串),cat --locate= (返回最后一个找到的位置)
        2.@random算法修改.


2011-07-13
        1.在执行cmain之前初始化变量内存空间。


ChangeLog_GRUB4DOS.txt

2011-07-27 (tinybit)fixed a careless mistake in clean_entry().
2011-07-21 (tinybit)added a map option --int15nolow. Some changes on handler.
2011-07-10 (tinybit)re-enabled int13/ah=16h floppy detection in int13_handler.
2011-06-28 (tinybit)fixed a careless mistake in probe_mbr(missing evaluation on C/H/S). fixed a bug in clean_entry() which return the address of a local variable.


这个才是更新日志
回复

使用道具 举报

22#
发表于 2012-3-19 23:02:52 | 只看该作者
我自己测试了几台电脑都正常。不排除是你自己使用的问题。

请贴出详细菜单,启动方式,等相关信息。在启动之前最好再贴一下map --status命令的结果。
回复

使用道具 举报

23#
 楼主| 发表于 2012-3-19 23:44:18 | 只看该作者
我是把konboot.img放在ud区,以下是我的详细菜单:
timeout 20
default 0

title [0]LOCAL-SYSTEM
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /ntldr || chainloader /bootmgr

title [1]WIN03-PE.ISO
find --set-root --ignore-floppies --ignore-cd /T/WIN03PE.ISO
map /T/WIN03PE.ISO (0xff)
map --hook
chainloader (0xff)

title [2]WINXP-PE.ISO
map (ud)/0PE/0PE.ISO (0xff)
map --hook
root (0xff)
configfile /0PE/M.0PE

title [3]GHOST-CN.IMG
map --mem (ud)/TOOLS/GHOST.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [4]IMAGE-CN.IMG
map --mem (ud)/TOOLS/IMAGE.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [5]DISKGENS.IMG
map --mem (ud)/TOOLS/DISKGENS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [6]KONBOOT.IMG
map --mem (ud)/TOOLS/KONBOOT.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title [7]PASSWORD.IMG
map --mem (ud)/TOOLS/PASSWORD.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
回复

使用道具 举报

24#
发表于 2012-3-19 23:46:41 | 只看该作者

回复 #23 zjzaog 的帖子

那就是这条了:

2011-07-21 (tinybit)added a map option --int15nolow. Some changes on handler.

新的 int15 默认对 low memory (即低端的常规内存)进行管理,也许你的 PE 不让管理。那你试试在 map --hook 之前添加一条 map --int15nolow=1 命令,如果成功,就证明是你的机器或者你的 PE 的问题了。你也可以在 google 中搜 int15nolow 来了解详细情况。
回复

使用道具 举报

25#
 楼主| 发表于 2012-3-19 23:57:09 | 只看该作者

回复 #24 不点 的帖子

不点大师您好,
刚刚我下载2012年2月27号0.4.5c的grldr,在菜单中贴加红色的内容,仍然出现一样的错误内容。
title [6]KONBOOT.IMG
map --mem (ud)/TOOLS/KONBOOT.IMG (fd0)
map --int15nolow=1
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
回复

使用道具 举报

26#
发表于 2012-3-20 00:10:41 | 只看该作者
看来很难定位了。

先测试一下你的内存布局。有一个外部命令叫做 memcheck,运行于 grub4dos。你在运行了

map --mem (ud)/TOOLS/KONBOOT.IMG (fd0)
map --int15nolow=1
map --hook

之后,手动运行 memcheck 贴出显示结果。

memcheck 命令可以从以下帖子中找到和下载:

http://bbs.znpc.net/viewthread.php?tid=6146

建议你也通读一下这个帖子,以便能够贴出更多的有用信息。
回复

使用道具 举报

27#
 楼主| 发表于 2012-3-20 00:16:58 | 只看该作者
这个是我map之前先map --status一下的结果

SUC50151.JPG (131.66 KB, 下载次数: 86)

SUC50151.JPG
回复

使用道具 举报

28#
发表于 2012-3-20 00:39:42 | 只看该作者
提醒一下,假如只是 konboot 有问题,那也可能是由于 konboot 的某个隐蔽的 bug 造成的。

如果你觉得太麻烦,你也可以放弃查找根源的努力。

总之,首先你自己要多多试验,多多暴露问题。比如说,你以别的方式启动 Windows 成功吗?有 map 的情况,以及没有 map 的情况;带 --mem 的情况以及不带 --mem 的情况,等等等等。也就是说,只要没有了 konboot ,是否全都正常了?这个问题很重要,请一定在经过充分测试后给予答复。
回复

使用道具 举报

29#
 楼主| 发表于 2012-3-20 00:54:51 | 只看该作者

回复 #28 不点 的帖子

注意,这两幅图有一定问题,具体的截图,请看#101楼

我把memcheck和memcheck.c文件放在(ud)\boot\grub和(ud)\boot下面各放一份(为了保险^,^),用2月27号的0.4.5c,手动运行memcheck,提示no such cmomand!!
用2011-7-14号grldr手动运行memcheck成功,一下两张图片,一张是map之前,一张是map之后再boot之后的截图,

[ 本帖最后由 zjzaog 于 2012-3-29 13:46 编辑 ]

SUC50154.JPG (195.8 KB, 下载次数: 100)

map之前

map之前

SUC50155.JPG (211.11 KB, 下载次数: 96)

boot之后

boot之后
回复

使用道具 举报

30#
 楼主| 发表于 2012-3-20 00:57:11 | 只看该作者
2011年7月14号的版本是能完美进入系统的,而0.4.5c的grldr运行konboot之后不能进去,我再去试试带不带--men的区别
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-26 00:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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