![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-10 22:52 |
共 47,815 主题排行 / 349,922 发帖 / 今日 2 篇 / 48,285 会员排行 |
| GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » 不点大师给看一下,grub在U盘中的测试数据 |
| 可打印版本 2,916 / 13 |
| 第1楼 yzmj | 发表于 2006-10-15 01:03 |
| 新手上路 发帖 7 积分 16 | |
|
不点大师给看一下,grub在U盘中的测试数据 我的U盘为ZIP模式,下载的是10月7号的最新版grub.我是在U盘启动到DOS后,运行
grub --config-file=(fd0)/menu.lst后,不死机,真接进入grub命令行模式,可能就是不能读取U盘中的数据,看了你在http://www.cn-dos.net/forum/viewthread.php?tid=22047&fpage=0&highlight=&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 ] |
|
| 第2楼 不点 | 发表于 2006-10-15 02:30 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
好的,需要你把
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 开始的(也就是开头的)两行贴出来就够了。 |
|
| 第3楼 yzmj | 发表于 2006-10-15 03:37 |
| 新手上路 发帖 7 积分 16 | |
|
会抓图了,但第一个测试抓不出来,可能是由于是滚屏,一次显示不全,所不不能抓
测试完毕 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 ] 附件 SCREEN02.GIF (8.27 KiB) |
|
| 第4楼 不点 | 发表于 2006-10-15 04:36 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
简要说明:显然你这个 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 |
|
| 第5楼 yzmj | 发表于 2006-10-15 21:40 |
| 新手上路 发帖 7 积分 16 | |
|
不点大师怎么工作到这么晚呀,一点要注意休息呀,身体是革命的本钱吗!
按你所说测试如下: 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垃圾之极呀,还有没有希望呀 |
|
| 第6楼 不点 | 发表于 2006-10-16 00:59 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
用 http://grub4dos.jot.com/ 上最新编译的 grub.exe 或者 grldr 来试试看能否正常访问 U 盘上的文件。
只要 DOS 有希望,我们的 GRUB4DOS 就有希望。没希望是没道理的,呵呵。 |
|
| 第7楼 yzmj | 发表于 2006-10-16 03:00 |
| 新手上路 发帖 7 积分 16 | |
|
大师呀,我下载了最新版 的是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 ] |
|
| 第8楼 neildyl | 发表于 2006-10-16 03:03 |
| 新手上路 发帖 2 积分 8 | |
Originally posted by 不点 at 2006-10-16 00:59: 不点大师说的完全正确。 我怀疑楼主的U盘在DOS下未必能够使用U盘的全部容量。建议如下: 1.在U盘拷入大文件后(几乎占据U盘的全部容量)看能否正常读取这个大文件; 2.用WINHEX察看U盘的绝对0扇和32扇,分别抓图传上来。 另外,我认为,U盘启动问题除了主要取决于主板BIOS外,主板与U盘的兼容性也很重要。再就是与U盘启动的制作工具有关。不知道楼主是用什么工具制作的? |
|
| 第9楼 yzmj | 发表于 2006-10-16 03:44 |
| 新手上路 发帖 7 积分 16 | |
Originally posted by neildyl at 2006-10-16 03:03: 大哥说的不错,我的是512M的U盘,分成两了区,启动文件放在第一个分区内,能顺利启动到DOS,不知道和这有没有关系,关于:用WINHEX察看U盘的绝对0扇和32扇“,我是菜鸟,能告诉我怎么做吗,关于启动盘的制作工具,是光盘自带的台电U盘专用工具,他能分区,加密,制作启动盘。 |
|
| 第10楼 neiljoy | 发表于 2006-10-16 04:23 |
| 初级用户 发帖 58 积分 132 | |
|
1.也可改为拷入多个DOS下运行的文件(在第一区内),看是否都能正常运行。这一步应当进行;
2.不知你用过WINHEX没有,它有汉化版,很容易使用的。例如我这个图就是绝对0扇(看最下面的状态栏)。 [ Last edited by neiljoy on 2006-10-16 at 04:26 ] 附件 MBR.GIF (109.82 KiB) |
|
| 第11楼 不点 | 发表于 2006-10-16 07:46 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
昨天晚上我刚刚编译了 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 ] |
|
| 第12楼 yzmj | 发表于 2006-10-17 01:57 |
| 新手上路 发帖 7 积分 16 | |
|
成功了!成功了!成功了! 第一时间向不点大师和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 ] |
|
| 第13楼 不点 | 发表于 2006-10-17 03:03 |
| 银牌会员 发帖 1,115 积分 2,491 | |
|
通过解决问题,大家可以互相学习,交流经验,增加智慧,增添乐趣。朋友们来到这里,为的都是这一个共同的目的。大家都是一家,遇到问题都是互相帮助,都在为一个目标而努力,都在建造我们和谐的家园。我一直都在等着你的结果,也很坚信一定是这样的一个结果:只要 DOS 下正常,我们有办法让 grub4dos 也正常。
顺便还得问问你,这个 BIOS 或者主板的型号是什么?我好方便把它写进 ChangeLog 里面去。 其他路过的朋友,如果遇到 USB 盘失败,记住报告 geometry (fd0) 的结果(这里假定 fd0 是 U 盘)。这个命令很重要。另外还应该说明 (fd0) 的容量。 那些 DOS 下的 debug 测试结果,都是很要紧的。大家别忘了 DOS 的知识了,还是应该不断学习 DOS 和 BIOS。估计今后 U 盘将盛行,尤其是它作为修复系统故障的手段这样一个面孔出现在玩家面前。我们修复系统故障时,是离不开 DOS 和 BIOS 的。愿朋友们玩得更好! |
|
| 第14楼 yzmj | 发表于 2006-10-17 03:59 |
| 新手上路 发帖 7 积分 16 | |
Originally posted by 不点 at 2006-10-17 03:03: 报告不点大师,我的主板是联想QDI 848E BIOS是Award 6.00PG U盘是512M,启动区分成了100M, 再次谢谢您了 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |