Layout of files on USB
/NTBOOT /grldr /menu.lst /osdetect.lst
This is the menu.lst
#menu.lst title auto-scan and boot find --set-root /osdetect.lst configfile /osdetect.lst
And this is the menu generator for our run-time OS boot menu
#osdetect.lst color 11 12 13 14 default 0 set thismenu=/osdetect.lst set prevmenu=/menu.lst set NTBOOT=/NTBOOT/NTBOOT set usb_hdd?=checkrange 0x80 read 0x8280 set xp=Windows NT/2000/XP set w7=Windows Vista/7 set help1=n bootmgr and correct bcd are required on hdd. set help2=n ntldr and correct boot.ini are required on hdd. set help3=n Neither bootmgr or correct bcd is required. set help4=n Neither ntldr or correct boot.ini is required. echo Loading dynamic os boot menu... map --unhook map --unmap=0:0xff find --set-root %thismenu% map --mem %thismenu% (hd60) map --hook set i=(hd60)+1 set o=(md)800+50 echo color 11 12 13 14 > %o% debug 1 && find --devices=h /ntldr > %i% %usb_hdd?% || cat --locate="(hd0,0)" --replace="(hd0,0)" %i% && echo title %xp% - (hd0,0)/ntldr %help2% >> %o% && echo root (hd0,0) >> %o% && echo chainloader /ntldr >> %o% %usb_hdd?% || cat --locate="(hd0,1)" --replace="(hd0,1)" %i% && echo title %xp% - (hd0,1)/ntldr %help2% >> %o% && echo root (hd0,1) >> %o% && echo chainloader /ntldr >> %o% %usb_hdd?% || cat --locate="(hd0,2)" --replace="(hd0,2)" %i% && echo title %xp% - (hd0,2)/ntldr %help2% >> %o% && echo root (hd0,2) >> %o% && echo chainloader /ntldr >> %o% %usb_hdd?% || cat --locate="(hd0,3)" --replace="(hd0,3)" %i% && echo title %xp% - (hd0,3)/ntldr %help2% >> %o% && echo root (hd0,3) >> %o% && echo chainloader /ntldr >> %o% cat --locate="(hd1,0)" --replace="(hd1,0)" %i% && echo title %xp% - (hd1,0)/ntldr %help2% >> %o% && echo map (hd1) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,0) >> %o% && echo chainloader /ntldr >> %o% cat --locate="(hd1,1)" --replace="(hd1,1)" %i% && echo title %xp% - (hd1,1)/ntldr %help2% >> %o% && echo map (hd1) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,1) >> %o% && echo chainloader /ntldr >> %o% cat --locate="(hd1,2)" --replace="(hd1,2)" %i% && echo title %xp% - (hd1,2)/ntldr %help2% >> %o% && echo map (hd1) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,2) >> %o% && echo chainloader /ntldr >> %o% cat --locate="(hd1,3)" --replace="(hd1,3)" %i% && echo title %xp% - (hd1,3)/ntldr %help2% >> %o% && echo map (hd1) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,3) >> %o% && echo chainloader /ntldr >> %o% cat --locate="(hd2,0)" --replace="(hd2,0)" %i% && echo title %xp% - (hd2,0)/ntldr %help2% >> %o% && echo map (hd2) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,0) >> %o% && echo chainloader /ntldr >> %o% cat --locate="(hd2,1)" --replace="(hd2,1)" %i% && echo title %xp% - (hd2,1)/ntldr %help2% >> %o% && echo map (hd2) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,1) >> %o% && echo chainloader /ntldr >> %o% cat --locate="(hd2,2)" --replace="(hd2,2)" %i% && echo title %xp% - (hd2,2)/ntldr %help2% >> %o% && echo map (hd2) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,2) >> %o% && echo chainloader /ntldr >> %o% cat --locate="(hd2,3)" --replace="(hd2,3)" %i% && echo title %xp% - (hd2,3)/ntldr %help2% >> %o% && echo map (hd2) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,3) >> %o% && echo chainloader /ntldr >> %o% debug 1 && find --devices=h /WINDOWS/system32/sysocmgr.exe > %i% %usb_hdd?% || cat --locate="(hd0,0)" --replace="(hd0,0)" %i% && echo title %xp% - (hd0,0)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd0,0) >> %o% %usb_hdd?% || cat --locate="(hd0,1)" --replace="(hd0,1)" %i% && echo title %xp% - (hd0,1)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd0,1) >> %o% %usb_hdd?% || cat --locate="(hd0,2)" --replace="(hd0,2)" %i% && echo title %xp% - (hd0,2)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd0,2) >> %o% %usb_hdd?% || cat --locate="(hd0,3)" --replace="(hd0,3)" %i% && echo title %xp% - (hd0,3)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd0,3) >> %o% cat --locate="(hd1,0)" --replace="(hd1,0)" %i% && echo title %xp% - (hd1,0)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd1,0) >> %o% cat --locate="(hd1,1)" --replace="(hd1,1)" %i% && echo title %xp% - (hd1,1)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd1,1) >> %o% cat --locate="(hd1,2)" --replace="(hd1,2)" %i% && echo title %xp% - (hd1,2)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd1,2) >> %o% cat --locate="(hd1,3)" --replace="(hd1,3)" %i% && echo title %xp% - (hd1,3)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd1,3) >> %o% cat --locate="(hd2,0)" --replace="(hd2,0)" %i% && echo title %xp% - (hd2,0)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd2,0) >> %o% cat --locate="(hd2,1)" --replace="(hd2,1)" %i% && echo title %xp% - (hd2,1)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd2,1) >> %o% cat --locate="(hd2,2)" --replace="(hd2,2)" %i% && echo title %xp% - (hd2,2)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd2,2) >> %o% cat --locate="(hd2,3)" --replace="(hd2,3)" %i% && echo title %xp% - (hd2,3)/Windows %help4% >> %o% && echo command %NTBOOT^% NT5 (hd2,3) >> %o% debug 1 && find --devices=h /bootmgr > %i% %usb_hdd?% || cat --locate="(hd0,0)" --replace="(hd0,0)" %i% && echo title %w7% - (hd0,0)/bootmgr %help1% >> %o% && echo root (hd0,0) >> %o% && echo chainloader /bootmgr >> %o% %usb_hdd?% || cat --locate="(hd0,1)" --replace="(hd0,1)" %i% && echo title %w7% - (hd0,1)/bootmgr %help1% >> %o% && echo root (hd0,1) >> %o% && echo chainloader /bootmgr >> %o% %usb_hdd?% || cat --locate="(hd0,2)" --replace="(hd0,2)" %i% && echo title %w7% - (hd0,2)/bootmgr %help1% >> %o% && echo root (hd0,2) >> %o% && echo chainloader /bootmgr >> %o% %usb_hdd?% || cat --locate="(hd0,3)" --replace="(hd0,3)" %i% && echo title %w7% - (hd0,3)/bootmgr %help1% >> %o% && echo root (hd0,3) >> %o% && echo chainloader /bootmgr >> %o% cat --locate="(hd1,0)" --replace="(hd1,0)" %i% && echo title %w7% - (hd1,0)/bootmgr %help1% >> %o% && echo map (hd1) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,0) >> %o% && echo chainloader /bootmgr >> %o% cat --locate="(hd1,1)" --replace="(hd1,1)" %i% && echo title %w7% - (hd1,1)/bootmgr %help1% >> %o% && echo map (hd1) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,1) >> %o% && echo chainloader /bootmgr >> %o% cat --locate="(hd1,2)" --replace="(hd1,2)" %i% && echo title %w7% - (hd1,2)/bootmgr %help1% >> %o% && echo map (hd1) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,2) >> %o% && echo chainloader /bootmgr >> %o% cat --locate="(hd1,3)" --replace="(hd1,3)" %i% && echo title %w7% - (hd1,3)/bootmgr %help1% >> %o% && echo map (hd1) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,3) >> %o% && echo chainloader /bootmgr >> %o% cat --locate="(hd2,0)" --replace="(hd2,0)" %i% && echo title %w7% - (hd2,0)/bootmgr %help1% >> %o% && echo map (hd2) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,0) >> %o% && echo chainloader /bootmgr >> %o% cat --locate="(hd2,1)" --replace="(hd2,1)" %i% && echo title %w7% - (hd2,1)/bootmgr %help1% >> %o% && echo map (hd2) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,1) >> %o% && echo chainloader /bootmgr >> %o% cat --locate="(hd2,2)" --replace="(hd2,2)" %i% && echo title %w7% - (hd2,2)/bootmgr %help1% >> %o% && echo map (hd2) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,2) >> %o% && echo chainloader /bootmgr >> %o% cat --locate="(hd2,3)" --replace="(hd2,3)" %i% && echo title %w7% - (hd2,3)/bootmgr %help1% >> %o% && echo map (hd2) (hd0) >> %o% && echo map --hook >> %o% && echo root (hd0,3) >> %o% && echo chainloader /bootmgr >> %o% debug 1 && find --devices=h /Windows/System32/winload.exe > %i% %usb_hdd?% || cat --locate="(hd0,0)" --replace="(hd0,0)" %i% && echo title %w7% - (hd0,0)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd0,0) >> %o% %usb_hdd?% || cat --locate="(hd0,1)" --replace="(hd0,1)" %i% && echo title %w7% - (hd0,1)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd0,1) >> %o% %usb_hdd?% || cat --locate="(hd0,2)" --replace="(hd0,2)" %i% && echo title %w7% - (hd0,2)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd0,2) >> %o% %usb_hdd?% || cat --locate="(hd0,3)" --replace="(hd0,3)" %i% && echo title %w7% - (hd0,3)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd0,3) >> %o% cat --locate="(hd1,0)" --replace="(hd1,0)" %i% && echo title %w7% - (hd1,0)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd1,0) >> %o% cat --locate="(hd1,1)" --replace="(hd1,1)" %i% && echo title %w7% - (hd1,1)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd1,1) >> %o% cat --locate="(hd1,2)" --replace="(hd1,2)" %i% && echo title %w7% - (hd1,2)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd1,2) >> %o% cat --locate="(hd1,3)" --replace="(hd1,3)" %i% && echo title %w7% - (hd1,3)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd1,3) >> %o% cat --locate="(hd2,0)" --replace="(hd2,0)" %i% && echo title %w7% - (hd2,0)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd2,0) >> %o% cat --locate="(hd2,1)" --replace="(hd2,1)" %i% && echo title %w7% - (hd2,1)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd2,1) >> %o% cat --locate="(hd2,2)" --replace="(hd2,2)" %i% && echo title %w7% - (hd2,2)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd2,2) >> %o% cat --locate="(hd2,3)" --replace="(hd2,3)" %i% && echo title %w7% - (hd2,3)/Windows %help3% >> %o% && echo command %NTBOOT^% NT6 (hd2,3) >> %o% echo title back... >> %o% echo map --unhook >> %o% echo map --unmap=hd60 >> %o% echo set * >> %o% echo find --set-root %prevmenu% >> %o% echo configfile %prevmenu% >> %o% configfile %o%
NTBOOT can be downloaded from http://code.google.c.../downloads/list
I hope this is useful for you and welcome for suggestions and improvements
Edited by Amr Abdel Aziz, 13 December 2011 - 02:14 AM.