中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » 在U盘中使用grub,如何解决这两个问题?
« [1] [2] [3] [4] [5] »
作者:
标题: 在U盘中使用grub,如何解决这两个问题? 上一主题 | 下一主题
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 31 楼』:  

你说用debug如何进行试验吧!

2006-7-24 12:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 32 楼』:  

用第一个即cat --hex (fd0)2878+1就死机!

2006-7-24 12:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 33 楼』:  

neiljoy不防先更新下BIOS

华硕系列好象都支持在线更新

2006-7-24 12:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 34 楼』:  

从华硕网站得知,这已经是最后的BIOS版本。

2006-7-24 12:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 35 楼』:  

再给你一个任务,找出死机和不死机的界限:

cat --hex (fd0)xxxxxx+1

已知当 xxxxxx=0 时不死机,当 xxxxxx=2878 时死机,找出最大的 xxxxxx 值,使得 cat 命令不死机。

就像你刚刚测试的那样,它如果连 1.44M 以内的扇区都不能读的话,我估计玄了,我们可能最终也无能为力。

不过,你还是在 DOS 下做以下测试,死马当活马医:

敲入 debug 进入 debug 的命令行。然后敲入以下命令:

a                       ;这个 a 是汇编命令
mov    AH,8
mov    DL,0         ;DL,0就是代表 (fd0),如果U盘是 (fd1),此处就应该是 mov DL,1
int     13
int     3
                         ;此处多敲一个回车,结束汇编命令
g                       ;这个 g 是运行的意思

好了,现在把屏幕的输出结果贴上来。

最后再用一条 q 命令退出 debug 返回到 DOS 下:

q

[ Last edited by 不点 on 2006-7-24 at 16:24 ]



因为我们亲手创建,这个世界更加美丽。
2006-7-24 16:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 36 楼』:  

我正在作试验,才上网看到你在楼上的内容。先说说我自己作试验的情况,然后再做楼上的试验。
1.  我分别作了含有grub.exe、menu.lst和diskgen.img文件且容量分别为1.44M和2.88M的img镜象;
2.  在虚拟机上试验,运行批处理,1.44M的可以用GRUB启动diskgen.img,但2.88M的不可以,不过不会死机;
3.  在1.44M的情况下,无论有无
map (fd0) (fd1);map --floppies=2
均可启动diskgen.img;
4.  发现一个问题,无论是用最新版还是0.4.1版,即使grub.exe与menu.lst均在软驱根目录下,运行grub.exe也没有菜单显示(在虚拟机和真实软驱中均如此),提示错误17,文件未发现。

结论:1.在U盘为FD或ZIP模式下,无法用U盘上的grub.exe启动U盘内1.44M及其以上容量的镜象文件。
      2.U盘上运行GRUB死机的问题与USB_ZIP盘的数据结构(指有MBR、DBR)有关。

2006-7-24 17:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 37 楼』:  

因此处不能发图,我的图已发往无忧论坛,参见:
http://bbs.wuyou.com/viewthread.php?tid=80080&extra=page%3D1

请尽快察看,说不定会被版主删除的。

2006-7-24 17:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 38 楼』:  

--4.  发现一个问题,无论是用最新版还是0.4.1版,
--即使grub.exe与menu.lst均在软驱根目录下,
--运行grub.exe也没有菜单显示(在虚拟机和真实软驱中均如此),
--提示错误17,文件未发现。

这不是问题。grub.exe 不像 GRLDR 那样,能够判断出所在磁盘的分区号,因此 grub.exe 无法知道你是从软盘根目录运行的 grub.exe。运行 grub.exe 必须带有 --config-file=(fd0)/menu.lst 才行。否则就要用默认的 (hd0,0)/menu.lst



因为我们亲手创建,这个世界更加美丽。
2006-7-24 18:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 39 楼』:  

现提供虚拟机中的试验结果
试验对象:1.44M和2.88M镜象,相当于容量为1.44M(简称A)和2.88M(B)的两个软驱
试验过程:
  1.  运行grub.exe --config-file=(fd0)/menu.lst,A能显示菜单;B不能显示,进入GRUB命令行。
  2.  对B中的文件按顺序存放至空img中:最先是io.sys,接着依次是menu.lst、diskgen.img(720K)、grub.exe,其它文件可不按序放入。
  3.  重新执行grub.exe --config-file=(fd0)/menu.lst,B仍无菜单显示。
  4.  执行cat --hex (fd0)2879+1全显示“F6”,表明该扇区无文件(而且前面几个扇区也是空的),但在2880+1处显示:
      Error 26:Attempt to access block outside partition

疑问:按说几个关键文件均在最前面的扇区,从cat命令来看,也在GRUB读取范围之内,但仍不能显示菜单,也不能启动diskgen.img。不知是何道理?

[ Last edited by neiljoy on 2006-7-24 at 21:58 ]

2006-7-24 21:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 40 楼』:  

很简单,虚拟机的 BIOS 不支持大于 1.44M 的软盘。

前面我说的另外一项测试也是需要的,就是找出使得 cat --hex (fd0)xxxxxxx+1 不死机的最大 xxxxxxx 来。

这个情况我估计还有解决的希望。需要你继续配合测试。

DOS 下用 debug 测试:
a                       ;这个 a 是汇编命令
mov    AX,201
mov    BX,200
mov    CX,4F12
mov    DX,100
int     13
int     3
                         ;此处多敲一个回车,结束汇编命令
g                       ;这个 g 是运行的意思
q                       ;退回到 DOS

报告是否死机。如果不死机,报告右下角显示的是 NC 呢,还是 CY?



因为我们亲手创建,这个世界更加美丽。
2006-7-24 22:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 41 楼』:  

1. 你说的虚拟机的BIOS不支持>1.44M的软盘,如何理解?事实上,我使用的VM同样可以正常启动2.88M的镜象。不支持何以能启动?我的试验又怎么能够进行?

2. 寻找不死机的最大XXXXX,我已经在39楼提供了2.88M(软盘)的测试结果。至于U盘,如果一死机,就要重新按复位键重启,又费时又麻烦,看情况吧,如果超过两次死机我就不想试了。

debug我过一会就试。上次是没有死机,否则无法抓图了!

[ Last edited by neiljoy on 2006-7-24 at 22:53 ]

2006-7-24 22:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 42 楼』:  

1. 能启动,不能说明支持 2.88M,很可能你的文件都在 1.44M 以内。

2. 不要软盘测试结果,要U盘的(你不是要解决U盘不能访问的问题吗?)。测试 U 盘肯定要有死机发生,不过,如果你设计好,只需要若干次测试,就能找到最大的 xxxxx 来。这个并不麻烦,当然也许你觉得麻烦,那就罢了,继续测试 debug 吧。



因为我们亲手创建,这个世界更加美丽。
2006-7-24 23:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neiljoy
初级用户





积分 132
发帖 58
注册 2006-7-23
状态 离线
『第 43 楼』:  

UM近一段时间我常使用,用它启动运行2.88M的镜象文件是常事,均能正常运行,可以肯定的是,我使用的大多数镜象文件的占有空间均接近于2.88M,今天不过是个特例。

通过在虚拟机中对2.88M的试验,我对U盘已经不太乐观了。

现在提交U盘的试验报告:三次死机。
第一次,用2875+1;
第二次,用2850+1;
第三次,严格按照你的debug程序,当执行-g后即死机,此后屏幕当然也无显示,也无必要抓图了。

2006-7-24 23:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 44 楼』:  

你应该用一个小的值去试验,才有希望不死机。

不过,你的测试很重要,debug 的死机,表明 DOS 下也不可以按照 80/2/18 的规格来访问U盘。这很有用。如果这个测试序列能够完成,我想应该解决 U盘访问的问题的,一定行。不过,现在该休息了,明天再来。



因为我们亲手创建,这个世界更加美丽。
2006-7-24 23:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 45 楼』:  

估计 C 最大只能是 7 和 8,所以,用 C=7,H=2,S=18 应该安全。

7 * 2 * 18 = 252
8 * 2 * 18 = 288

所以,我估计用 252 以内的值就不会死机了。最大值应该出现在 252 和 288 之间。

cat --hex (fd0)252+1
cat --hex (fd0)288+1

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

DOS 下用 debug 测试:
a                       ;这个 a 是汇编命令
mov    AX,4100
mov    BX,55AA
mov    DX,0
int     13
int     3
                         ;此处多敲一个回车,结束汇编命令
g                       ;这个 g 是运行的意思
q                       ;退回到 DOS

报告是否死机。如果不死机,报告右下角显示的是 NC 呢,还是 CY?还要报告显示的四个寄存器 AX,BX,CX,DX的值。


不管是否死机,上述测试完了之后,再做以下测试,那么全部的测试就都结束了。


DOS 下用 debug 测试:
a                       ;这个 a 是汇编命令
mov    AX,4800
mov    SI,180
mov    DX,0
int     13
int     3
                         ;此处多敲一个回车,结束汇编命令
g                       ;这个 g 是运行的意思
d 180                 ;显示 180 处的数据
q                       ;退回到 DOS

如果没有死机,把屏幕截图发上来。



因为我们亲手创建,这个世界更加美丽。
2006-7-25 09:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: