|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『楼 主』:
找不到U盘 boot/grub下的menu.lst
我想在U盘上使用Grub,于是从http://grub4dos.jot.com/ 下载了最新版(2007-1-7日的0.4.2版)的Grub(包括Grldr和Bootlace等)。步骤如下:
第一种方法:
①我先用Usboot1.68把我的U盘格式化成Usb_zip模式,在U盘上新建Boot/grub目录,把一些必备文件(如镜像文件、Fonts、Mendisk.gz、背景图片文件和menu.lst等)拷入到Boot/grub目录下;
②用Bootlace --floopy 0x00安装Grub到U盘上,再把Grldr拷到U盘根目录。当电脑启动到 Verifying DMI Pool Data.....时又停在那儿了,U盘的灯亮了一会又灭了,再也启动不起来了。找不到U盘上Boot/grub/menu.lst,但U盘上确实有menu.lst。
第二种方法:
①同第一种方法的第①步;
②把Grub.exe拷到U盘的根目录下,再在U盘的根目录下新建一个Autoexec.bat文件,内容是:grub.exe --config-file=(fd0)/boot/grub/menu.lst,能启动成功,但仍找不到U盘Boot/grub下的Menu.lst,而且最下面的一行”高亮选中的条目将会自动运行于n秒后“的提示没有了,只能用方向键选择后再按回车键。如果按C回到Grub的提示符,打入Configfile boot/grub/menu.lst则没有任何问题。
为什么会是这样呢?怎样解决?
[ Last edited by chujiafu on 2007-3-4 at 11:19 PM ]
|
|
2007-2-7 00:33 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
2 楼』:
> 为什么找不到U盘 Boot/grub下的menu.lst?
看来像是一个 BUG。怀疑和文件名以及目录名的大小写有关。我现在只能把这个问题先记下来,等以后看能否搞清楚。
> 但是最下面的一行”高亮选中的条目将会自动运行于n秒后“的提示没有了
我怀疑是不经意多按了一个按键造成的。这就是在 sysoft 时空论坛上所报告的需要清空键盘缓冲区的问题。 因此这个 BUG 应该不难解决。
感谢支持。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-2-7 06:14 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
3 楼』:
Re 不点兄:
①我犯了一个低级错误,把menu.lst的内容搞错了。原先menu.lst的内容是:
timeout 5
default 0
password --md5 $1$QC52$8kJq1W6E7V4oEhXX6EO1h0
fallback 1
splashimage (hd0,0)/boot/grub/intel.xpm.gz
fontfile (hd0,0)/boot/grub/fonts
title 启动 DOS
root (hd0,0)
kernel (hd0,0)/boot/grub/memdisk.gz c=60 h=8 s=36 floppy
initrd (hd0,0)/boot/grub/dos.img
title 启动 Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1
title 从光盘启动
map --mem (hd0,0)/boot/grub/bcdl.ima.gz (fd0)
map --hook
chainloader (fd0)+1
title 重新启动
reboot
title 关机
halt
出现了我在一楼反映的第①种情况。我把menu.lst的内容改成了下面这样:
timeout 5
default 0
password --md5 $1$QC52$8kJq1W6E7V4oEhXX6EO1h0
fallback 1
splashimage (fd0)/boot/grub/intel.xpm.gz
fontfile (fd0)/boot/grub/fonts
title 启动 DOS
root (fd0)
kernel (fd0)/boot/grub/memdisk.gz c=60 h=8 s=36 floppy
initrd (fd0)/boot/grub/dos.img
title 启动 Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1
title 从光盘启动
map --mem (fd0)/boot/grub/bcdl.ima.gz (fd0)
map --hook
chainloader (fd0)+1
title 重新启动
reboot
title 关机
halt
这时问题来了:当电脑启动到 Verifying DMI Pool Data.....时又停在那儿了,U盘的灯亮了一会又灭了,再也启动不起来了。这是用Bootlace 安装Grub到U盘的情形。
②把上面改过的menu.lst用在Autoexec.bat中加入grub.exe --config-file=(fd0)/boot/grub/menu.lst的方法能启动,但现象和一楼我反映的第②种情况相同。怎样清除键盘缓冲区呢?
上述二种情况下的文件名和目录名都是小写的。
|
|
2007-2-7 08:49 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
4 楼』:
是 fallback 1 命令引起的麻烦。去掉这条命令。
这条命令如果用错,会导致死循环,你可以思考一下这个问题。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-2-7 23:10 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
5 楼』:
我去掉Fallback 1这条命令后:如果用Bootlace --floppy 0x00安装Grub到U盘还是不行,启动到Verifying DMI Pool Data............就死机了,按Ctrl+Alt+Del都不能热启动,只能按Reset键重启动。但把Grub放在Autoexec.bat中是可以的,但最后一行提示还是没有。
[ Last edited by chujiafu on 2007-2-8 at 12:23 AM ]
|
|
2007-2-7 23:45 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
6 楼』:
> 如果用Bootlace --floppy 0x00安装Grub到U盘还是不行,启动到Verifying DMI Pool Data.....就死机了
只有靠你自己来 hack 它了。你可看看究竟是 grldr 引导扇区的 BUG 呢,还是什么别的问题?
> 但把Grub放在Autoexec.bat中是可以的,但最后一行提示还是没有。
这不严重,是需要清空键盘缓冲区。等着排除这个 BUG。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-2-8 01:16 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
7 楼』:
可我能力有限呀,不能Hack它,怎么办呢?
|
|
2007-2-8 07:48 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
8 楼』:
什么事都是逼出来的。鸭子也能赶上架。狗急了会跳墙,兔子急了也咬人。
这个问题给人的初步印象就是 U 盘 BIOS 的 BUG 引起的,究竟 BUG 在哪里,这需要确定。
但这不好办的一点就是,引导扇区只有 512 字节,里面不可能加入很多调试代码,所以,在不知道具体原因的情况下,很难用调试的办法来确定问题的位置。所以也就只有靠你自己研究解决了。在你自己的机器上,你会比较方便。当然这要求你投入开发,这也算是苛刻的。
作为第一步,你可以检验我们的引导扇区代码,看看有没有逻辑错误。如果你能发现错误,这就是对开发的贡献,我会把你当作像提交了补丁的人一样来对待。
当然绝大多数人都是希望自己仅仅提出问题,而由别人来解决问题。但是,有些问题是不那么轻易就能解决的。有时候碰上问题恰恰是一种机会,一种幸运。当你最终解决了的时候,你会发现你自己获得的不止这些。那决不是浪费了时间,也决不会是吃亏了。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-2-8 21:20 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
9 楼』:
另外,你也可以考虑试试删除 grldr 文件,看看有无出错信息。如果你能够确认 GRLDR 已经正常启动,你可以考虑在根目录下建立一个空的 menu.lst 文件,看看能否启动到命令行。如果能,那就说明是你的菜单所导致的错误。你再逐步加入菜单项,确定出错的位置。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-2-8 21:38 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
10 楼』:
继续努力,我再去掉Grldr试试看有没有错误提示。
|
|
2007-2-9 02:34 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
11 楼』:
Re 不点兄:
我删除了U盘根目录下的Grldr,启动时显示“No GRLDR”;我在U盘根目录下新建一个空的Menu.lst,启动到Verifying DMI Pool Data.............时又死机了。连Grub的提示符也没有。
|
|
2007-2-10 05:42 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
12 楼』:
这下有点意思了。当 GRLDR 不存在时,确实应该显示 No GRLDR。这就部分地证明了扇区代码是在工作着,起码有 50 % 的把握,来保证扇区引导代码是可靠的。
这里的死机有两种可能:
1。扇区代码需要读取 grldr 文件到内存。在读取过程中死机。
2。读取 GRLDR 到内存已经成功,在将控制转移到 GRLDR 之后死机。
究竟是怎样一种情况,还不容易判断。不过我怀疑是 int13 的 BUG 引起的,因为我们的代码都检查了很多次,不会轻易出错的。又因为你这是一个 U 盘,所以,怀疑 U 盘 BIOS 出错也是清理之中的,因为以前这类情况曾经多次出现。
你能够用 grub.exe 进入 GRUB 环境,所以,请在 GRUB 环境执行
geometry (fd0)
把结果贴出来。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-2-10 10:53 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
13 楼』:
我还有一个MP3,用Bootlace --floppy 0x00安装之后也是这样的情况。
我用U盘启动到Grub命令行之后,打入 Geometry (fd0)后,显示如下:
Warning:BPB cylinders(124) is not equal to the BIOS one(123).
Warning:BPB total sectors(253920) is less than the BIOS one(253951).
drive 0x00(CHS):C/H/S=124/64/32,Sector Count/Size=253920/512
Warning:BPB cylinders(124) is not equal to the BIOS one(123).
Warning:BPB total sectors(253920) is less than the BIOS one(253951).
Filesystem type unknown,partition type 0x74
Filesystem type unknown,partition type 0x65
Filesystem type unknown,partition type 0x53
Filesystem type unknown,partition type 0xbb
Filesystem type unknown,using whole disk.
|
|
2007-2-11 03:56 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
14 楼』:
抱歉这些天很忙,没有及时回复。看来我还需要 cat --hex (fd0)+1 的结果。你可以先用别的工具获得 (fd0) 的第一扇区,然后,与 cat 的结果对比,如果相同,就贴出来。
如果你无法用别的方式获得第一扇区,那就抄写 cat 的结果到这里吧。只要有开头的 6 行就够了。
是这样的:你能够启动 DOS 的扇区,和你用 bootlace 安装的失败扇区,都需要,因此,你最好贴两个。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-2-16 07:24 |
|
|
gne3
高级用户
DOS学徒
积分 526
发帖 252
注册 2007-2-12
状态 离线
|
|
2007-2-17 02:00 |
|