China DOS Union

-- Unite DOS · Advance DOS · Grow DOS --

Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
DOS stands for freedom, openness and progress. Let us work hard, learn from the openness and GNU spirit of FreeDOS and Linux, and together build and grow a free GNU GPL world!

中国DOS联盟论坛
The time now is 2026-06-21 00:30
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » Troublesome problems with GRUB, everyone consult together DigestI View 46,963 Replies 280
Floor 91 Posted 2004-01-20 00:00 ·  中国 河南 南阳 内乡县 联通
银牌会员
★★★★
不甘寂寞的人
Credits 2,491
Posts 1,115
Joined 2003-09-24 00:00
22-year member
UID 10292
Gender Male
Status Offline
Wengier reported a BUG: when a DOS Chinese character support system exists, the display is actually in graphics mode. At this time grub's output cannot be seen on the screen. The problem has been solved. Solution: add two instructions to restore text display mode. Nothing else changed.

  By the way, there is a discovery : after booting DOS with Wengier's "Super Universal MS-DOS 7.10 Boot Disk", because the mouse driver is loaded under this DOS, the mouse can be used in the grub environment after grub.exe runs. When I run grub.exe in other situations, the mouse cannot be used. It seems the mouse driver in the "Super Universal MS-DOS 7.10 Boot Disk" is quite powerful.

  The release date of the official version basically depends entirely on the completion date of the English documentation. I hope someone can help . Writing English is rather hard for me, so if I write the English explanation for 0.2.0, it may be overly simplified.

  BUGs can still be reported in the "Boot Disk Room" of Wengier's New DOS Forum.


  Download the fifth (perhaps the last) public test version here:

ftp://ftp.cosoft.org.cn/incoming/grub_t15.exe

==========

I do not want to solve the batch file issue, because that is separate programming, and may conflict with GNU's future ideas, or lead to duplicate development.

The problem caused by NTLDR may also not necessarily be solvable. Our support for DOS is the focus; NTLDR does not belong to DOS, so it must be put off until later to solve.


The Chinese documentation is temporarily placed at the end of the following webpage:
http://www.linuxeden.com/edu/doctext.php?docid=3006
因为我们亲手创建,这个世界更加美丽。
Floor 92 Posted 2004-01-21 00:00 ·  加拿大 安大略省 多伦多
系统支持
★★★★★★
“新DOS时代”站长
Credits 27,736
Posts 10,521
Joined 2002-10-09 12:00
23-year member
UID 9
Status Offline
I used GRUB for DOS on this computer to try to use the map command to virtualize a floppy disk, for example:

map (hd0,1)/grub/dos.img (fd0)

The path itself should be correct, but GRUB always prompts the following error message:

Cannot mount selected partition.

I don't know why.
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

Floor 93 Posted 2004-01-22 00:00 ·  中国 河南 南阳 内乡县 联通
银牌会员
★★★★
不甘寂寞的人
Credits 2,491
Posts 1,115
Joined 2003-09-24 00:00
22-year member
UID 10292
Gender Male
Status Offline
Perhaps this path is wrong.

(hd0,0) is generally the primary partition, and (hd0,1) is generally the DOS extended partition "container"; it is not a partition. Only (hd0,4) is a logical partition. Therefore, generally there is no path called (hd0,1)/.../....

Cannot mount selected partition.

This error message shows that (hd0,1) cannot be mounted, because it is not a logical partition and there is no file system inside it.

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

It seems grub for dos is already very stable; it is hard to run into any BUGs anymore.

Recently I am preparing to make a grub for NTLDR thing, so that grub can be started in NTLDR's boot.ini.
因为我们亲手创建,这个世界更加美丽。
Floor 94 Posted 2004-01-22 00:00 ·  加拿大 安大略省 多伦多
系统支持
★★★★★★
“新DOS时代”站长
Credits 27,736
Posts 10,521
Joined 2002-10-09 12:00
23-year member
UID 9
Status Offline
不点: I found that after loading USB drivers (USBASPI.SYS+DI1000DD.SYS) under pure DOS and successfully driving a USB flash drive under DOS, then using the GRUB command to start GRUB for DOS, the system usually crashes (a real crash, not that the screen cannot display) or automatically reboots. Is GRUB for DOS incompatible with these USB drivers?
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

Floor 95 Posted 2004-01-22 00:00 ·  中国 河南 南阳 联通
银牌会员
★★★★
不甘寂寞的人
Credits 2,491
Posts 1,115
Joined 2003-09-24 00:00
22-year member
UID 10292
Gender Male
Status Offline
Strictly speaking, GRUB for DOS cannot use the mouse or any other drivers under DOS. GRUB restores all important BIOS interrupt vectors. If the interrupts used by the mouse, USB, etc. are not restored to the BIOS initial values, it will generally cause a crash.

GRUB originally directly takes over the boot task; it begins taking over before the operating system. GRUB assumes that no operating system has run before it. GRUB FOR DOS strives to restore all important BIOS interrupt vectors, so that GRUB feels comfortable. But there are also a large number of missed BIOS vectors that are not restored. In this situation, if a missed interrupt is still active, it will cause a crash.

To solve this kind of problem, it is necessary to know exactly which interrupts the device driver or TSR modified and used, so that the interrupt can be masked.

However, if you want to use a USB disk under GRUB, that generally does not work. GRUB's environment should be a clean BIOS environment. If the BIOS does not support USB disks, then GRUB cannot access USB disks .
因为我们亲手创建,这个世界更加美丽。
Floor 96 Posted 2004-01-24 00:00 ·  中国 河南 南阳 内乡县 联通
银牌会员
★★★★
不甘寂寞的人
Credits 2,491
Posts 1,115
Joined 2003-09-24 00:00
22-year member
UID 10292
Gender Male
Status Offline
The initial version of grub for ntldr has been released.

Software introduction: GRUB can be started directly from the NTLDR boot menu of Windows 2000. Download address:

ftp://ftp.cosoft.org.cn/incoming/grub_for_ntldr-test001.tar.gz

Usage: after extracting, copy the two files bootgrub and grldr to the root directory of drive C:, and modify the Boot.ini file. Generally add the following line at the end of the Boot.ini file:

C:\bootgrub="boot grub"

bootgrub is a boot sector; it is to boot the grldr file. GRUB's program code is in the grldr file.

The Chinese information webpage is temporarily still here:
http://www.linuxeden.com/edu/doctext.php?docid=3006
因为我们亲手创建,这个世界更加美丽。
Floor 97 Posted 2004-01-24 00:00 ·  中国 重庆 电信
银牌会员
★★★
Credits 2,202
Posts 499
Joined 2003-06-12 00:00
23-year member
UID 4876
Gender Male
Status Offline
This should be pure Grub without Menu.lst, right?
一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
Floor 98 Posted 2004-01-24 00:00 ·  中国 河南 南阳 联通
银牌会员
★★★★
不甘寂寞的人
Credits 2,491
Posts 1,115
Joined 2003-09-24 00:00
22-year member
UID 10292
Gender Male
Status Offline
The function of supporting menu.lst is implemented in GNU GRUB, so both GRUB for DOS and GRUB for NTLDR can use the menu.lst file.

What is different in the for NTLDR version is that command line parameters cannot be written in BOOT.INI, so only the default (hd0,0)/boot/grub/menu.lst file can be used.

If there is no such menu file, then commands such as

configfile (hd0,7)/boot/grub/menu.lst

can still be used on the command line to start a menu.

Of course, if (hd0,0) is an NTFS partition, then the menu cannot work, because GNU GRUB still does not support NTFS.

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

Also, although GNU GRUB does not support NTFS, GRUB for NTLDR can still boot successfully under the NTLDR menu of an NTFS system.

These are two concepts: the system that boots GRUB can be under NTFS. Of course, after GRUB obtains boot control, in GRUB it still cannot read files inside an NTFS partition.

In other words, the two files BOOTGRUB and GRLDR can be in an NTFS file system, and they can complete the task of booting GRUB.
因为我们亲手创建,这个世界更加美丽。
Floor 99 Posted 2004-01-24 00:00 ·  中国 重庆 电信
银牌会员
★★★
Credits 2,202
Posts 499
Joined 2003-06-12 00:00
23-year member
UID 4876
Gender Male
Status Offline
Brother 不点, I put Grub in the MBR, with the lst file in boot\grub. After starting from Boot.ini, the menu functions are all normal. One item Maps a dos img, which boots into pure dos. But if I want to return to Grub's command line, I have to type: Grub; how should I define an item in the lst file to start the pure Grub command line? Also, sometimes after entering the command line I forget which IMG name I wanted to Map, and after looking for a long time I can't find a command to list directories, so I can only chainloader back to boot.ini and return to dos, see the img name clearly, and then enter Grub again. Is there a command to list directories? Thanks...
一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
Floor 100 Posted 2004-01-24 00:00 ·  中国 河南 南阳 联通
银牌会员
★★★★
不甘寂寞的人
Credits 2,491
Posts 1,115
Joined 2003-09-24 00:00
22-year member
UID 10292
Gender Male
Status Offline
Some of GNU GRUB's original functions are not done very conveniently. For example, there is no menu command that directly returns to the command line. I don't want to add such a command to GNU GRUB. One reason is that I don't have the time. The second reason is that I'm afraid others may be doing this too, so duplicated work would waste effort. The third reason is that I don't think this issue is very urgent, and I don't have that much interest in it.

--------

Also, I feel that xiaojun doesn't seem to be very familiar with GNU GRUB. You really should google around on the Internet and look up some information.

1。How to enter the command line from the menu: just press the ESC key at the upper left of the keyboard. 【To return from the GRUB command line to the GRUB menu, it also seems to use the ESC key.】

2。Although GRUB does not have a DIR command, you can use the command line's auto-completion feature to view files and other information. For example:

Type

root (

After typing the left parenthesis, press the Tab key on the keyboard once, and it will list fd0, hd0, hd1 and other hard disks,

root (hd0

Press the Tab key again, and some partition information may appear:

root (hd0,0)

At this point, type a "/" path separator:

root (hd0,0)/

Press the Tab key again, and it will list the contents under the root directory of (hd0,0). When you see there is a boot in the root directory, type:

root (hd0,0)/boot/

Now press the Tab key again, and it will list the contents under the boot directory. When you see there is a grub in the boot directory, type:

root (hd0,0)/boot/grub/

Now press the Tab key again, and you will see a list of all files in the GRUB directory.

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

The Tab key is very convenient. For example, if you type

ch

and then press the Tab key once, it will automatically complete the command to

chainloader
因为我们亲手创建,这个世界更加美丽。
Floor 101 Posted 2004-01-24 00:00 ·  中国 重庆 电信
银牌会员
★★★
Credits 2,202
Posts 499
Joined 2003-06-12 00:00
23-year member
UID 4876
Gender Male
Status Offline
I used auto-completion before. When I typed root (h, Grub filled in partition information. I had thought it only completed partitions. Sorry, sorry. Thanks, brother Budian, you've taught me another trick. Many thanks... ! :)
一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
Floor 102 Posted 2004-01-26 00:00 ·  加拿大 安大略省 多伦多
系统支持
★★★★★★
“新DOS时代”站长
Credits 27,736
Posts 10,521
Joined 2002-10-09 12:00
23-year member
UID 9
Status Offline
Budian:

Right now I have two hard disks in this system, but each time I can only boot from one of them. I want to use GRUB for DOS with the following commands to boot from the other hard disk:

root (hd1)
chainloader (hd1)+1
boot

But I found that after executing these commands it still boots from the first hard disk, not the second one. Swapping the hard disks makes no difference either. The path itself should be correct; you can tell from what the Tab key shows. I don't know what the reason is.

But your GRUB for DOS and GRUB for NTLDR are both done very well, and we are all very grateful! I'd like to ask: for the many very useful new GRUB functions and bugfixes you've made, will the GNU GRUB authors add them into new versions of GNU GRUB? I hope so. After all, these functions and bugfixes are very meaningful, and can also avoid duplicate development. Don't you think so?

Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

Floor 103 Posted 2004-01-26 00:00 ·  中国 河南 南阳 联通
银牌会员
★★★★
不甘寂寞的人
Credits 2,491
Posts 1,115
Joined 2003-09-24 00:00
22-year member
UID 10292
Gender Male
Status Offline
You should use the following set of commands to achieve your goal:

map (hd1) (hd0)
map (hd0) (hd1)
chainloader (hd1)+1 or chainloader (hd1,0)+1
rootnoverify (hd0)
boot

In your set of commands, root (hd1) is wrong. This command tells the BOOTLOADER program which disk is the boot disk. The PC BIOS standard stipulates that only drive A: and drive C: can become boot disks, that is, only 0x00 and 0x80 can boot; other BIOS disks cannot boot. The MBR produced by Microsoft and the DOS boot code both assume that the hard disk number of the machine being booted is 0x80, that is, (hd0) rather than (hd1), and so on. So when we use (hd1) to boot the machine, it always fails.

Since the machine must be booted from (hd0), we have no choice but to use two map commands to swap the disk numbers. In fact, if we want to boot not only DOS but also windows, we also have to use GRUB's hide command to hide the NTFS partition, otherwise win98 will keep looking for the NTFS partition when starting up and thus cause a hang.

The rootnoverify (hd0) command is necessary, because the chainloader (hd1)+1 command changes the boot disk number to 0x81, so rootnoverify (hd0) is needed to correct it. The main function of the chainloader (hd1)+1 command is only to place the boot sector at 0000:7c00, waiting for the boot command to transfer control there. Before transferring control, the boot command first sets the CPU's DL register to the value specified by the rootnoverify (hd0) command, namely 0x80.

The DL register carries the number of the boot disk, and this must be ensured, otherwise the boot process may fail.

Also, Windows and DOS have many BUGs, and basically there is nothing we can do about them. If we can avoid them, then we avoid them; if we can't, then we can only accept our fate. If FreeDOS has any BUGs, we can still report BUGs to the developers, or we can try to eliminate them ourselves.

=================

The second question you mentioned is one I had to face from the very beginning. At the time I also did not want to set up another separate project and maintain it myself. Because that would be very complicated, while leaving it to GNU GRUB to maintain would save me quite a bit of trouble. But after thinking it over again and again, I still felt that maintaining it myself was more feasible. The reasons are as follows:

1。I cannot be sure whether the GNU GRUB developers would accept my PATCH. Although I have never submitted a PATCH to GNU GRUB, I have submitted patches to other projects before, and the project maintainers did not even send a reply; it just sank without a trace【of course, only one was not accepted; my other PATCHes were still accepted】.

2。GRUB for DOS is not a small patch, but a very large patch. It is still under development and changes frequently. Under such circumstances, it is not suitable to submit a patch. Only after development is no longer continuing would it be appropriate to submit it.

3。Submitting a patch is a trivial and tedious matter, rather troublesome. I like programming, I do not like writing documentation, and I also do not like submitting patches.

4。I have very serious doubts about the efficiency of the GNU GRUB development team. They actually went several months without upgrading GRUB, and it still remains at version 0.93. That level of efficiency is not satisfactory. I am an impatient person, and I do not want to be held back by them like that.

Roughly for the above reasons, I decided to maintain a new project myself. Looking at it now, this really was quite a wise decision. Because even now, GNU GRUB is still at version 0.93. That is simply too slow; I can't stand it.

Of course, after GRUB for DOS 0.2.0 is released, I also have to consider submitting it to GNU GRUB. But they may not necessarily adopt it, because I cannot write English documentation well. Without good English documentation, they will not accept it easily. That is why I very much hope someone can help.

By the way, GRUB for DOS 0.2.0 will include GRUB for NTLDR.
因为我们亲手创建,这个世界更加美丽。
Floor 104 Posted 2004-01-26 00:00 ·  加拿大 安大略省 多伦多
系统支持
★★★★★★
“新DOS时代”站长
Credits 27,736
Posts 10,521
Joined 2002-10-09 12:00
23-year member
UID 9
Status Offline
Budian: thanks for the above information!

Just now I did further testing on GRUB for NTLDR and found that it basically runs normally on my large hard disk (C drive is 2048MB FAT16); but on my small hard disk (C drive is 500MB FAT16) it cannot run normally. The behavior is that after selecting this item on the NTLDR menu, it automatically returns to the NTLDR menu and cannot enter GRUB. The MENU.LST files used on the two hard disks are identical (modifying MENU.LST was also ineffective, so it doesn't seem to be caused by MENU.LST), and GRUB for DOS does not have this problem. I don't know why.

Also, I found the following information in BOOTGRUB.INI:

Error: NTLDR not found. Press Ctrl+Alt+Del to restart.

Shouldn't "NTLDR" there be "GRLDR"?
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

Floor 105 Posted 2004-01-26 00:00 ·  中国 河南 南阳 内乡县 联通
银牌会员
★★★★
不甘寂寞的人
Credits 2,491
Posts 1,115
Joined 2003-09-24 00:00
22-year member
UID 10292
Gender Male
Status Offline
Try test002 and see how it is?

ftp://ftp.cosoft.org.cn/incoming/grub_for_ntldr-test002.tar.gz
ftp://211.100.7.71/incoming/grub_for_ntldr-test002.tar.gz
因为我们亲手创建,这个世界更加美丽。
‹ Prev 1 5 6 7 8 9 19 Next ›
Forum Jump: