I recently read a little bit about boot.ini and I am a little confused. From what I understood, boot.ini works kind of like menu.lst for GRUB (or any of the other files that GRUB needs). So, if boot.ini comes before the computer boots into Windows (or any other operating system), can it be used instead of GRUB? If so, boot.ini is not much of a "Windows-thing", is it? (Since it can be used completely independently of Windows). Maybe I'm missing something and what I said here is complete rubbish. Can someone explain this to me? Thank you!
More recent versions of Windows (Vista, 7) use BOOTMGR, which relies on a BCD (Boot Configuration Data) store rather than the simple
Chainloading can be basically described as the bootloader replacing itself in memory with a different one. If a bootloader supports chainloading, you can basically direct it to load any file it can read (on a FAT/NTFS file system in the case of Windows' bootloaders) and execute it as if the file was the original bootloader. In theory you can actually form a loop, where a bootloader loads another that loads the original, and so on...
There's a very nice description of the startup process at the Wikipedia article here.
The Windows boot loader is installed into the Master Boot Record of the first bootable drive by default.
The boot process uses the boot.ini file to configure the options to present when booting.
The Windows boot loader is positively simplistic when compared to GRUB.
Boot.ini does bear a passing resemblance to menu.lst but the similarity is more convergent evolution rather than anything else.
It is possible, though not totally trivial, to get the Windows boot loader to trigger another OS. To acheieve this, you need a copy of the boot records for the other OS's boot drive, you can then add a reference to that in boot.ini that will allow that boot record to be executed to load the other OS. See the last entry in this discussion for more details.
Even GRUB doesn't really attempt to actually boot Windows, it simply hands off (chains) to the Windows boot loader.
As far as I understand it booting for a IBM compatible PC is as follows:
You can point the NT loader (ntldr) to other installation. E.g. if your old boot.ini looks like this:
[boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00" multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos C:\="MS-DOS"
then you can add a line with
This means that nltdr does not really boot anything but windows, but you can let it hand over to boot process to another boot loader.