|
windrv
中级用户
  
积分 385
发帖 118
注册 2003-11-11
状态 离线
|
『第 166 楼』:
使用 LLM 解释/回答一下
以下是引用不点在2005-4-8 9:45:19的发言:
实在对不起,我除了 email 和论坛之外,其它的都不用。你可以用本论坛的短信方式和我联系。email 方式不太好,我一个月才看一次 email。这个论坛我来的还是比较及时的,几乎每天都来。
PE 格式的属于 windows 程序。在 windows 下,运行的程序都是保护模式的,而 grub.exe 需要实模式才能工作。从windows 的保护模式切换到实模式,不容易呀。这个要是实现了,那将是很大的突破。我以前把 GRLDR 叫做 grub for ntldr而不是叫做 grub for windows,其原因就是,grldr 只能在 NTLDR 下运行,它不能在 Windows下运行。如果你能实现从保护模式到实模式的切换,那么,你制作的 GRUB 就可以称为 GRUB for WINDOWS 了。我制作的grub4lin 就是在 linux 下从 保护模式运行实模式的 GRUB,它可以称做 grub for linux。
至于说图标,你自己喜欢什么样的都行,我没有美术细胞,帮不了你。关键是要解决 CPU 模式的切换,这个要是解决了,有没有图标都无关紧要了。我觉得很不容易呀,希望你能成功。
Dear Tinybit,
I have sent you an email. And I repeat my question addressed to you therein as follows:
The map command does not seem to work when grub4dos is used in non-emulation mode. For instance:
map (cd)/image.img (fd0)
does not seem to work.
May be the map command originally is designed to with with FAT/NTFS partition. Is it possible to make it work under iso filesystem format? Or is it too time-consuming or too large a piece of work to do so?
The following is the statement from Budian at 9:45:19 on April 8, 2005:
I'm really sorry. Except for email and the forum, I don't use anything else. You can contact me via the private message method of this forum. The email method is not good, I only check my email once a month. I come to this forum relatively timely, almost every day.
PE format belongs to Windows programs. In Windows, the running programs are all in protected mode, and grub.exe needs to work in real mode. It's not easy to switch from Windows protected mode to real mode. If this is realized, it will be a great breakthrough. I used to call GRLDR "grub for ntldr" instead of "grub for windows", the reason is that grldr can only run under NTLDR, it can't run under Windows. If you can realize the switch from protected mode to real mode, then the GRUB you make can be called GRUB for WINDOWS. The grub4lin I made is GRUB running in real mode from protected mode under Linux, it can be called grub for linux.
As for the icon, you can like whatever you like, I don't have artistic cells, I can't help you. The key is to solve the CPU mode switching, if this is solved, it doesn't matter whether there is an icon or not. I think it's very difficult, I hope you can succeed.
Dear Tinybit,
I have sent you an email. And I repeat my question addressed to you therein as follows:
The map command does not seem to work when grub4dos is used in non-emulation mode. For instance:
map (cd)/image.img (fd0)
does not seem to work.
May be the map command originally is designed to with with FAT/NTFS partition. Is it possible to make it work under iso filesystem format? Or is it too time-consuming or too large a piece of work to do so?
|
|
2005-4-8 00:00 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 167 楼』:
使用 LLM 解释/回答一下
map 命令不能用于 no-emulation mode 的 CDROM 文件,这是正常的。其原因是 no-emulation mode规范是微软插手制定的,它是一个不兼容性的规范,扇区大小采用的是 2048 字节,而不是通常的 512 字节。虽然 no-emulationmode 的光盘扇区可以用 int13 的 LBA模式来读,但是,得到的扇区大小与我们仿真为磁盘后的扇区大小是冲突的,所以,仿真之后就不能使用了,是无效的仿真。
如果 (cd)/image.img 文件不太大,而你的内存也够用,你可以考虑用 map 命令的 --mem 参数在内存中来仿真,这是肯定可以成功的:
map --mem (cd)/image.img (fd0)
The map command cannot be used for CDROM files in no-emulation mode, which is normal. The reason is that the no-emulation mode specification was formulated by Microsoft, and it is an incompatible specification. The sector size is 2048 bytes instead of the usual 512 bytes. Although the sectors of the no-emulation mode CD can be read using the LBA mode of int13, the obtained sector size conflicts with the sector size after we simulate it as a disk, so it cannot be used after simulation, which is an invalid simulation.
If the (cd)/image.img file is not too large and your memory is sufficient, you can consider using the --mem parameter of the map command to simulate in memory, which is definitely successful:
map --mem (cd)/image.img (fd0)
|

因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-8 00:00 |
|
|
gmy
版主
        操作系统爱好者
积分 1113
发帖 392
注册 2002-11-11
状态 离线
|
『第 168 楼』:
使用 LLM 解释/回答一下
grldr 有严重问题,我的 超级急救盘 硬盘版 基于 0.2.0 最终版,网友们报告BUG说,grldr 在某些WIN2000版本和某些XP SP2使用不能用,出现extended or non-MS: skip ,解决的办法另我大吃一惊:用 XP_SP1 的 NTLDR 和 BOOTFONT.BIN 覆盖 同名文件 就可以用GRUB了。我分析,可能是 grldr 的编写环境是 XP SP1 ,希望 grldr 的代码更严谨一些,解决此BUG。(0.4.0没试过)
There are serious problems with grldr. My Super Emergency Disk hard disk version is based on the final version 0.2.0. Netizens reported bugs saying that grldr doesn't work on some versions of WIN2000 and some XP SP2, and "extended or non-MS: skip" appears. The solution that surprised me is: overwrite the files with the same name of NTLDR and BOOTFONT.BIN from XP SP1 to use GRUB. I analyze that maybe the compilation environment of grldr is XP SP1. I hope the code of grldr is more rigorous to solve this bug. (0.4.0 hasn't been tested)
|

DOS之家 http://doshome.com 站长 葛明阳 |
|
2005-4-14 00:00 |
|
|
hnlyzhd
高级用户
   
积分 544
发帖 164
注册 2004-10-17
状态 离线
|
『第 169 楼』:
使用 LLM 解释/回答一下
to gmy:你所用的是不是新编译的GRLDR呢?TO 不点:在使用QEMU的过程中遇到一些问题请求帮助:1.启动后不能够在虚拟的硬盘镜像上使用GHOST来快速安装系统.2.不能够启动EZBOOT生成的24位真彩ISO.3.不知能否挂载本机的物理硬盘为QEMU的硬盘.
TO gmy: Is the GRLDR you are using a newly compiled one? TO 不点: Encountered some problems during the use of QEMU and request help: 1. After booting, cannot use GHOST to quickly install the system on the virtual hard disk image. 2. Cannot boot the 24-bit true color ISO generated by EZBOOT. 3. Not sure if the physical hard disk of the local machine can be mounted as the hard disk of QEMU.
|

我的留言簿
http://hnlyzhd.ys168.com 我的网络盘
|
|
2005-4-15 00:00 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 170 楼』:
使用 LLM 解释/回答一下
0.2.0 最终版和 0.4.0 预览版是同一天发布的。之所以这样,就是想让大家转向 0.4.0 版本。
0.2.0 不再更新了,也就是说,不会再有 0.2.1 版本了。报告 BUG 时,一般常规,都是要求先试试最新版再说。
由于 0.2 已经不再开发了,因此,我已经忘记了在 GRLDR 查找代码部分是否有 BUG 了。我印象中,似乎 0.4 的版本纠正了某些错误。
不过,你的 BUG 报告似乎不太准确。这个错误:extended or non-MS: skip,表明所涉及到的分区类型不是已知的NTFS/FAT 类型。即便更换 NTLDR 等文件,也无济于事,因为这个信息是 GRLDR发出来的。在这条错误之前和之后,还有其它错误信息,不提供这些信息,就不能判断究竟哪里出现了错误。希望能得到准确的报告。
The final version of 0.2.0 and the preview version of 0.4.0 were released on the same day. The reason for this is to let everyone switch to the 0.4.0 version.
0.2.0 will no longer be updated, that is to say, there will be no version 0.2.1. When reporting bugs, generally as a routine, it is required to first try the latest version.
Since 0.2 is no longer under development, I have forgotten whether there are bugs in the code part of finding in GRLDR. I remember that the 0.4 version seems to have corrected some errors.
However, your bug report doesn't seem to be accurate. This error: extended or non-MS: skip indicates that the partition type involved is not a known NTFS/FAT type. Even if you replace files like NTLDR, it won't help, because this information is sent by GRLDR. There are other error messages before and after this error. Without providing these information, it is impossible to judge where the error occurs. Hope to get an accurate report.
|

因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-15 00:00 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 171 楼』:
使用 LLM 解释/回答一下
hnlyzhd:用短信回复了 QEMU 的问题。
hnlyzhd: Replied to the QEMU question via text message.
|

因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-15 00:00 |
|
|
Gandalf
中级用户
   CPU
积分 362
发帖 96
注册 2004-7-8 来自 北京
状态 离线
|
|
2005-4-15 00:00 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 173 楼』:
使用 LLM 解释/回答一下
刚才有人问了我的留言簿,我说我接受新生事物真的有些迟钝。我既没有 QQ 即时通讯,也没有博客,也没有手机。别人都说我难找。不过将来有可能的话,可以考虑开辟一个留言簿,可我又不敢开辟,因为我不一定总去看它。
Just now someone asked about my guestbook. I said I'm really slow to accept new things. I don't have QQ instant messaging, nor a blog, nor a mobile phone. Others all say it's hard to find me. But if possible in the future, I might consider opening a guestbook, but I don't dare to open it because I might not always go to check it.
|

因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-15 00:00 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 174 楼』:
使用 LLM 解释/回答一下
Esme 说 FTP 无法访问,那么现在可以从 http://grub.linuxeden.com/wakka.php?wakka=UploadFile 下载。
补充:好像最近碰上了大规模的封网行动,试试以下的下载地址(不保证总能下载成功):
ftp://upload:upload@202.114.23.161/grub_for_dos-0.4.0.tar.gz
Esme said that FTP is not accessible, so now you can download from http://grub.linuxeden.com/wakka.php?wakka=UploadFile.
Additional information: It seems that there has been a large-scale internet blocking action recently. Try the following download address (not guaranteed to always succeed):
ftp://upload:upload@202.114.23.161/grub_for_dos-0.4.0.tar.gz
|

因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-15 00:00 |
|
|
GONGXP
初级用户
 
积分 184
发帖 31
注册 2005-3-13
状态 离线
|
『第 175 楼』:
rpl启动的dos无法使用grub
使用 LLM 解释/回答一下
grub的确使人耳目一新。从netware下远程启动的dos(6.22或者7.1)无法使用grub,错误:
Programs such as TSRs and drvice drivers may also change the BIOS interrupt vector table.
Make sure those programs are not runing,then try again.
GRUB is indeed refreshing. DOS (6.22 or 7.1) remotely booted from Netware cannot use GRUB. The error:
Programs such as TSRs and device drivers may also change the BIOS interrupt vector table.
Make sure those programs are not running, then try again.
|
|
2005-4-16 00:00 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 176 楼』:
使用 LLM 解释/回答一下
麻烦 GONGXP 兄详细说说 netware 的启动过程等详细信息。我从来没有使用过 netware。
假如我知道了 netware 的运作机理,那么我就有可能知道究竟未来的 grub.exe 可否支持它。
另外最好也请说说为什么要使用 netware,说说它的用途,帮助我进一步了解它。
我对网络比较外行,该问题也可以由 GANDALF、BEAN123 等人来答复或者解决。
Please ask GONGXP to elaborate on the detailed information such as the startup process of NetWare. I have never used NetWare.
If I know the operating mechanism of NetWare, then I may be able to know whether the future grub.exe can support it.
Also, please also talk about why NetWare is used and its uses to help me further understand it.
I am relatively layman in network, and this question can also be answered or solved by GANDALF, BEAN123 and others.
|

因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-17 00:00 |
|
|
dos@fans1
初级用户
 
积分 113
发帖 2
注册 2005-2-6
状态 离线
|
『第 177 楼』:
使用 LLM 解释/回答一下
我下的pre7版的grldr怎么不能引导Wengier的 超级通用MS-DOS 7.10启动盘镜像。这个启动盘镜像也是由grub引导的。但屏幕显示表明grldr只引导到stage1就没有响应了。以前的版本没有这个问题。
The pre7 version of grldr I downloaded can't boot the Wengier's Super Universal MS-DOS 7.10 bootable disk image. This bootable disk image is also booted by grub. But the screen display shows that grldr only boots to stage1 and then there's no response. There was no such problem with previous versions.
|
|
2005-4-17 00:00 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 178 楼』:
使用 LLM 解释/回答一下
注意,GRLDR 和 stage1 毫无关系。GRLDR 不会使用 stage1 和 stage2;而使用 stage1 和 stage2 的,一定是旧版本的 GNU GRUB,这是一个不推荐的启动方法。
GRLDR 只要能够获得控制并进入 GRUB 环境,这就是 GRLDR 的成功。在进入 GRUB的环境之后,又可以引导某个磁盘映象中的操作系统,这便是 GRUB for DOS的成功。至于说该磁盘映象会出现各种错误,比如死机,那可能有多方面的原因。这可能和启动该映象的方法有关,比如,map 命令是否带了 --mem参数以及您的 BIOS 是否支持 INT13/EAX=e820h 调用;也可能和该映象中的程序代码有关,比如这些程序代码不支持INT13/EAX=e820h 调用规范。“超级通用MS-DOS 7.10启动盘”中的旧版本 GNU GRUB 很有可能真的不支持INT13/EAX=e820h 调用规范,因为它毕竟是很多年以前的发布了,已经太过于陈旧了。
GRLDR 本身出现错误的可能性不大。
Note that GRLDR has nothing to do with stage1. GRLDR does not use stage1 and stage2; those that use stage1 and stage2 must be old versions of GNU GRUB, which is a non-recommended boot method.
As long as GRLDR gains control and enters the GRUB environment, that's GRLDR's success. After entering the GRUB environment, if it can boot an operating system in a disk image, that's the success of GRUB for DOS. As for various errors in that disk image, such as system freeze, there may be multiple reasons. This may be related to the boot method, such as whether the map command has the --mem parameter and whether your BIOS supports the INT13/EAX=e820h call; it may also be related to the program code in that disk image, such as whether those program codes support the INT13/EAX=e820h call specification. The old version of GNU GRUB in the "Super Universal MS-DOS 7.10 Boot Disk" very likely really does not support the INT13/EAX=e820h call specification, because after all, it was released many years ago and is too outdated.
The possibility of GRLDR itself having an error is relatively small.
|

因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-18 00:00 |
|
|
GONGXP
初级用户
 
积分 184
发帖 31
注册 2005-3-13
状态 离线
|
『第 179 楼』:
使用 LLM 解释/回答一下
netware是一个从dos启动的服务器操作系统,其远程 启动最少要二台计算机,一台运行netware,另一台有网卡,并有rpl启动芯片。在一台dos计算机,将一张启动dos的软盘,制作成镜像文件,存在netware服务器上。以后,那台有带rpl启动芯片网卡的计算机就可以选择从远程启动(int19中断),启动那张软盘上的dos系统,这个dos系统可以启动windows98,windows me,也可以通过loadlin启动linux,也可以通过loadce启动windows ce。不过,这个dos是“污染”了bios的中断向量,不知可否让grub.exe在这个dos上运行?
至今为止,无盘启动dos,远程启动dos,最好的网络操作系统仍是netware,目前在证券公司广泛使用。
NetWare is a server operating system booted from DOS. At least two computers are needed for remote booting: one runs NetWare, and the other has a network card and an RPL boot chip. On a DOS computer, make an image file of a bootable DOS floppy disk and store it on the NetWare server. Then, the computer with the network card having the RPL boot chip can choose to boot remotely (via INT19 interrupt) and start the DOS system on that floppy disk. This DOS system can boot Windows 98, Windows ME, can also start Linux via loadlin, and can start Windows CE via loadce. However, this DOS "pollutes" the interrupt vectors of the BIOS. Can GRUB.exe run on this DOS?
So far, for diskless booting of DOS and remote booting of DOS, the best network operating system is still NetWare, which is widely used in securities companies.
|
|
2005-4-18 00:00 |
|
|
不点
银牌会员
     不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第 180 楼』:
使用 LLM 解释/回答一下
确实是专业高手,谢谢。
按照你的描述,计算机通过网卡访问远程 DOS 软盘。我猜这里面应当有一个仿真存在:
第一种可能,将远程 DOS 软盘直接装入本机的扩展内存,然后实施“用内存仿真软盘”的功能。
第二种可能,INT13 的处理程序直接将机器对于软盘的访问,重新定向到网络,也就是直接定向到远程软盘。这种方法,不需要占用本机的物理内存空间。
不管是哪种情况,只要这些都是在 BIOS 内部操作,那么这都是可以运行 GRUB.EXE 的。你上面提到的出错信息,说明这些操作已经超出 BIOS 的范围,进入普通的用户程序。
DOS无论是否经由远程启动,它都会污染BIOS中断向量。grub.exe在刚开始运行的时候,就要检查有哪些中断向量被污染过了,如果这些中断向量是不重要的,那么任其污染也不予理睬,继续运行GRUB。如果发现关键的中断向量被污染了,那么,grub.exe就采取一系列步骤来自动探测被污染了的中断向量的原始值,如果找到原始值,那么就恢复该值,并宣告恢复成功,继续运行GRUB。如果未能找到原始的中断向量入口地址值,那么打印出错信息,退回到 DOS。
1. 有哪些关键的中断向量?
int08,int09,int0a,int0b,int0c,int0d,int0e,int0f
int70,int71,int72,int73,int74,int75,int76,int77
这 16 个中断是硬件中断,它们是 grub4dos 所认为的最关键的中断向量。除此之外,grub4dos 还认为许多低于 int20 的中断也是关键的中断。比如 int13, int10, int16 等等吧。
grub4dos 认为上述中断必须正确恢复为 BIOS 的原始入口地址值,有一个恢复失败都将认为是失败,从而拒绝进入 GRUB 环境中。
2. 如何判断一个中断向量的中断入口地址是否被污染过?
当入口地址是 c000:0000 以上的代码空间时,就认为该中断是 BIOS 原始的中断,无需恢复,否则,如果是低于 c000:0000 的值,就认为是污染过了。
希望这些信息能给您带来某些帮助。如果您能够解决掉该问题,也希望能够把经验与大家共享。如果您能提供一个补丁什么的,我当然非常欢迎了。
-----------------------
如果您的(服务器端所提供的) DOS 软盘中有 config.sys 和 autoexec.bat,那么你应当确保其中没有 TSR驻留程序,否则,GRUB.EXE 是不能运行的,显示的错误就像您前面贴出的那样。即使你在本机运行 DOS也有此要求。这一点您或许已经知道了,不过还是要提醒一下,以免万一您以前不曾了解到这一点。
Indeed, you are a professional expert. Thank you.
According to your description, the computer accesses a remote DOS floppy disk through the network card. I guess there should be an emulation here:
The first possibility is to directly load the remote DOS floppy disk into the extended memory of the local machine, and then implement the function of "simulating a floppy disk with memory".
The second possibility is that the processing program of INT13 directly redirects the machine's access to the floppy disk to the network, that is, directly to the remote floppy disk. This method does not occupy the physical memory space of the local machine.
No matter which situation it is, as long as these operations are performed inside the BIOS, then GRUB.EXE can run. The error message you mentioned above indicates that these operations have exceeded the scope of the BIOS and entered an ordinary user program.
Whether DOS is booted remotely or not, it will contaminate the BIOS interrupt vectors. When grub.exe starts running, it will check which interrupt vectors have been contaminated. If these interrupt vectors are not important, it will ignore the contamination and continue running GRUB. If it is found that the key interrupt vectors are contaminated, then grub.exe will take a series of steps to automatically detect the original values of the contaminated interrupt vectors. If the original values are found, then the values are restored and the restoration is declared successful, and GRUB continues to run. If the original interrupt vector entry address value cannot be found, then an error message is printed and it returns to DOS.
1. Which are the key interrupt vectors?
int08, int09, int0a, int0b, int0c, int0d, int0e, int0f
int70, int71, int72, int73, int74, int75, int76, int77
These 16 interrupts are hardware interrupts, which are the most critical interrupt vectors considered by grub4dos. In addition, grub4dos also considers that many interrupts below int20 are also key interrupts. For example, int13, int10, int16, etc.
Grub4dos believes that the above interrupts must be correctly restored to the original entry addresses of the BIOS. If one restoration fails, it will be considered a failure, and thus it will refuse to enter the GRUB environment.
2. How to judge whether the interrupt entry address of an interrupt vector has been contaminated?
When the entry address is in the code space above c000:0000, it is considered that the interrupt is the original BIOS interrupt and does not need to be restored. Otherwise, if it is a value lower than c000:0000, it is considered to be contaminated.
I hope this information can bring you some help. If you can solve this problem, it is also hoped that you can share the experience with everyone. If you can provide a patch or something, I will of course be very welcome.
-----------------------
If there are config.sys and autoexec.bat in the DOS floppy disk provided by your (server side), then you should ensure that there are no TSR resident programs in them; otherwise, GRUB.EXE will not run, and the error displayed will be like the one you posted earlier. Even if you run DOS on the local machine, there is this requirement. You may have known this, but it is still reminded just in case you didn't know it before.
|

因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-18 00:00 |
|
|