中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » 不点大师给看一下,grub在U盘中的测试数据
作者:
标题: 不点大师给看一下,grub在U盘中的测试数据 上一主题 | 下一主题
yzmj
新手上路





积分 16
发帖 7
注册 2005-12-6
状态 离线
『楼 主』:  不点大师给看一下,grub在U盘中的测试数据

我的U盘为ZIP模式,下载的是10月7号的最新版grub.我是在U盘启动到DOS后,运行
grub --config-file=(fd0)/menu.lst后,不死机,真接进入grub命令行模式,可能就是不能读取U盘中的数据,看了你在http://www.cn-dos.net/forum/view ... ghlight=&page=1中给neiljoy
做的解答,我也做了几项测试,希望不点大师能给看一下,不会在DOS 中抓图,只能用键盘了,
cat (fd0,确认为U盘,
geometry(fd0) 测试输出的结果入下:
drive 0*0(CHS):C/H/S=80/2/18  SECTOR COUNT/SIZE=208896/512

cat --hex(fd0)2879+1测试,输出一些十六进制的数据,不会抓图,
cat--hex(fd0)2880+1测试,输入出结果入下:
ERROR 20:selected cylinder exceeds maximalm supported by bios
最大值应该是到2879

以下是在debug中的测试:
1.
a                       ;这个 a 是汇编命令
mov    AH,8
mov    DL,0         ;DL,0就是代表 (fd0),如果U盘是 (fd1),此处就应该是 mov DL,1
int     13
int     3
                         ;此处多敲一个回车,结束汇编命令
g                       ;这个 g 是运行的意思
输出的结果是:
AX=0000   BX=0040   CX=4F12   DX=0102   SP=FFEE   BP=0000  SI=0000 PI=86C9
DS=1D3C    ES=F000   SS=1D3C   CS=1D3C   IP=0108   NV UP EI NG NZ AC PE NC

2
DOS 下用 debug 测试:
a                       ;这个 a 是汇编命令
mov    AX,201
mov    BX,200
mov    CX,4F12
mov    DX,100
int     13
int     3

输出的结果是:

AX=0000   BX=0200   CX=4F12   DX=0100   SP=FFEE   BP=0000  SI=0000 PI=0000
DS=1D3C    ES=1D3C   SS=1D3C   CS=1D3C   IP=010E   NV UP EI NG NZ AC PE NC

3
DOS 下用 debug 测试:
a                       ;这个 a 是汇编命令
mov    AX,4100
mov    BX,55AA
mov    DX,0
int     13
int     3
输出结果:

AX=0000   BX=55AA   CX=0000   DX=0000   SP=FFEE   BP=0000  SI=0000   PI=0000
DS=1D3C    ES=1D3C   SS=1D3C   CS=1D3C   IP=010B   NV UP EI NG NZ AC PE NC

4
DOS 下用 debug 测试:
a                       ;这个 a 是汇编命令
mov    AX,4800
mov    SI,180
mov    DX,0
int     13
int     3
输出结果是:
AX=0000   BX=55AA   CX=0000   DX=0000   SP=FFEE   BP=0000  SI=0180   PI=0000
DS=1D3C    ES=1D3C   SS=1D3C   CS=1D3C   IP=010B   NV UP EI PL ZR NA PE NC

只做了以上测试,由于是用键盘敲入的,不知道会不会有错,一会再测一次试试,请不点大师给看看吧,要是再做什么测试你就说。谢谢了,麻烦你了

[ Last edited by yzmj on 2006-10-15 at 01:05 ]

2006-10-15 01:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


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

好的,需要你把

cat --hex (fd0)+1

的输出结果贴上来。只需要贴出开头的 3 行就够了。如果其中有 NTFS 字样,则需要开头的 6 行。

另外,在上述第 4 项测试中,你只贴出了寄存器的输出结果,还有内存中的结果没有贴出来。照如下方法做:

DOS 下用 debug 测试:
a                       ; 这个 a 是 assembly(汇编) 的意思
mov    AX,4800   ; 功能 48 是 EBIOS 获取磁盘参数。
mov    SI,180      ; 将结果放在内存 180 处
mov    DX,0        ; 磁盘号码是 0
int     13            ; BIOS 磁盘功能调用
int     3              ; 这是断点指令,程序运行到此将停止。
                        ; 此处多敲一个回车,结束汇编命令
g                      ; g 是 go (运行程序) 的意思

运行完就可以把输出的寄存器结果贴出来。

接着,再用一条 d 命令来显示内存:

d 180                ; 显示内存 180 处的内容

只需要把从 180 开始的(也就是开头的)两行贴出来就够了。



因为我们亲手创建,这个世界更加美丽。
2006-10-15 02:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yzmj
新手上路





积分 16
发帖 7
注册 2005-12-6
状态 离线
『第 3 楼』:  

会抓图了,但第一个测试抓不出来,可能是由于是滚屏,一次显示不全,所不不能抓
测试完毕
cat --hex(fd0)+1测试头三行输出结果入下
00000000: EB  3E  90  40  53  57  49  4E  34  2E  31  00  02  04  01  00
00000002: 02  00  02  00  00  F0  CC  00  20  00  40  00  00  00  00  00
00000003: E0  2F  03  00  00  01  29 78  56  34  12  43  68  69  70  73

用debug测试结果入下:
AX=0000  BX=0000  CX=0000  SP=FFEE  BP=0000  SI=0180  DI=0000
DS=1D3C  ES=1D3C  SS=1D3C  DS=1D3C  IP=010B  NV UP EI PI  ZR  NA  PE NC

D180输出结果入下
2f54:  0180  1E  00  08 00 00 00 00 00 00 00 00 00 00 00 00 00
2f54: 1190   00 30  03 00 00 00 00 00 00 02 3E 3E 17 66 31 D2

[ Last edited by yzmj on 2006-10-15 at 03:57 ]

附件 1: SCREEN02.GIF (2006-10-15 03:50, 8.27 K, 下载附件所需积分 1 点 ,下载次数: 2)


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

不甘寂寞的人


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

简要说明:显然你这个 BIOS 比起以前 neiljoy 他们的那些,有着更严重的 BUG。 这个 BIOS 的 INT13 功能 48 居然返回 C=0,H=0,S=0!太糟糕!!!

你再做一个测试,试试这样,看看是否可以访问你的 U 盘上的文件?

map   (fd0)+1   (fd0)
map --hook

此时用

geometry (fd0)

看看是否有变化(和上次的相比)。贴出显示的结果。

在这之后,用 grub 的 find 命令看看是否可以找到 (fd0) 上的文件:

find   /io.sys
find   /grub.exe



因为我们亲手创建,这个世界更加美丽。
2006-10-15 04:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yzmj
新手上路





积分 16
发帖 7
注册 2005-12-6
状态 离线
『第 5 楼』:  

不点大师怎么工作到这么晚呀,一点要注意休息呀,身体是革命的本钱吗!
按你所说测试如下:

map (fd0)+1 (fd0) 输出结果如下:

FAT 16 PBP  found winth 0*EB(JMP) Leading the boot sector
probed   C/H/S=102/64/32 ,Probel total sectors=208864
Floppies_orig=2 ,harddrives_orig=1,floppies_curr=1,harddrives_cruu=1

map --hook
geometry(fd0)后U盘狂闪一阵后给出提示:
ERROR 27: disk read error   这是不是提示找不到U盘了

find /io.sys后提示
(hd0,0)
(hd0,4)  然后又是狂读U盘,没什么反映,只能重新启动。

大师,是不是我的BOIS垃圾之极呀,还有没有希望呀

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

不甘寂寞的人


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

http://grub4dos.jot.com/ 上最新编译的 grub.exe 或者 grldr 来试试看能否正常访问 U 盘上的文件。

只要 DOS 有希望,我们的 GRUB4DOS 就有希望。没希望是没道理的,呵呵。



因为我们亲手创建,这个世界更加美丽。
2006-10-16 00:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yzmj
新手上路





积分 16
发帖 7
注册 2005-12-6
状态 离线
『第 7 楼』:  

大师呀,我下载了最新版 的是10月7号的那个吗,还是找不到menu.lst,不过和你前不一样了,在出现命令行只前有老大一段的滚屏,内容如下:
get_cdinfo(0*81)...biosdisk_int13_extensions(0*4b01,0*81)...ok err=0*1
ok ! cdrom_drive=0*0
check_int13_extension(0*81)...ok version=0*0

其中红字部分每一段都不一样,屏滚的太快了,可能是从80开始的,最后可能是FE,
还要做什么测试吗,又要麻烦不点大师了。

[ Last edited by yzmj on 2006-10-16 at 03:02 ]

2006-10-16 03:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
neildyl
新手上路





积分 8
发帖 2
注册 2006-6-13
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by 不点 at 2006-10-16 00:59:
http://grub4dos.jot.com/ 上最新编译的 grub.exe 或者 grldr 来试试看能否正常访问 U 盘上的文件。

只要 DOS 有希望,我们的 GRUB4DOS 就有希望。

不点大师说的完全正确。
我怀疑楼主的U盘在DOS下未必能够使用U盘的全部容量。建议如下:
1.在U盘拷入大文件后(几乎占据U盘的全部容量)看能否正常读取这个大文件;
2.用WINHEX察看U盘的绝对0扇和32扇,分别抓图传上来。

另外,我认为,U盘启动问题除了主要取决于主板BIOS外,主板与U盘的兼容性也很重要。再就是与U盘启动的制作工具有关。不知道楼主是用什么工具制作的?

2006-10-16 03:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yzmj
新手上路





积分 16
发帖 7
注册 2005-12-6
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by neildyl at 2006-10-16 03:03:



不点大师说的完全正确。
我怀疑楼主的U盘在DOS下未必能够使用U盘的全部容量。建议如下:
1.在U盘拷入大文件后(几乎占据U盘的全部容量)看胠...

大哥说的不错,我的是512M的U盘,分成两了区,启动文件放在第一个分区内,能顺利启动到DOS,不知道和这有没有关系,关于:用WINHEX察看U盘的绝对0扇和32扇“,我是菜鸟,能告诉我怎么做吗,关于启动盘的制作工具,是光盘自带的台电U盘专用工具,他能分区,加密,制作启动盘。

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





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

1.也可改为拷入多个DOS下运行的文件(在第一区内),看是否都能正常运行。这一步应当进行;
2.不知你用过WINHEX没有,它有汉化版,很容易使用的。例如我这个图就是绝对0扇(看最下面的状态栏)。

[ Last edited by neiljoy on 2006-10-16 at 04:26 ]

附件 1: MBR.GIF (2006-10-16 04:26, 109.82 K, 下载附件所需积分 1 点 ,下载次数: 1)


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

不甘寂寞的人


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

昨天晚上我刚刚编译了 grub.exe 和 grldr(直接下载这两个文件),专门针对你的情况的,就在同一个网站上,你下载的是这个吧?

补充:

贴出

geometry (fd0)

的结果。

再看看

find /io.sys

是否可以找到 U 盘 (fd0)。

另外,刚才几位说的都对。你需要首先检验在 DOS 下是否操作全都正常。你需要用一个磁盘编辑查看工具,用十六进制查看软盘的最后一个扇区。如果你能够查看到最后一个扇区也不死机,那就说明 DOS 下没问题。如果 DOS 下就失败,那我们不要去解决了。如果这个 BIOS 连 DOS 都不尊重,它更不可能尊重别的软件了,包括 GRUB。

如果 DOS 下没问题,那么不出意料的话,GRUB4DOS 也有希望排除这些障碍。

注意,是在 DOS 下运行 DOS 下的磁盘工具查看,不是进入 WINDOWS 后运行磁盘工具查看。我们的目的是检验 BIOS 是否正常。WINDOWS 不用 USB 的 BIOS 了,所以,用 WINDOWS 来做测试是无效的,它无法说明 BIOS 是否正常。

如果你实在缺乏 DOS 下的工具,那么也可以简单地用 DOS 的 copy 命令来测试。从 U 盘启动到 DOS 后,在 DOS 下(重要!一定要在 DOS 下)把 C 盘上的一堆任意的文件拷贝到 U 盘,直到把 U 盘装满为止,然后再把 U 盘上的这些 文件拷贝到硬盘。这样做的目的是测试 U 盘在 DOS 下的读写是否正常。

[ Last edited by 不点 on 2006-10-16 at 08:25 ]



因为我们亲手创建,这个世界更加美丽。
2006-10-16 07:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yzmj
新手上路





积分 16
发帖 7
注册 2005-12-6
状态 离线
『第 12 楼』:  

成功了!成功了!成功了!  第一时间向不点大师和neildyl大哥报喜。

伟大的中国共产党万岁,毛主席万岁,不点大师万岁!neildyl哥哥万岁!


今天一早上,按不点大师和neildyl哥哥的指导,往U盘拷文件,太慢了,100M的空间,拷了N多的东西,没发现什么错误,回到WINDOWS下,发现U盘太乱了,于是重新格事化了U盘,重新装入系统,无意中又试了一次,哈哈,居然成功了,没发现什么错误,因为这个问题,我以经格了N次U盘了,这次下了最新的文件就没想到再重格一次U盘,在这里向不点大师和neildyl哥哥至以最真诚的感谢,有你们这么热心的老师,是我们广大网友的福气!

再向不点大师和neildyl哥哥说一下,我用U盘做的是WINPE系统,以前给别人解决问题总是带很多光盘工具,有时只用一个盘上的一个小工具,也得带一张盘,太麻烦了,这下好了,一个U盘解决问题,能随便扩冲工具了。

怎么感谢你们呢,愿你们健康快乐吧,有你们,这个论坛一定会越办越好的。

再次表示感谢

马上去无忧论坛报喜去,那里也有很多象我一样不能用U盘启到的朋友。

[ Last edited by yzmj on 2006-10-17 at 02:02 ]

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

不甘寂寞的人


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

通过解决问题,大家可以互相学习,交流经验,增加智慧,增添乐趣。朋友们来到这里,为的都是这一个共同的目的。大家都是一家,遇到问题都是互相帮助,都在为一个目标而努力,都在建造我们和谐的家园。我一直都在等着你的结果,也很坚信一定是这样的一个结果:只要 DOS 下正常,我们有办法让 grub4dos 也正常。

顺便还得问问你,这个 BIOS 或者主板的型号是什么?我好方便把它写进 ChangeLog 里面去。

其他路过的朋友,如果遇到 USB 盘失败,记住报告 geometry (fd0) 的结果(这里假定 fd0 是 U 盘)。这个命令很重要。另外还应该说明 (fd0) 的容量。 那些 DOS 下的 debug 测试结果,都是很要紧的。大家别忘了 DOS 的知识了,还是应该不断学习 DOS 和 BIOS。估计今后 U 盘将盛行,尤其是它作为修复系统故障的手段这样一个面孔出现在玩家面前。我们修复系统故障时,是离不开 DOS 和 BIOS 的。愿朋友们玩得更好!



因为我们亲手创建,这个世界更加美丽。
2006-10-17 03:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yzmj
新手上路





积分 16
发帖 7
注册 2005-12-6
状态 离线
『第 14 楼』:  



  Quote:
Originally posted by 不点 at 2006-10-17 03:03:
通过解决问题,大家可以互相学习,交流经验,增加智慧,增添乐趣。朋友们来到这里,为的都是这一个共同的目的。大家都是一家,遇到问题都是互 ...

报告不点大师,我的主板是联想QDI 848E  BIOS是Award 6.00PG
U盘是512M,启动区分成了100M,

再次谢谢您了

2006-10-17 03:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: