Brother i659:
GRUB's floppy emulation function can boot any floppy【including LINUX and FREEBSD floppies; in short, floppies for any purpose】. On this point, there are no restrictions at all. However, there are also some restrictions related to operating systems, mainly based on the fact that some operating systems, after taking over control, do not use the BIOS INT13 interface. If that is the case, then some problems may occur, or there may be no problems. The details are as follows:
When this kind of operating system does not use or access the contents of the floppy, it can operate normally, with no difference at all from booting from a real floppy. For example, this is the case for most LINUX floppies and FreeBSD floppies.
When a program in the floppy disk image needs to access the contents of the floppy image itself, access failure will occur. In that case, booting will fail. This is because the user program accesses the real floppy through the operating system【not through the BIOS interface】, but the real floppy is not in the floppy drive, so access fails.
GRUB for DOS 0.1.x generally does not support 2.88M floppies. GRUB for DOS 0.2.0 supports floppy disk images of any size, and also supports emulation of hard disk images of any size. Although the official version of GRUB for DOS 0.2.0 has not yet been released, the current test version is almost equivalent to the official release.
=========
Under XP, if your disk is in NTFS format, you will be unable to access the file (hd0,0)/boot.flp on the disk under GRUB; you can access a file on another FAT32 partition. Put boot.flp on a FAT32 partition, and you will be able to access it under GRUB.
Also, if your boot.flp is already on FAT32, then the reason map fails is that the boot.flp file is fragmented. You can copy several backup copies of boot.flp and see which one has no fragments, then use that one.
This is explained in great detail on the web page:
http://www.linuxeden.com/edu/doctext.php?docid=3006
----------------------------------
Brother Wengier:
I had also considered the function of disabling disks before, but since windows may not use BIOS, this kind of disabling may not necessarily work. windows 32-bit disk access actually bypasses the BIOS int13 interface.
Disabling disks under DOS may work somewhat better. As for disabling a certain disk, or adding a certain disk, there are three points to consider:
1。In the BIOS data area there are fields for the number of floppies and the number of hard disks. When adding or removing disks, it would be best to adjust these fields.
2。Disk configuration information is stored in CMOS, but it is still best not to touch it.
3。Use the map command to make the disk inaccessible.
As for point 1, since our GRUB sometimes has to re-enter, after making changes we would have to restore it again when re-entering. That is rather troublesome and easy to get wrong, so we will not do point 1 either. Therefore we only use point 3 to implement it. For example, to disable (hd1):
map --disable-chs-mode --disable-lba-mode (hd1) (hd1)
I don't know whether this command works properly; I haven't tested it.
Add a hard disk (hd3):
map (hd2,0)/hard_disk.img (hd3)
Since the number of hard disks in the BIOS data area is not increased, this command cannot actually add an (hd3).
=================
What I said on the web page was rather casual. It seems I need to revise it. Before, I did not understand the general situation of this site.