原帖由 不点 于 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 这一段的描述。
要是早贴这个图多好,一下子就找到毛病了,不用浪费这么多的楼层。
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)
6 KB, 下载次数: 131, 下载积分: 无忧币 -2
原帖由 zjzaog 于 2012-3-18 22:06 发表
进系统的这个步骤会提示windows NT 需要最少7mb memory,换成旧版的galdr就完美的进去的,我什么都没有改动,就换了版本
原帖由 xintiandi 于 2012-3-19 11:49 发表
我用的kon没有问题啊。我用的0.4.5c 2012.2.27,只是在有些机子上启动后会蓝屏,但是都可以进入kon的界面和运行他。
2.93 KB, 下载次数: 71, 下载积分: 无忧币 -2
SUC50150.JPG (157.25 KB, 下载次数: 110)
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之前初始化变量内存空间。
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.
SUC50151.JPG (131.66 KB, 下载次数: 104)
SUC50154.JPG (195.8 KB, 下载次数: 117)
map之前
SUC50155.JPG (211.11 KB, 下载次数: 112)
boot之后
原帖由 不点 于 2012-3-20 00:10 发表
看来很难定位了。
先测试一下你的内存布局。有一个外部命令叫做 memcheck,运行于 grub4dos。你在运行了
map --mem (ud)/TOOLS/KONBOOT.IMG (fd0)
map --int15nolow=1
map --hook
之后,手动运行 memcheck 贴出显示结果。
memcheck 命令可以从以下帖子中找到和下载:
http://bbs.znpc.net/viewthread.php?tid=6146
建议你也通读一下这个帖子,以便能够贴出更多的有用信息。
3.3 KB, 下载次数: 24, 下载积分: 无忧币 -2
30.78 KB, 下载次数: 40, 下载积分: 无忧币 -2
更详细的硬件报告
原帖由 rockrock99 于 2011-7-28 18:00发表在时空论坛
近期版本在戴尔Inspiron Laptop N4030笔记本上遇到问题
如题
启动PE中途蓝屏
错误代码:
STOP:0x000000B4(0x8A08A7F8,0x8A084000,0x89F6A000,0x00050000)
目前已测试版本
grub4dos-0.4.5b-2011-07-28 失败
grub4dos-0.4.5b-2011-07-24 失败
grub4dos-0.4.5b-2011-07-14(含以前) 均成功
怀疑跟"2011-07-21 (tinybit)added a map option --int15nolow. Some changes on handler."此项有关
SUC50170.JPG (134.85 KB, 下载次数: 157)
62.39 KB, 下载次数: 52, 下载积分: 无忧币 -2
官方下载的文件,没有经过任何修改,解压密码:kon-boot
13.15 KB, 下载次数: 50, 下载积分: 无忧币 -2
13.15 KB, 下载次数: 41, 下载积分: 无忧币 -2
13.15 KB, 下载次数: 41, 下载积分: 无忧币 -2
1.jpg (149.02 KB, 下载次数: 165)
1、启动的菜单下
SUC50172.JPG (162 KB, 下载次数: 179)
2、先运行memcheck看看,并且read两处重要的地方
SUC50173.JPG (191.38 KB, 下载次数: 161)
3、在手动输入……再一次memcheck看看,并且read两处重要的地方!
SUC50174.JPG (195.73 KB, 下载次数: 168)
4、然后手动输入chainloader (fd0)+1,然后再memcheck一下,
SUC50175.JPG (189.45 KB, 下载次数: 168)
5、再接再厉……,再手动输入rootnoverify (fd0),然后再memcheck看看,
1.jpg (149.02 KB, 下载次数: 171)
6、再手动输入boot,出现kon.img的经典换面,然后发现回到了U盘的启动界面(补图)
SUC50176.JPG (175.15 KB, 下载次数: 172)
7、这时kon.img应该已经起作用,按c命令行,然后memcheck,关键变化!!
SUC50178.JPG (216.15 KB, 下载次数: 176)
8、按Esc退出,然后选择第一项,菜单内容如下
SUC50177.JPG (133.34 KB, 下载次数: 160)
9、然后就死机了,请看图
13.15 KB, 下载次数: 39, 下载积分: 无忧币 -2
SUC50185.JPG (134.42 KB, 下载次数: 140)
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) | Powered by Discuz! X3.3 |