Often times, iPXE users will need to exit iPXE and continue with the BIOS boot order for any number of reasons. This is often the case for people who would like to install an OS directly to a SAN device. Unfortunately, many system BIOSes will not continue their boot order after iPXE exits and hands back control of the boot process.
In the majority of these scenarios, one can use the sanboot command directed at a local disk to achieve the same effect as having the BIOS continue to the next boot device. But when this doesn't work, a more robust option for booting a local drive is to use iPXE to simply chainload a different bootloader more suited to handling local disks.
GRUB4DOS has the ability to chainload the MBR from a local disk, can execute a second stage bootloader1) directly from a FAT, NTFS, or EXT volume, and includes an ATAPI driver for chainloading CD/DVD drives.
grub.exe is loaded like any other kernel image that iPXE can pass control to, and iPXE can pass commandline arguments to it to supply either a configuration file, or a simple string of commands.
For simplicity, we'll use the command-based approach:
chain http://server/grub4dos/grub.exe --config-file="command1;command2;commandN"
chain http://server/grub4dos/grub.exe --config-file="root (hd0,0);chainloader +1"
chain http://server/grub4dos/grub.exe --config-file="cdrom --init;map --hook;root (cd0);chainloader (cd0)"
chain http://server/grub4dos/grub.exe --config-file="find --set-root /BOOTMGR;chainloader /BOOTMGR"
chain http://server/grub4dos/grub.exe --config-file="find --set-root /filename;chainloader +1"