|
neiljoy
初级用户
 
积分 132
发帖 58
注册 2006-7-23
状态 离线
|
『第 31 楼』:
使用 LLM 解释/回答一下
你说用debug如何进行试验吧!
You said how to carry out experiments with debug!
|
|
2006-7-24 12:04 |
|
|
neiljoy
初级用户
 
积分 132
发帖 58
注册 2006-7-23
状态 离线
|
『第 32 楼』:
使用 LLM 解释/回答一下
用第一个即cat --hex (fd0)2878+1就死机!
Using the first one, that is, cat --hex (fd0)2878+1 will crash!
|
|
2006-7-24 12:30 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第 33 楼』:
使用 LLM 解释/回答一下
neiljoy不防先更新下BIOS
华硕系列好象都支持在线更新
Neiljoy, why not update the BIOS first? ASUS series seem to all support online updates
|
|
2006-7-24 12:34 |
|
|
neiljoy
初级用户
 
积分 132
发帖 58
注册 2006-7-23
状态 离线
|
『第 34 楼』:
使用 LLM 解释/回答一下
从华硕网站得知,这已经是最后的BIOS版本。
I learned from the ASUS website that this is the final BIOS version.
|
|
2006-7-24 12:37 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 35 楼』:
使用 LLM 解释/回答一下
再给你一个任务,找出死机和不死机的界限:
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 ]
Then give you another task to find the boundary between freezing and not freezing:
cat --hex (fd0)xxxxxx+1
It is known that when xxxxxx=0, it doesn't freeze, and when xxxxxx=2878, it freezes. Find the largest value of xxxxxx such that the cat command doesn't freeze.
Just like the test you just did, if it can't even read the sectors within 1.44M, I estimate it's hopeless, and we might ultimately be unable to do anything.
However, you still do the following test under DOS, trying every possible way:
Type debug to enter the debug command line. Then type the following commands:
a ;This a is the assembly command
mov AH,8
mov DL,0 ;DL,0 means (fd0), if the USB flash drive is (fd1), then here should be mov DL,1
int 13
int 3
;Press one more Enter here to end the assembly command
g ;This g is to run
Okay, now paste the output result of the screen here.
Finally, use the q command to exit debug and return to DOS:
q
Last edited by 不点 on 2006-7-24 at 16:24 ]
|

因为我们亲手创建,这个世界更加美丽。 |
|
2006-7-24 16:09 |
|
|
neiljoy
初级用户
 
积分 132
发帖 58
注册 2006-7-23
状态 离线
|
『第 36 楼』:
使用 LLM 解释/回答一下
我正在作试验,才上网看到你在楼上的内容。先说说我自己作试验的情况,然后再做楼上的试验。
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)有关。
I'm conducting an experiment and just saw your content upstairs. First, I'll talk about my own experiment situation, and then I'll do the experiment upstairs.
1. I separately made img images containing grub.exe, menu.lst, and diskgen.img files with capacities of 1.44M and 2.88M respectively;
2. Tested in a virtual machine, ran a batch script. The 1.44M one can start diskgen.img with GRUB, but the 2.88M one can't, but it doesn't crash;
3. In the case of 1.44M, whether there is or not map (fd0) (fd1); map --floppies=2 can both start diskgen.img;
4. Found a problem. Whether using the latest version or version 0.4.1, even if grub.exe and menu.lst are both in the root directory of the floppy disk, running grub.exe has no menu displayed (the same in the virtual machine and the real floppy disk), and it prompts error 17, file not found.
Conclusion: 1. When the USB flash drive is in FD or ZIP mode, it's impossible to start the image files of 1.44M and above in the USB flash drive with grub.exe on the USB flash drive.
2. The problem of GRUB crashing when running on the USB flash drive is related to the data structure of the USB_ZIP disk (referring to having MBR, DBR).
|
|
2006-7-24 17:24 |
|
|
neiljoy
初级用户
 
积分 132
发帖 58
注册 2006-7-23
状态 离线
|
|
2006-7-24 17:51 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 38 楼』:
使用 LLM 解释/回答一下
--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
--4. Found a problem. Whether using the latest version or version 0.4.1,
--Even if grub.exe and menu.lst are both in the root directory of the floppy disk,
--Running grub.exe does not display the menu (this is the case in both the virtual machine and the real floppy disk),
--Error 17 is prompted, file not found.
This is not a problem. grub.exe is not like GRLDR, which can determine the partition number of the disk it is on. Therefore, grub.exe does not know that you are running grub.exe from the root directory of the floppy disk. To run grub.exe, you must have --config-file=(fd0)/menu.lst. Otherwise, the default (hd0,0)/menu.lst should be used
|

因为我们亲手创建,这个世界更加美丽。 |
|
2006-7-24 18:10 |
|
|
neiljoy
初级用户
 
积分 132
发帖 58
注册 2006-7-23
状态 离线
|
『第 39 楼』:
使用 LLM 解释/回答一下
现提供虚拟机中的试验结果
试验对象: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 ]
Now provide the test results in the virtual machine
Test objects: 1.44M and 2.88M images, equivalent to two floppy drives with capacities of 1.44M (referred to as A) and 2.88M (B)
Test process:
1. Run grub.exe --config-file=(fd0)/menu.lst, A can display the menu; B cannot display, entering the GRUB command line.
2. Store the files in B in order into an empty img: first is io.sys, then menu.lst, diskgen.img (720K), grub.exe in sequence, and other files can be put in out of order.
3. Re-execute grub.exe --config-file=(fd0)/menu.lst, B still has no menu display.
4. Execute cat --hex (fd0)2879+1 to display all "F6", indicating that this sector has no file (and the previous few sectors are also empty), but at 2880+1 it displays:
Error 26:Attempt to access block outside partition
Question: According to reason, several key files are all in the front sectors. From the cat command, they are also within the GRUB reading range, but still cannot display the menu and cannot boot diskgen.img. I don't know the reason?
Last edited by neiljoy on 2006-7-24 at 21:58 ]
|
|
2006-7-24 21:32 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 40 楼』:
使用 LLM 解释/回答一下
很简单,虚拟机的 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?
It's very simple. The BIOS of the virtual machine doesn't support floppy disks larger than 1.44M.
The other test I mentioned earlier is also needed, which is to find the largest xxxxxxx such that cat --hex (fd0)xxxxxxx+1 doesn't crash.
I estimate there is still hope for a solution. You need to continue to cooperate with the test.
Test under DOS with debug:
a ;This a is an assembly command
mov AX,201
mov BX,200
mov CX,4F12
mov DX,100
int 13
int 3
;Press one more Enter here to end the assembly command
g ;This g means to run
q ;Return to DOS
Report whether there is a crash. If there is no crash, report whether the lower right corner shows NC or CY?
|

因为我们亲手创建,这个世界更加美丽。 |
|
2006-7-24 22:19 |
|
|
neiljoy
初级用户
 
积分 132
发帖 58
注册 2006-7-23
状态 离线
|
『第 41 楼』:
使用 LLM 解释/回答一下
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 ]
1. What do you mean by saying that the BIOS of the virtual machine doesn't support floppy disks larger than 1.44M? In fact, the VM I use can also start the 2.88M image normally. How can it start if it doesn't support it? How can my test be carried out?
2. Looking for the maximum XXXXX that doesn't crash. I have provided the test result of 2.88M (floppy disk) on floor 39. As for the USB flash drive, if it crashes, I have to press the reset button to restart, which is time-consuming and troublesome. It depends. If it crashes more than twice, I don't want to test it.
I will try debug later. Last time it didn't crash, otherwise I couldn't capture the screenshot!
Last edited by neiljoy on 2006-7-24 at 22:53 ]
|
|
2006-7-24 22:51 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 42 楼』:
使用 LLM 解释/回答一下
1. 能启动,不能说明支持 2.88M,很可能你的文件都在 1.44M 以内。
2. 不要软盘测试结果,要U盘的(你不是要解决U盘不能访问的问题吗?)。测试 U 盘肯定要有死机发生,不过,如果你设计好,只需要若干次测试,就能找到最大的 xxxxx 来。这个并不麻烦,当然也许你觉得麻烦,那就罢了,继续测试 debug 吧。
1. Can boot, but that doesn't mean it supports 2.88M. It's very likely that all your files are within 1.44M.
2. Don't need the floppy disk test result. Need the USB flash drive one (didn't you want to solve the problem of being unable to access the USB flash drive?). To test the USB flash drive, there must be a system crash, but if you design it well, you can find the largest xxxxx just with several tests. This is not troublesome. Of course, maybe you find it troublesome, then forget it, and continue testing debug.
|

因为我们亲手创建,这个世界更加美丽。 |
|
2006-7-24 23:23 |
|
|
neiljoy
初级用户
 
积分 132
发帖 58
注册 2006-7-23
状态 离线
|
『第 43 楼』:
使用 LLM 解释/回答一下
UM近一段时间我常使用,用它启动运行2.88M的镜象文件是常事,均能正常运行,可以肯定的是,我使用的大多数镜象文件的占有空间均接近于2.88M,今天不过是个特例。
通过在虚拟机中对2.88M的试验,我对U盘已经不太乐观了。
现在提交U盘的试验报告:三次死机。
第一次,用2875+1;
第二次,用2850+1;
第三次,严格按照你的debug程序,当执行-g后即死机,此后屏幕当然也无显示,也无必要抓图了。
UM has been used frequently recently. Using it to boot and run 2.88M image files is common, and they all run normally. It can be affirmed that most of the image files I use have a size close to 2.88M. Today is just an exception.
Through experiments with 2.88M in a virtual machine, I am not very optimistic about the USB flash drive anymore.
Now submit the test report of the USB flash drive: three freezes.
The first time, using 2875+1;
The second time, using 2850+1;
The third time, strictly following your debug program, it freezes when executing -g, and then the screen naturally has no display, and there is no need to capture screenshots.
|
|
2006-7-24 23:36 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 44 楼』:
使用 LLM 解释/回答一下
你应该用一个小的值去试验,才有希望不死机。
不过,你的测试很重要,debug 的死机,表明 DOS 下也不可以按照 80/2/18 的规格来访问U盘。这很有用。如果这个测试序列能够完成,我想应该解决 U盘访问的问题的,一定行。不过,现在该休息了,明天再来。
You should use a small value for testing, only then is there hope of not crashing.
But your test is very important. The crash during debugging indicates that accessing the USB flash drive according to the 80/2/18 specifications under DOS is also not possible. This is very useful. If this test sequence can be completed, I think the problem of accessing the USB flash drive should be solved, it will definitely work. However, it's time to rest now, come back tomorrow.
|

因为我们亲手创建,这个世界更加美丽。 |
|
2006-7-24 23:42 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 45 楼』:
使用 LLM 解释/回答一下
估计 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
如果没有死机,把屏幕截图发上来。
It is estimated that the maximum value of C can only be 7 and 8. So, it should be safe to use C=7, H=2, S=18.
7 * 2 * 18 = 252
8 * 2 * 18 = 288
So, I estimate that using a value within 252 will not cause a system crash. The maximum value should be between 252 and 288.
cat --hex (fd0)252+1
cat --hex (fd0)288+1
------------------------------------------
Test in DOS using debug:
a ; This a is an assembly command
mov AX,4100
mov BX,55AA
mov DX,0
int 13
int 3
; Press an extra Enter here to end the assembly command
g ; This g means to run
q ; Return to DOS
Report whether there is a system crash. If there is no crash, report whether NC or CY is displayed in the lower right corner. Also report the values of the four registers AX, BX, CX, DX.
No matter whether there is a system crash or not, after the above test is completed, the following test will be carried out, and then all tests will be completed.
Test in DOS using debug:
a ; This a is an assembly command
mov AX,4800
mov SI,180
mov DX,0
int 13
int 3
; Press an extra Enter here to end the assembly command
g ; This g means to run
d 180 ; Display data at 180
q ; Return to DOS
If there is no system crash, please upload the screen capture.
|

因为我们亲手创建,这个世界更加美丽。 |
|
2006-7-25 09:44 |
|