Add a new Sub-Menu folder

The Main Menu contains various sub-menus, e.g. LINUX, ANTIVIRUS,etc. The sub-menu entry will only appear in the Main Menu if there are files inside the sub-menu folder. We can add our more sub-menu folders (e.g. MSDART) into the Main Menu.
 
Note: All Menu folders must be directly under \_ISO and the folder name must not contain spaces or special characters. Do NOT edit/change any existing E2B files.
 
 

E2B SUBMENU Maker.cmd

Assuming you want to add a new sub-menu for say MSDART...
 

An easy way to add a new Main Menu entry for a new folder, is to use the \_ISO\docs\E2B Utilities\E2B SUBMENU Maker.cmd file - just run this or drag-and-drop your new \_ISO\MSDART folder onto it, to make a Main menu entry for it. 

You can edit the new file using NotePad afterwards (save as UTF-8 to preserve any special characters if using a non-English language).

Watch the YouTube video above or read the Blog for more details.


If you prefer to get your hands dirty (or don't have a Windows system), do it the harder way and follow the steps below.

 

Manually add a new .mnu

 
Let us suppose we want a new menu folder called 'MSDaRT' for our MSDart ISOs (this could hold XP-based, Vista/7/8 based or UEFI .imgPTN files - see blog). We want this new menu to be listed in the Main menu as a SubMenu.
 
1. Make a new folder at \_ISO\MSDART and put an ISO in it (or whatever payload files you want). If you want to add payload files + .mnu files to it, make a \_ISO\MSDART\MNU folder (any name will do!) and put your .mnu files + payload files in there.
 
2. Create a new text file \_ISO\MAINMENU\ZZSubMenu$MSDART.mnu from the WINPE example menu below (actually the name of your new .mnu file is not important, but it's name will determine the order it appears in the Main menu - so to have it appear before the other menu entries call it $$SubMenuMSDART.mnu - to have it appear last, call it ZZZZSubMenuMSDART.mnu).
 
3. Edit the new .mnu file and change  'WINPE' to 'MSDART' and all the other text shown below in bold text. Choose a new hotkey letter (or delete the ^Ctrl+W text) and a new heading for the menu.
 
This is for non-GFXBoot Menu E2B configurations as it uses a menu hotkey (CTRL+W) - hotkeys do not work in GFXBoot Menus.
 
iftitle [ls (bd)/_ISO/WINPE/ > (md)0x9F00+1 && checkrange 1:-1 read 0x13E0000 > nul && if "%GFX%"==""] ^Ctrl+W WINPE Menu        [Ctrl+W]\n Bootable WinPE's
#MFOLDER must be the full folder path starting with /
set MFOLDER=/_ISO/WINPE
#HDG is the top heading for the menu - \x20 is the code for a single SPACE character
set HDG=\x20WinPE Menu                                 \x20
(bd)/%grub%/SubMenu.g4b
boot
 
Look at \_ISO\MAINMENU\ZZSubMenuAll.mnu for other examples (but DO NOT edit it!).
 
Ensure you save it as UTF-8 encoded if you use non-ANSII characters (use NotePad- File - Save As...).

 

Add new 'AUTO' Payload folders

The \_ISO\AUTO folder can be used to hold many folders containg many payloads files. All the payload files in all the sub-folders will be collected into one 'DIRECT BOOT' menu.
 
If you want to add more menu folders that work like the \_ISO\AUTO folder, then create a .mnu text file in the \_ISO\MAINMENU folder and use this format:

The folders do not have to be below /_ISO, but this example uses \_ISO\LinuxISO\Ubuntu and \_ISO\LinuxISO\Fedora to hold Ubuntu and Fedora payload files...

iftitle [if "%GFX%"=="" && ls (bd)/_ISO/LinuxISO/Ubuntu > (md)0x9F00+1 && checkrange 1:-1 read 0x13E0000 > nul] Ubuntu Menu\n Go to Ubuntu Menu
set LBACKMENU=(bd)/%grub%/menu.lst
set HDG=\x20 Ubuntu Menu
(bd)/%grub%/QAUTO.g4b .automenu /_ISO/LinuxISO/Ubuntu
debug 0
configfile (md)0x3000+0xA0
 
iftitle [if "%GFX%"=="" && ls (bd)/_ISO/LinuxISO/Fedora > (md)0x9F00+1 && checkrange 1:-1 read 0x13E0000 > nul] Fedora Menu\n Go to Fedora Menu
set LBACKMENU=(bd)/%grub%/menu.lst
set HDG=\x20 Fedora Menu
(bd)/%grub%/QAUTO.g4b .automenu /_ISO/LinuxISO/Fedora
debug 0
configfile (md)0x3000+0xA0
 
 
Note that QAUTO.g4b will enumerate ALL payload files in all folders below the specified folder, so you cannot have nested folders.
 
 

Enumerate only one folder

If you only want the menu to list payload files that are in one folder and not search below that folder, then set the LEVEL1 parameter - e.g.
 
Example folder structure:
/_ISO/Ubuntu                                       - use for main ISOs   
/_ISO/Ubuntu/Version13                       - for released v13 ISOs  
/_ISO/Ubuntu/Version13/TESTONLY       - used for test builds of Ubuntu v13
 
 
iftitle [ls (bd)/_ISO/Ubuntu > (md)0x9F00+1 && checkrange 1:-1 read 0x13E0000 > nul] Main Ubuntu ISOs\n List Main Ubuntu ISO only
set LBACKMENU=(bd)/%grub%/menu.lst
set HDG=\x20 Ubuntu Menu
set LEVEL1=YES
(bd)/%grub%/QAUTO.g4b .automenu /_ISO/Ubuntu
set LEVEL1=
debug 0
configfile (md)0x3000+0xA0
 
iftitle [ls (bd)/_ISO/Ubuntu/Version13 > (md)0x9F00+1 && checkrange 1:-1 read 0x13E0000 > nul] Ubuntu v13 Menu\n Go to Ubuntu v13 menu
set LBACKMENU=(bd)/%grub%/menu.lst
set HDG=\x20 Ubuntu v13 Menu
set LEVEL1=YES
(bd)/%grub%/QAUTO.g4b .automenu /_ISO/Ubuntu/Version13
set LEVEL1=
debug 0
configfile (md)0x3000+0xA0
 
iftitle [ls (bd)/_ISO/Ubuntu/Version13/TESTONLY > (md)0x9F00+1 && checkrange 1:-1 read 0x13E0000 > nul] Ubuntu v143 Test ISOs\n Go to Ubuntu v13 TEST menu
set LBACKMENU=(bd)/%grub%/menu.lst
set HDG=\x20 Ubuntu v13 TEST Menu
set LEVEL1=YES
(bd)/%grub%/QAUTO.g4b .automenu /_ISO/Ubuntu/Version13/TESTONLY
set LEVEL1=
debug 0
configfile (md)0x3000+0xA0
 

 

Add a sub-sub-me nu folder

The \_ISO\UTILITIES_MEMTEST folder is actually a sub-sub-menu folder for the Memory Test menu which can only be reached via the Utilities menu.

The \_ISO\UTILITIES\Utilities_MemTest.mnu file is used to add a menu item in the Utilities Menu which will take you to the UTILITIES_MEMTEST menu.

In the UTILITIES_MEMTEST folder there is a ZZBackTo_Utils.mnu file which will take you back to the Utilities Menu from the Memory Test menu.

 
New in v1.62: 
An easy way to add a new Main Menu entry for a folder is to use the \_ISO\docs\E2B Utilities\Make SubMenu.cmd file - just run this or drag-and-drop your new \_ISO\MSDART folder onto it, to make a Main menu entry for it. See the Blog for more details.

Otherwise, do it the hard way and follow the steps below.
 

If you want your own sub-sub-menu, then you will need to create two similar files...

Example for Linux - Ubuntu sub-sub-menu

You want a new UBUNTU sub-sub-menu in the Linux Menu for Ubuntu ISOs

1. Use the \_ISO\docs\E2B Utilities\E2B SUBMENU Maker.cmd to create a LINUX_UBUNTU folder

Yoy can specify a hotkey (e.g. Ctrl+U) if you wish.

2. Move the file created in the \_ISO\MAINMENU folder (ZZSubMenu$LINUX_UBUNTU.mnu) to the \_ISO\LINUX folder

3. Copy your Ubuntu ISO files into the new, empty \_ISO\LINUX_UBUNTU folder

4. You can now test your menu, but you can only go back to the Main menu using F8.

To return to the LINUX menu from the LINUX_UBUNTU menu, add a new \_ISO\LINUX_UBUNTU\ZZReturn.mnu file:

title Return to Linux Menu\n Go back to the previous menu
set MFOLDER=/_ISO/LINUX
set HDG=Linux Menu
#HDG will be the heading for the menu
(bd)/%grub%/SubMenu.g4b
boot

You can define a hotkey too, by using a different title line, e.g.

title ^Ctrl+F8 Return to Linux Menu   [Ctrl+F8]\n Go back to the previous menu

To change the order of the menu entries, start the .mnu file name with either $ or Z as files are sorted alphabetically (the actual name of .mnu files does not matter).

You can edit the new .mnu files if you wish to change them (if you edit existing E2B .mnu files, they will be overwritten when you next update E2B!).