--1. My computer is a mainboard with ASUS 845D chipset, only has USB_ZIP item, no USB_HDD item;
--2. When I set the floppy drive to "None" in BIOS, I boot GRUB from the hard disk (of course, the USB flash drive is inserted), and confirm there are only three disks: ---FD0, HD0, HD1 (I have two hard disks);
It shows that when booting from the hard disk, the BIOS recognizes the USB flash drive as A:. So, your USB flash drive is always recognized as A:, whether booting from the hard disk or from the USB flash drive.
--3. Then I boot from the USB flash drive into DOS, and run grub --config-file=(fd0)/menu.lst, still get a system crash;
Crash when accessing the USB flash drive? This should be a bug in that old USB flash drive BIOS. This has been reported by people a long time ago. Combined with your previous report, this bug always occurs, regardless of whether the floppy drive is disabled in BIOS.
--4. Restart the computer, still set the floppy drive to None, run grub --config-file=(fd1)/menu.lst, but can start GRUB normally,
--also no longer read the floppy drive, of course no clicking sound.
You use a non-existent file as the menu, of course GRUB cannot find this menu. Then GRUB calls the built-in menu. The built-in menu first searches and finds the menu.lst on the hard disk, then hands over control to this menu on the hard disk.
--For this, I am very curious, so I enter the GRUB command line, run:
--cat (, displays (fd0),(hd0),(hd1)
--Use cat (fd0, displays it is indeed the USB flash drive.
--Use cat (fd1, displays: Error23:Selected disk does not exist
Confirmed that (fd1) does not exist.
--Use the latest version on July 23rd (actually July 22nd), now report as follows:
--1. Test situation is the same as original grub for dos V4.1, in the USB flash drive must use grub --config-file=(fd1) /menu.lst
--to start, if the floppy drive is not disconnected in BIOS, there is still reading action, the floppy drive clicks; if the floppy drive is set to None in BIOS,
--no reading action, no click, and can start.
Same as above analysis. Supplement: If there is a floppy drive in BIOS settings, then the possible reading of the floppy drive may be (fd1)/menu.lst. Some BIOS may actually access (fd0) when you try to access (fd1).
--2. Use grub --config-file=(fd0)/menu.lst cannot start, crash after CD-ROM setup is OK.
--But the USB flash drive still has a long time of reading action before the crash (because the light of the USB flash drive is flashing all the time).
Crash when accessing the USB flash drive? This should be a bug in that old USB flash drive BIOS. This has been reported by people a long time ago. Combined with your previous report, this bug always occurs, regardless of whether the floppy drive is disabled in BIOS. From the error message having reached CD-ROM setup is OK, it shows that A20 has been successfully opened, so rule out the possibility of crash caused by A20 control. It should be that the crash occurs when reading the menu file on the USB flash drive. You try to enter GRUB, then use the geometry (fd0) command, see if this command can be executed successfully. If successful, post its output result. Further, you can also use cat --hex (fd0)+1 to display the first sector of the USB flash drive, see if it is normal.
--3. I boot GRUB from the hard disk, indeed have the following display:
--possible disk are:fd0 fd1 hd0 hd1 rd
--If use cat (fd0, then no any display (the previous version has display), rd also no display;
--Use cat (fd1, then has display such as "Plssible partitions are:".
The two displayed floppy drives, (fd0) may be your real floppy drive, so it has no content display. And (fd1) may be the USB flash drive, so it has content display. But you did not display the content completely, so, you better use cat --hex (fd1)+1 to display the first sector of the USB flash drive, see if it is a partition table containing MBR or a usual DOS boot sector?
--I have found out, if I delete menu.lst in C drive, then no matter use --config-file=(fd1) or --config-file=(fd0)
--均 crash, indicating that the menu read by GRUB when running on USB flash drive is actually the one in C drive root directory, it cannot read the menu in USB flash drive root directory
--(although there is a long time of reading action, but finally crash).
--Conclusion: If there is no menu.lst in C drive, I cannot run GRUB in DOS startup environment of USB flash drive, otherwise crash.
So, I think should find out the structure of the USB flash drive, just as above said. Also again shows, this is the crash caused by BIOS reading process, essentially a BIOS fault.
--But what I cannot understand is: whether the crash is actually restricted by whether there is menu.lst in C drive,
When there is menu.lst in C drive, GRUB does not look for the USB flash drive, so it will not crash. This is easy to understand. Once need to read files from the USB flash drive, then it may lead to crash. When there is no menu.lst in C drive, the old version of GRUB will search for the floppy drive (that is, the USB flash drive), so it may lead to crash. The new version should not search for the floppy drive, so should not crash, you confirm again.
--Is there no way to solve it?
Try like this? grub --config-file="commandline" this command does not use other menus, but directly uses the GRUB command specified by the command line (here is commandline command), so, after starting GRUB will directly enter the command line, no longer look for the menu.
=========
Generally speaking, there are two possible reasons leading to this phenomenon. One is a BIOS bug, the other is that the formatting method of the USB flash drive is wrong. But the fundamental reason should still be the first one, that is, the BIOS bug leads to it. Find the BIOS manufacturer or mainboard manufacturer to solve.
因为我们亲手创建,这个世界更加美丽。