无忧启动论坛

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

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
2491#
发表于 2012-3-22 21:20:12 | 只看该作者

回复 #2493 jianliulin 的帖子

已经找到原因,原来是使用的内存块冲突了。汗.

[ 本帖最后由 chenall 于 2012-3-22 21:22 编辑 ]
回复

使用道具 举报

2492#
发表于 2012-3-23 08:55:36 | 只看该作者
原帖由 chenall 于 2012-3-22 21:20 发表
已经找到原因,原来是使用的内存块冲突了。汗.


测试正常了,顺便问下initrd /SliTaz/ROOTFS4.GZ /SliTaz/ROOTFS3.GZ /SliTaz/ROOTFS2.GZ /SliTaz/ROOTFS1.GZ
是先读哪个进内存的, 读进内存后是不是合并而已,还是要做什么复杂的处理??
回复

使用道具 举报

2493#
发表于 2012-3-23 09:42:33 | 只看该作者

回复 #2495 chenall 的帖子

回复

使用道具 举报

2494#
发表于 2012-3-23 09:47:46 | 只看该作者
to chenall

能否给 ls 命令添加个参数, 让其只列出当前目录下的文件夹和文件
回复

使用道具 举报

2495#
发表于 2012-3-23 09:49:37 | 只看该作者

回复 #2498 jianliulin 的帖子

除了ud  ls列出的都是当前目录下的吧
回复

使用道具 举报

2496#
 楼主| 发表于 2012-3-23 14:15:43 | 只看该作者
对大于4G以上内存的机器,displaymem的结果是否有问题啊?
http://bbs.wuyou.net/forum.php?m ... p;page=5#pid2407414
这个贴图明显说明displaymem多加了1G内存(机器5G内存,怎么计算结果是6G了)
Usable RAM: Base: 0x100000000, Length: 0x80000000 //4G开始长度是2G的范围
map --mem --top的映射情况:Start_Sector=b96ff8,即5933M开始的
回复

使用道具 举报

2497#
发表于 2012-3-24 21:08:45 | 只看该作者
grub4dos-0.4.6a-2012-02-27
笔记本是联想 G470-AH,一个USB 2.0口, 两个USB 3.0口,
U盘插在USB 2.0口,量产后的USB-CDROM 不能引导,提示NO GRLDR
试过三个不同主控的U盘,都不行。
ISO是mkisofs制作的。
同样的ISO刻光盘可以引导。
回复

使用道具 举报

2498#
发表于 2012-3-25 00:22:57 | 只看该作者

回复 #2501 2011lanwenbin 的帖子

请先试试刚上传的版本,如果还是有问题 麻烦到这里报告 .

http://bbs.znpc.net/viewthread.php?tid=6176&extra=page%3D1
回复

使用道具 举报

2499#
 楼主| 发表于 2012-3-25 14:00:54 | 只看该作者
gcc4.5编译的最新版(0.45c-2012-03-24)在命令行下执行commandline N次,按ESC也要N+1次后才能返回主菜单,而且每按一次均换行一次。
这个好像是不点修改了命令执行后不回车换行有关。
回复

使用道具 举报

2500#
发表于 2012-3-25 14:11:58 | 只看该作者

回复 #2503 zhaohj 的帖子

这个应该正常  执行commandline是进入新的控制台模式  按esc只是退出当前的控制台模式

看上去好像是换行  其实是退出当前控制台模式  返回到了前一个控制台模式  退出所有的控制台模式后就返回到菜单了
回复

使用道具 举报

2501#
发表于 2012-3-26 00:09:01 | 只看该作者

有问题

我用freedos->grub.exe->io.sys启动msdos,启动后的光标停留在A的下面,而不是A:>后,dos却能正常使用。感觉怪怪的,autoexec.bat里设了prompt $p$g也不起作用。

请问如何解决?
回复

使用道具 举报

2502#
发表于 2012-3-26 10:08:54 | 只看该作者
借地.问个菜单改怎么写?

命令行输入:
write --offset=510 (hd0)+1 \x00\x00

要转化为菜单:
60 清除HD0的55AA标志 (执行这个菜单,就执行上面命令行)


--------------------------------------------------------------------------
HD1,是不是 write --offset=510 (hd1)+1 \x00\x00   ?
回复

使用道具 举报

2503#
 楼主| 发表于 2012-3-26 10:53:36 | 只看该作者
title  清除HD0的55AA标志
clear
cat --skip=510 (hd0)+1 > (md)0x200+1
checkrange 0xaa55 read 0x40000 && write --offset=510 (hd0)+1 \x00\x00
pause Clear finish
kernel || clear
回复

使用道具 举报

2504#
 楼主| 发表于 2012-3-27 08:23:03 | 只看该作者
我用debian-colinux的gcc4.6编译g4d,commandline多次运行也正常。
应该不是gcc版本问题吧。
不过我打上了补丁:apt-get update

[ 本帖最后由 zhaohj 于 2012-3-27 08:24 编辑 ]
回复

使用道具 举报

2505#
发表于 2012-3-27 10:45:56 | 只看该作者
原帖由 zhaohj 于 2012-3-27 08:23 发表
我用debian-colinux的gcc4.6编译g4d,commandline多次运行也正常。
应该不是gcc版本问题吧。
不过我打上了补丁:apt-get update

gcc 4.6.1確是有點問題,4.6.2及以上的都修正了。
回复

使用道具 举报

2506#
发表于 2012-3-28 09:54:18 | 只看该作者
原帖由 zhaohj 于 2012-3-26 10:53 发表
title  清除HD0的55AA标志
clear
cat --skip=510 (hd0)+1 > (md)0x200+1
checkrange 0xaa55 read 0x40000 && write --offset=510 (hd0)+1 \x00\x00
pause Clear finish
kernel || clear


哦,谢谢. 原来要增加这么多内容

这个肯定是:checkrange 0xaa55

是要把55AA 反过来写为AA55 ?
回复

使用道具 举报

2507#
发表于 2012-3-28 21:17:37 | 只看该作者
用CDIMAGE.EXE创建的BOOTMGR引导的ISO,在由bootmgr转grldr时

使用了两种方式进行对比测试

方法一、bootmgr-〉Bootable CD Wizard v1.5--〉grldr
方法二、bootmgr-〉grldr_cd.bin--〉grldr

grldr_cd.bin源自:http://bbs.znpc.net/viewthread.php?tid=6176&page=9#pid49792





实验一:当要创建为ISO的目录下,文件数目不是很多(例如几十上百个),无论用方法一还是用方法二创建的ISO,均能顺利实现从bootmgr到grldr的切换。

实验二:往要创建为ISO的目录下放入较多文件(例如Windows 2003/XP 安装盘的I386目录,几千个文件),仍旧利用CDIMAGE.EXE和同试验一完全相同的参数创建ISO文件,方法一创建的ISO能顺利实现从bootmgr到grldr的切换,但用方法二所创建的ISO却不能实现从bootmgr到grldr的切换,提示找不到GRLDR,查看ISO文件能发现grldr是存在的。

说明一下:所用grldr 是0.4.5C版。

[ 本帖最后由 chiannet 于 2012-3-28 21:20 编辑 ]
回复

使用道具 举报

2508#
发表于 2012-3-28 22:17:20 | 只看该作者

回复 #2509 roytam1 的帖子

可以修复一下外部命令无法正常运行的问题吗?

具体是这样的。

今天编译一个外部命令,4.5.3、4.6.1、4.6.2 编译出来的都无法运行,提示程序格式不正确。
换回4.3.3编译,运行正常。

但并不是所有的外部命令有这样的情况,是部分外部命令。
回复

使用道具 举报

2509#
发表于 2012-3-29 05:47:36 | 只看该作者

回复 #2512 Plantsoot 的帖子

>>> 提示程序格式不正确。

知道怎么回事了。一定是结尾的 8 字节可执行标志不见了。

>>> 但并不是所有的外部命令有这样的情况,是部分外部命令。

这说明与源代码也有关。你研究成功与失败的源代码的差别,然后修改源代码,自己就能搞定。
回复

使用道具 举报

2510#
发表于 2012-3-29 06:50:23 | 只看该作者
原帖由 chiannet 于 2012-3-28 21:17 发表
用CDIMAGE.EXE创建的BOOTMGR引导的ISO,在由bootmgr转grldr时

使用了两种方式进行对比测试

方法一、bootmgr-〉Bootable CD Wizard v1.5--〉grldr
方法二、bootmgr-〉grldr_cd.bin--〉grldr

grldr_cd. ...



有这样情况

我的CD版正常, 容量扩大到DVD版, 5分钟,都不能进入G4D菜单,后面没等

台式机正常的CD, 笔记本无效

版本: 2011---现在, 很多版本

2010的,会好些, 同样的ISO ,不同版本, 2010的马上出菜单

其它不出,或者很慢.

有时文件很少,也慢.

这样,将导致关键时刻,无法进入DOS,无法MEM或者MAP方式启动PE(我的多启目前只用G4D)

也无法虚拟软盘加载F6驱动.....

没办法,昨天找到新方法解决这些难题,具体还没完工.
起码,做为一种补充,可以在G4D无效时,使用上面功能

新版弄好了,可以顺利进入菜单,也能加载IMG驱动,给PE使用
(不用G4D,也可以实现 PE的ISO整体内存启动, 虚拟软盘驱动F6镜像供PE使用)

多了一个可靠的选择

[ 本帖最后由 dvd008 于 2012-3-29 19:30 编辑 ]
回复

使用道具 举报

2511#
发表于 2012-3-29 07:33:33 | 只看该作者
另外发现一个奇怪的现象(这个现象好像一直都有的):
当ISO文件超过4G(有单个文件超过2G),
如果根目录有0PE.ISO,则直接启动0PE.ISO,而原来的grub4dos菜单失效(进入命令行configfile /BOOT/GRUB/MENU.LST又正常显示菜单)

后面文件超过4G的情况,根目录我不敢放置0PE.ISO了(改为0PE全解开方式)
回复

使用道具 举报

2512#
发表于 2012-3-29 08:36:49 | 只看该作者

回复 #2515 zhs509 的帖子

这个情况,应该是和你的内置或外置菜单有关系吧.
回复

使用道具 举报

2513#
发表于 2012-3-29 08:39:46 | 只看该作者

回复 #2516 chenall 的帖子

我菜单习惯外置,grldr内置菜单我一般没有修改

这个可能和超过4G有关系,因为4G以内好像是正常的
回复

使用道具 举报

2514#
发表于 2012-3-29 08:42:25 | 只看该作者
关于 CDROM 上使用 grldr,看来我不得不说说我的一个认识(不一定对,只是个人的一种感觉,或者猜测)。

什么认识呢?就是,必须使用 mkisofs,别的都不能用。

为什么呢?因为,mkisofs 这个软件是 “ 健康的 ”,别的软件,都是 “ 病态的 ”。

我这么说,倒有可能 “ 打击一大片 ”,落得骂名。但我已声明,这只是个人的猜测而已。谁爱采纳就采纳,不爱采纳就当作垃圾扔掉好了。特别要说明的是,我本人连 mkisofs 也很少使用,基本上可以说,我什么 iso 制作软件都不用,因为我几乎从不制作光盘,尤其是最近几年,连一张可启动光盘也没有刻录过。USB-CDROM 更是历史以来从未做过,连一个都没有做过。

所以说,如果你要相信我的经验,那你就大错特错了。我一点经验都没有。我只有分析。我只有看到别人失败之后的分析。很奇怪的,我所看到的失败者,都不是使用 mkisofs。因此,我能够据此分析,mkisofs 不会造成失败。

为什么 mkisofs 不会失败呢?前面说了,它更健壮。那么技术上是怎么健壮的呢?

很可能是这样的:它把可启动的软件都安排在 ISO 文件的开头(就 “ 物理扇区 ” 来说),便于启动时的查找。如果安排在靠近尾部,那么 BIOS 不一定找得到它,这与硬盘和 USB 盘的情况一样。

不管是哪种原因,总的来看,也只有 mkisofs 是可用的。这只是我个人的认识。当然不一定对,前面说了,不再重复那些废话。

[ 本帖最后由 不点 于 2012-3-29 08:47 编辑 ]
回复

使用道具 举报

2515#
发表于 2012-3-29 08:44:27 | 只看该作者

回复 #2518 不点 的帖子

谢谢不点大回复!

好像有单个文件超过2G(或2G多),用mkisofs打包ISO会有问题(好像是自动过滤了那个大文件)

如果里面没有较大文件,我也是用mkisofs打包ISO的
回复

使用道具 举报

2516#
发表于 2012-3-29 08:53:18 | 只看该作者

回复 #2519 zhs509 的帖子

个人认为,即使它不支持大于 2G 的文件,你也被迫使用它。你不可以使用别的。

使用它制作一个 iso 之后,你可以再用一个 ISO 编辑工具增加那些被过滤掉的文件。通常增加的文件都位于尾部。这样不至于破坏掉 iso 的启动成功率(最起码 grldr、menu.lst 之类的关键文件不会被挤到后面了)。
回复

使用道具 举报

2517#
发表于 2012-3-29 09:12:51 | 只看该作者

回复 #2520 不点 的帖子

用GCC4.6编译的GRUB4DOS,如果使用了旧版本编译的外部命令,那些外部命令有可能会破坏GRUB4DOS的核心.导致出现命令无法找到的问题 .
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=207346

这是正常的吗?
回复

使用道具 举报

2518#
发表于 2012-3-29 09:46:35 | 只看该作者

回复 #2520 不点 的帖子

回老大,我就是先用mkisofs制作一个比较小的ISO(此时根目录有放置0PE.ISO),然后用Ultraiso添加超过2G的单文件进去的。。。

这个应该是4G的一个限制,可能0PE.ISO文件名比较靠前,而且是在根目录引起的。。。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
当然我将0PE.ISO解开放置进去,用mkisofs生成ISO,然后添加大的文件是启动是没问题的

[ 本帖最后由 zhs509 于 2012-3-29 09:48 编辑 ]
回复

使用道具 举报

2519#
发表于 2012-3-29 11:54:08 | 只看该作者

回复 #2521 chenall 的帖子

忙不过来,那个帖子没时间看。只能靠你以及 Roy 来处理了。

如果说旧版 gcc 编译的外部命令竟然能够破坏新版 gcc 编译的核心,我倒是觉得不太可能。怎么会呢?是以什么方式破坏的?不可想象啊。写入内存了?不写入内存,如何破坏?
回复

使用道具 举报

2520#
发表于 2012-3-29 12:07:32 | 只看该作者

回复 #2523 不点 的帖子

我暂时只能找到这个原因了,同样的源码,使用GCC4.5编译的正常.

用GCC4.6编译的如果使用了以前编译的外部命令,执行外部命令的时候即使什么也不做直接退出,也有可能会出现命令不存在的问题.

经过查看,发现builtin_table表的数据中间会被改写了一小部份,原因还没有查出来.所以就导致找命令的时候失败.

我有空会继续了解一下,如果没有办法找到原因,就只好暂时用GCC4.5来编译了.

当然了和编译环境也有关系,我用debian+gcc4.6编译的就没有发现问题.
目前只知道用tinycore gcc4.6编译的会这样.我以为是GCC的问题,重新下载了GCC4.6.3的源码,在TINYCORE环境下重新编译了GCC 4.6.3然后用新的GCC来编译,结果一样.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-26 12:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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