Thanks to brother windrv for this whole speech. I sincerely thank you for your concern.
But I want to speak from GNU Grub's perspective.
Its aim, may be I am wrong, is to provide a bootloader that can be used independant
of another bootloader, especially MS's bootloader.
The purpose of GNU GRUB does not seem to be simply to be independent of other bootloaders. We know GNU GRUB can be installed in the boot sector of a partition, which enables it to chainload and be chainloaded by other bootloaders. I think it is not GNU that wants to be independent of MS's bootloader, but MS that wants to be independent of GNU's bootloader. GNU strives to support MS operating systems (the map command exists in order to support DOS/Windows), while MS seems never to support GNU programs. MS sets up many incompatible barriers so that others cannot communicate with it . Its bootloader originally only wanted to boot its own DOS/Windows, yet we are making it serve our GRLDR, breaking through this incompatible barrier of its own. This is exactly what many end users care about.
Your project may not have this goal. But with further development, it is possible.
Yes, my project has no intention of opposing MS, but strives for compatibility and interoperability with it. Even with further development, it will not deliberately separate from MS, but rather further improve compatibility. I believe the issue of compatibility is a very prominent and important issue today. Just think: how painful communication would be between a person who only knows English and not Chinese, and another who only knows Chinese and not English. The communication between you and me today is a real form of compatibility.
For instance, your GRUB.EXE relies on DOS system and your GRLDR relies on bootsector of an active NT Boot Partition.
Yes, just as I said above, this is not beneficial to MS, nor is it harmful to GNU. It is useful, and that is enough. The West is full of lofty things such as ideals and justice, while Chinese people mostly speak in practical terms, are more constrained by reality, and fewer have the temperament of the West.
To speed up your GRUB.EXE and go independent of DOS, I suggest you try the way of Syslinux or BootProg by Alexei A. Frounze at http://alexfru.chat.ru/epm.html
Thank you for providing this lead. I will find time to study it.
I.e. have an MBR that boots up the Boot Sector and have the Boot Sector that loads
up GRUB.EXE
Syslinux provides the MBR for FAT12/16 for loading a com/exe file
and
BootProg provides the Boot Sector for FAT12/16 that loads up a com/exe file.
Both claims that they can be used in FAT16 HDD.
So to make your project perfect; you may wish to try:
1. make an MBR - your BootGrub already?
2. make your bootsector - for reading in either your GRUB.EXE or your GRLDR
for FAT12/16/32/NT partition
For FAT12/16 partition, BootProg can provide you some source code to model on.
For FAT32/NT partition, it may be a bit time-consuming.
If the goal is to boot GRUB code from the MBR, then we do not need SYSLINUX or BOOTPROG at all. There are more concise and elegant ways to achieve the purpose. The FreeDOS boot loader can be modified to boot the GRLDR file on FAT12/16/32. I am currently doing this. As for GRLDR on an NTFS partition, we can already boot it successfully now. We have spent the least effort and achieved quite considerable results. If you understand that I have done no research at all into the structure of NTFS, and cannot even read any files from an NTFS system, then in such a situation, being able to locate the GRLDR file in an NTFS partition from the MBR and boot it is really a lazy trick. If I were not being lazy, then who knows in what year and month it would be accomplished.
Thank you for your reminders, help, concern, and suggestions all along, and I hope you will continue to help more. Thank you.
因为我们亲手创建,这个世界更加美丽。