I found a way to boot Haiku anyboot images using grub4dos.
You can read my blog post for details (now supported by E2B)
Here is a summary of the grub4dos code - note that Partition 4 of the USB drive is created using the partnew command, so the 4th partition entry on the USB drive must be unused, but after booting it will contain a BeoS type EB partition.
The crucial bit is patching the PBR to point to itself!
Note: Instead of configfile (md)0xa000+0x50 (which is used for E2B) you can reload your menu using configfile /menu.lst.
title Haiku anyboot \n Boot to Haiku set ISOC=/_ISO/haiku-nightly-anyboot.image partnew (hd0,3) 0xEB %ISOC% || echo && echo -e ERROR: %ISOC% is not contiguous or is BAD!\nPlease fix using RMPrepUSB-CTRL+F2. && pause Press a key... && configfile (md)0xa000+0x50 dd if=(hd0)0+1 of=(md)0x300+1 > nul # get length read 0x601fa > nul set /A LEN=%@retval%&0xffffffff > nul #echo ***** LEN=%LEN% map --read-only %ISOC% (hd15) > nul map --hook dd if=(hd15)0+1 of=(md)0x300+1 > nul # check for valid MBR read 0x601fe > nul set /A MAGIC=%@retval%&0xffff > nul if /i not "%MAGIC%"=="0xaa55" echo -e SORRY: %ISOC% is not a decompressed image file - please try WinRar or 7Zip to decompress it first! && pause && partnew (hd0,3) 0 0 0 && configfile (md)0xa000+0x50 set MAGIC= # find EB partition set STOFF= set /A TYP=*0x601c2 & 0xff > nul if /i "0xeb"=="%TYP%" && set STOFF=0x601c6 && echo Found EB partition in PTN 1 of %ISOC% set /A TYP=*0x601d2 & 0xff > nul if /i "0xeb"=="%TYP%" && set STOFF=0x601d6 && echo Found EB partition in PTN 2 of %ISOC% set /A TYP=*0x601e2 & 0xff > nul if /i "0xeb"=="%TYP%" && set STOFF=0x601e6 && echo Found EB partition in PTN 3 of %ISOC% set /A TYP=*0x601f2 & 0xff > nul if /i "0xeb"=="%TYP%" && set STOFF=0x601f6 && echo Found EB partition in PTN 4 of %ISOC% if "%STOFF%"=="" pause SORRY: Cannot find a type EB partition in the image! && partnew (hd0,3) 0 0 0 && configfile (md)0xA000+0x50 set TYP= # get start PBR inside image read %STOFF% > nul set /A OFFSTART=%@retval%&0xffffffff > nul #echo ***** OFFSTART=%OFFSTART% set /A L=%LEN%-%OFFSTART% > nul #echo **** L=%L% OFFSTART=%OFFSTART% echo echo -e Creating new partition 4 on hd0 using command: partnew (hd0,3) 0xEB (hd0,3)%OFFSTART%+%L%\nYou will need to remove partition 4 when you next boot E2B (see Sample_MyE2B.cfg for details). partnew (hd0,3) 0xEB (hd0,3)%OFFSTART%+%L% echo # patch 4 bytes at 1fa (706 dec) with ptn start dd if=(hd0,3)+1 of=(md)0x300+1 dd if=(hd0)+1 of=(md)0x200+1 debug 1 #echo -e -n Partition offset was\x20 && read 0x601fa #echo -e -n Partition start =\x20 read 0x401f6 > nul set patch=%@retval% write 0x601fa %patch% > nul echo echo Patching offset 706 in sector (hd0,3) with value %patch%... dd of=(hd0,3)+1 if=(md)0x300+1 # unmap file map --unhook map --unmap=0x8f # boot from new partition chainloader (hd0,3)+1 rootnoverify (hd0,3) set STOFF= set L= set OFFSTART= set LEN= set patch= # ptn type must be kept as EB or won't boot boot