The UEFI GRUB2 Menu System

PLEASE NOTE: This UEFI GRUB2 Menu System is now deprecated (old and outdated).

I now recommended a1ive grub2 File Manager - just add ISOs and Secure UEFI-boot!


  • For UEFI-booting direct from .ISO, .EFI and other payload files using grub2
  • Beta grub2 10 now displays a full Secure Boot menu
  • Beta Grub2 10W can now MBR and UEFI-boot directly from Windows Install ISOs (but not secure Boot)


Note: Grub2 10 now supports Secure Boot BUT the 2nd partition must be FAT32 for Secure Boot to detect the ISO files. Also, only six specific custom .grub2 menu files are now detected. If you have added your own .grub2 files, you must rename them as custom_menu.grub2, custom1_menu_grub2, custom2_menu.grub2 up to custom5_menu.grub2. You can add more .grub2 files to these six files by using a 'source' command.
Grub2 10W now also supports MBR and UEFI booting of Windows Install ISO files - see section at end of the page on Grub2 10W.
Recommended - New for 2020: I highly recommend you first try a1ive's grub2 File Manager (UEFI64 Secure Boot of secure and insecure files, UEFI64, UEFI32, MBR\Legacy, Windows Install ISOs, Linux ISOs, Windws VHDs, .img, .ima, EFI, etc.) - just add ISOs (any name/type) and boot - no menus required.
The standard method to UEFI-boot from an E2B drive is to make a .imgPTN file from the original payload file and then 'switch-in' the image file to replace the E2B partition. This allows us to UEFI-boot or MBR boot from that partition (and Secure Boot if the payload's boot files support it). However, we can only boot one payload at a time and we can only boot to payloads which already support UEFI-booting.
The E2B grub2 menu system uses a two-partition solution and the grub2 boot manager/loader...
Partition 1: FAT32 containing grub2 MBR and UEFI boot files
Partition 2: FAT32 or NTFS partition containing ISO/payload files
By switching to the special grub2 .imgPTN partition image file and booting from it, it is possible to UEFI-boot directly to many linux ISOs and .EFI boot files (such as Memtest and KonBoot EFI files) all from one grub2 menu system (no need to reboot and load a different .imgPTN file each time!). A second primary partition is required on the E2B USB drive which holds the ISOs and other payload files. Note: Windows booting only supported if you add your own grub2 menu - see here - or use 10W for direct ISO booting (see end of this page).
  • The main purpose of the GRUB2 menu system, is to allow you to UEFI-boot directly to a menu containing multiple linux ISOs and .EFI files (even if some are not officially UEFI-bootable!). 
  • Some ISOs that do not contain any UEFI boot files (\EFI\boot\bootx64.efi and bootia32.efi) will still UEFI-boot via the grub2 menu system! For instance, the 32-bit Zorin 11 ISO does not contain EFI boot files, yet it can be UEFI-booted direct from the ISO using grub2.
  • Using version 10W you can UEFI-boot directly from Windows Install ISOs.
Although you can also MBR-boot from the grub2 menu system, that is not it's main purpose because the E2B menu system also supports MBR-booting and is much more flexible and reliable than the grub2 menu system.
The E2B grub2 menu system adds into the menu certain specific .grub2 files it finds in the pre-set ./grub2 folders.
You can add extra .grub2 files (custom_menu.grub2, etc.) to add more menu entries.
  A grub2 menu (with Secure Boot disabled).


  • Once you switch to the grub2 menu .imgPTN file, you can UEFI-boot and MBR-boot to a wide range of payloads all from one grub2 menu system.
  • Works best with E2B USB HDDs (fixed-disk type) - but can be used on Removable devices too
  • No need to make files contiguous
  • Can UEFI-boot some linux payloads that do not contain UEFI boot files and cannot normally UEFI-boot (e.g. can boot in all these additional modes: deftz EFI32, kali EFI64, kali light 32 EFI64&EFI32, nst EFI64&EFI32, ophcrack EFI64&EFI32, weakerthan EFI64&EFI32, debian EFI64, fedora EFI32, knoppix EFI64, systemrescuecd EFI32, zorin32 EFI32, avira EFI32, bitdefender EFI32, pwh32 EFI32, drweb EFI64&EFI32, eset EFI64&EFI32 - see blog)
  • You can add your own 'custom' .grub2 menu files and payload files without editing any existing files
  • The same payload files can also be booted from within the E2B grub4dos menu system (in MBR-mode)
  • Ideal for linux-based users who do not have access to WinContig/MPI Tool Pack
  • Comprehensive spreadsheet available of supported (linux) payloads
  • Some menus also support persistence
  • You can UEFI-boot (most) payload files (ISOs, etc.) from an NTFS partition (for secure boot -  use FAT32 for ptn2)
  • Drive can be write-protected (after it has been switched to the grub2 .imgPTN file)
  • Can also Secure Boot to grub2 but partition 2 must be FAT32 (not NTFS) so ISOs must be <4GB.
  • Version 10W can MBR- and UEFI-boot directly from Windows Install ISOs - just copy them onto the second partition. ISO name can contain spaces. Any name can be used.


  • Most ISO filenames must not contain spaces and are case-sensitive.
  • Each ISO must have a specific name and there must be a .grub2 menu file which looks for it.
  • Each different payload requires a different and unique .grub2 menu (many menus are already provided).
  • Some systems may not allow you to MBR-boot when switched to the 'grub2 menu mode' (no boot option) - this is a BIOS firmware bug. To return to E2B mode, use \e2b\SWITCH_E2B.exe.
  • You need to have, or create, a second primary partition on your E2B drive.
  • Works best with a FAT32 2nd partition, but FAT32 cannot contain files over 4GB, however if you use an NTFS 2nd partition, then some ISOs will not boot (e.g. Fedora, gentoo, CentOS, BitDefender require FAT32 for 2nd partition). If you want to Secure Boot, the 2nd partition must be FAT32.
  • Must give each ISO or payload file a specific unique name that is recognised by the grub2 menu.
  • The grub2 .imgPTNLBAa23 partition image file on the E2B partition must be contiguous.
  • If an ISO does not support linux cheat codes for ISO-booting, you will need to extract the files from the ISO.
  • To boot from the ISOs using the E2B menu, the ISOs need to be contiguous (use WinContig or linux defrag utility).
  • You don't get all boot menu options of the ISO's full internal boot menu (e.g. live, install, safe mode, memtest, etc.) unless you make your own menu entries for each option.
  • If a linux distro changes it's scripts or kernel, you may need to re-write the .grub2 menu file - i.e. the grub2 menu files may become outdated.
Excel spreadsheet of over 60 tested/supported payloads - click HERE.

Updating an existing E2B GRUB2 drive

If you already have an earlier version of the Grub2 menu system on your E2B drive, here is how to update your E2B USB drive:
1. Download the latest UEFI_GRUB2_PTN2_xxx.7z file and extract the files to your Windows system.
2. Copy the UEFI_GRUB2_PTN2_xxxx.imgPTNLBAa23 file to your E2B partition, e.g. \_ISO\MAINMENU\ (delete the older version).
3. Run UPDATE_GRUB2_FILES_ON_USB_DRIVE.cmd from the PTN2 folder in the download folder - this will update your 2nd partition with any changed *.grub2 files.
Note: Version 10 and later versions do NOT detect all user-added .grub2 files. Only files named custom_menu.grub2 and custom1_menu.grub2 up to  custom5_menu.grub2 are now detected. You can add more by using the 'source' command inside  a custom menu.

How to add the E2B Grub2 Menu system to your E2B drive


Download the grub2 Tool Kit (direct link) and extract the files to a folder on your Windows hard disk.
1. Your E2B USB drive must have a second primary partition. These will contain all the payload files and the menu structure.
2. You will copy the UEFI_GRUB2_PTN2.imgPTNLBAa23 file (included in the download) to your E2B drive.
3. If you also wish to run the payload files on the 2nd partition from your E2B menu (in MBR mode), you will also need to add some extra E2B grub4dos .mnu files to your E2B USB drive (these are included in the download).
4. You will need to add your payload files to the 2nd partition (they do not need to be contiguous for the grub2 menu system, but they do need to be contiguous for the E2B menu system).
Although it is possible to use this scheme with a Removable USB drive, unless you have Windows 10, I recommend using a USB Hard Disk as your E2B USB drive.


1. First make a 2nd Primary partition on the E2B drive

If a small second partition already exists on the E2B USB drive (which it will if you used the E2B script to make it), you should delete it.
If your E2B USB drive does not already contain a second primary partition, then create one using a suitable partition manager (I recommend EaseUS Home Partition Master - free edition, which can add a second primary partition even to a Removable USB drive and can create >32Gb FAT32 volumes). 
Use RMPrepUSB - Drive Info to check that you only have two Primary partitions.

WARNING: Do NOT use Windows Disk Manager to view partitions - it does not correctly show small partitions!
You can format the new 2nd Primary partition either as FAT32 or NTFS, it needs to be big enough to hold all the ISO files that you want to add...
  • Most compatible
  • Only allows files below 4GB in size (note a few ISOs are >4GB, e.g. openSUSE-Leap-42.1-DVD-x86_64.iso, blackarchlinux.)
  • If you want to also store backups on this 2nd partition, you will be limited to <4GB files
  • Allows menu to work if you Secure Boot
  • Some linux ISOs will not boot from an NTFS drive under grub2 - e.g. Fedora, CentOS, bitdefender and gentoo (see spreadsheet for more).
  • You can have files >4GB on the second partition (and thus place large backup files on it and large .iso files).
  • Only Memtest86 can be run if you Secure Boot.
The volume label of the 2nd primary partition can be anything you like (e.g. E2B_PTN2).
Note: The first partition of an E2B USB drive should contain your E2B files. 

1.1 Copy the files from the PTN2 folder to the second partition

Once you have made the second partition on your E2B USB drive, you need to copy all the files from inside the 'PTN2' downloaded folder to the root of your new partition. This will give you a folder structure similar to the E2B partition, with a \_ISO folder in the root of the second partition.

Note: Some older Windows versions can only access the first partition on a Removable USB drive. You can swap over PTN1<>PTN2 by using SWITCH_E2B.exe or RMPrepUSB - CTRL+O - 2. Once you have copied over the payload files to partition 2, switch the partitions back again.

When done correctly, you should have a \_ISO\MAINMENU\grub2 folder (and several other new folders) on the new partition.

2. Add the UEFI_GRUB2_PTN2_Betaxx.imgPTNLBAa23 file

The 'grub2' Tool Kit download will contain a UEFI_GRUB2_PTN2.imgPTNLBAa23 file.
As supplied, it will be a (approx. 45MB) partition image file. 
Simply copy this to the \_ISO\MAINMENU folder on your E2B USB drive (first partition).
You can change the file name if you wish, but keep the .imgPTNLBAa23 file extension (or add 'AUTO' to the end of the extension if you want it to run without the warning prompt). You can instead use an extension of .imgPTN23AUTO if you wish = e.g. E2B grub2 Menu.imgPTN23AUTO.
This file must be made contiguous (\MAKE_THIS_DRIVE_CONTIGUOUS.cmd).

3. Add the 'PTN2' .mnu files to the E2B menu system (optional)

If you also want to MBR-boot to any of the payload files on the second partition via the E2B menu system as well as use the grub2 menu system, you will need to add the five E2B .mnu files (included in the download) that will enumerate the files on the 2nd partition. E2B (v1.80+) also contains these five .mnu files in the Sample mnu Files folder (the \_ISO\docs\Sample mnu Files\E2B Menus\GRUB2 folder).
Copy these five xxxxxPTN2.mnu files to the \_ISO\MAINMENU folder on your E2B partition (or to any menu folder you wish).
Note: If the 2nd partition is beyond 137GB on the drive, E2B/grub4dos may not be able to boot from those payloads due to a BIOS bug issue found with some systems, but the grub2 menu system should be able to boot from them.
Bugifx: There was a typo in some PTN2_xxx.mnu files (the LINUX, BACKUP and UTILITIES .mnu files) - please download Beta9 or later.

4. Add the payload files to the second partition

You need to add payload files (e.g. iso files) to the second partition and give each payload file a specific name (case sensitive).
To get started, copy each iso file to the \_ISO\MAINMENU folder on the 2nd partition and rename it as detailed in the .xls Excel spreadsheet.
You can copy the ISO to any one of four folders...
\_ISO\MAINMENU\ubuntu.iso  OR \_ISO\LINUX\ubuntu.iso OR \_ISO\MAINMENU\MNU\ubuntu.iso OR \_ISO\LINUX\MNU\ubuntu.iso
  • Payload files must be added to the second partition (the E2B partition disappears when you switch in the .imgPTNLBAa23 file!)
  • The payload filename must be a specific name for it to be recognised by the grub2 menu system. 
    For instance, for the AVG ISO, avg_arl_cdi_all_120_150814a10442.iso, you must rename it to avg.iso
    Nearly all payload file names are lowercase (they must match what is used in the .grub2 menu files).
  • Payload files must be copied to the correct folder. The \_ISO\MAINMENU folder will recognise all ISO files because it contains all .grub2 menu files. The \_ISO\LINUX folder only recognises payloads specified in the linux.grub2 menu file.
    For instance, avg.iso will only be detected if placed in the \_ISO\MAINMENU or \_ISO\MAINMENU\MNU or \_ISO\LINUX or \_ISO\LINUX\MNU folders.
    There will be a list of what these filenames need to be in the \readme.txt file and .xls spreadsheet.
    For instance, kali.iso can be placed under the MAINMENU folder or the UTILITIES folder, but it will not work if placed under the LINUX folder.
  • Payload files placed in a '\MNU' sub-folder will not be enumerated by the E2B menu system unless you add an E2B .mnu file (but will be enumerated by the GRUB2 menu system).
Tip: Double-click the \FIND_A_STRING_IN_A_GRUB2_MENU.cmd script and enter a search string (e.g. kali). This will then list all lines in the grub2 menu files with the string "kali" in them. This allows you to find out what the filename should be and if a menu is present and what .grub2 file the menu entry is in.
Note: If you also want to boot the ISOs from the E2B menu system, you must make them contiguous by running WinContig.

Tip: Copy \MAKE_THIS_DRIVE_CONTIGUOUS.cmd to \ on the 2nd grub2 partition, and also copy the whole \_ISO\docs\WINCONTIG folder to the 2nd partitions \_ISO\docs\WINCONTIG folder. Then you can double-click on the \MAKE_THIS_DRIVE_CONTIGUOUS.cmd script on the 2nd partition to make all files contiguous on that partition.

5. Switch in the .imgPTNLBAa23 file

Finally, you must switch partitions so that you can boot to the grub2 menu system. 

Use \_ISO\SWITCH_E2B.exe and double-click on the UEFI_GRUB2_PTN2xxxxx.imgPTNLBAa23 file...

OR MBR-boot to E2B and use the E2B menu to select the UEFI_GRUB2_PTN2xxxxx.imgPTNLBAa23 file.

The E2B partition will disappear and the new grub2 partition will be seen on the USB drive.

You should now be able to MBR-boot to the grub4dos CSM menu and select the grub2 menu system, or directly UEFI-boot to the grub2 menu system.

To restore back the E2B menu system, use \e2b\SWITCH_E2B.exe - Restore E2B partitions (under Windows), or use Menu #0 in the CSM Menu.


How it works

The grub2 menu system works by enumerating the .grub2 menu files which are present on the second partition (only specific 'grub2' folders are searched for certain specific .grub2 menu files - see below).
The .grub2 files are just grub2 '.cfg style' menu text files, which contain grub2 menus. They are the equivalent of the grub4dos .mnu files that are used by grub4dos in the E2B menu system.
For instance, if you place 'avg.iso' in the folder \_ISO\ANTIVIRUS\MNU on the second partition, there must be a grub2 menu for it in the \_ISO\ANTIVIRUS\MNU\grub2 folder. In this case, you will find that the antivirus_menu.grub2 file, contains a menu entry for the 'avg.iso' file.
Note that some payload files need to be extracted to the \ISO_Extract folder (or other folders depending on what it is).
Not all payloads may be listed in the grub2 menu on every system. For instance, if the payload file does not work on 32-bit systems, the menu entry for it will only appear in the grub2 menu on 64-bit systems. If the payload does not boot in MBR mode, then the menu entry will only be listed when booting in UEFI-mode.
Take a look at one of the .grub2 files to see how they work, e.g. \_ISO\MAINMENU\grub2\linux_menu.grub2.
User files - Up to six files which must be named custom_menu.grub2, custom1_menu.grub2 ...  custom5_menu.grub2 will be auto-detected, if present. They can be added to each of the grub2 folders if you want to add extra payload menus.

Extracted payloads

Some ISOs will not work unless they are extracted  to the 2nd partition. The \_ISO_Extract folder and the \rescue folder are used to hold the extracted files.
\ISO_Extract\android-x86  - extract the android ISO into here
\ISO_Extract\phoenix      - make a USB flash drive and then copy the contents of the flash drive to here
\ISO_Extract\remixos      - extract the ISO to here
\ISO_Extract\drweb        - extract casper folder to here. Unpack the casper-rw file for persistence to \ISO_Extract\drweb\casper-rw
\rescue                   - extract the Kaspersky Rescue Disk ISO to the root of the 2nd partition, then move the \boot folder into the \rescue folder (see readme.txt file).
For the android based OS's, if you want persistence they will need a data.img file. Read the \ISO_Extract\readme.txt file for instructions on how to make them (e.g. \ISO_Extract\remixos\data.img).
Kaspersky AV must be extracted to the root so that we get a \rescue folder (see below).
Read the 'readme' files in the \_ISO_Extract folder for more information.
IMPORTANT: You will need to copy the correct .grub2 files from the \_ISO\docs\Sample mnu Files folder to the correct menu folder on partition 2. For instance, copy \_ISO\docs\Sample mnu Files\kaspersky_extracted.grub2 to the \_ISO\ANTIVIRUS\grub2 folder and rename it as custom_menu.grub2 - a menu entry for Kaspersky will then appear in the AntiVirus grub2 menu system when the extracted files are detected.
Only files named custom_menu.grub2, custom1_menu.grub2 - custom5_menu.grub2 will be added into the menu system.
You can add more .grub2 files of any name by adding a 'source' command line into the custom_menu.grub2 file, e.g.
source $isofpath/grub2/kasperksy_extracted.grub2

Kaspersky AV rescue.iso (extracted)

The Kaspersky rescue.iso must be extracted to the root of partition 2. Then move the \boot folder into the \rescue folder (so you get a \rescue\boot folder). Instructions are in the \rescue\readme.txt on partition 2.

Copy \_ISO\docs\Sample mnu Files\kaspersky_extracted.grub2 to the \_ISO\ANTIVIRUS\grub2 folder and rename to custom_menu.grub2 - a menu entry for Kaspersky will then appear in the AntiVirus grub2 menu system - if the extracted files are detected.

Note that you can UEFI-64 boot to Kaspersky even though there are no EFI boot files inside the ISO (EFI32 should also work).

When you run Kaspersky, it will download the updates to a new folder that it will make on the system disk (inside the system you booted with). If you want the updates to be stored on the E2B drive, see the box below.
Note: If you wish to run Kaspersky AntiVirus with persistent updates you will need to make a larger .imgPTNLBAa23 file as follows:
1.  'Switch' to the UEFI_GRUB2_PTN2.imgPTNLBAa23 partition using  \_ISO\SWITCH_E2B.exe and copy the entire contents to an empty folder 'GRUB2' on your PC's hard drive (don't copy the System Volume Information folder or Recycle Bin folder) . Then switch back to the E2B partition using SWITCH_E2B.exe - Restore E2B Partition(s).
2. Drag-and-drop the GRUB2 folder onto the MPI_FAT32 Desktop shortcut - choose a size of 400MB  (must be at least 300MB). Name the file as something suitable, e.g.  UEFI_GRUB2_PTN2_400MB.imgPTNLBAa23. If asked to merge the menu.lst, choose Y or N - it does not matter because we are going to destroy the files in step 4 below!

3. Now copy the new UEFI_GRUB2_PTN2_400MB.imgPTNLBAa23 file to your E2B USB drive's \_ISO\MAINMENU folder and 'switch' to it using \_ISO\SWITCH_E2B.exe. Check that you can now see a 'g2ldr' file in the root of the new partition.

4. IMPORTANT: Now re-copy the entire contents of the original GRUB2 folder to the partition and overwrite all the files (allow enough time for all the files to be copied). This is required because the MPI_FAT32 (MakePartImage) script will have incorrectly modified some of the files. If there is not enough disk space, delete the \boot folder from the new partition (hold down SHIFT+DEL so they are not copied to the Recycle bin on the drive!) and then re-copy all the GRUB2 files again. The contents of the new partition should be identical to the contents of the GRUB2 original folder. Double-check the folder contents carefully and make sure all the files have been copied!
5. Copy the \Kaspersky Rescue Disk 10.0 folder to the root of the first partition on the E2B drive, or boot to Kaspersky and ensure that after downloading updates, the \Kaspersky Rescue Disk 10.0 folder is now present on the USB drive.

The \Kaspersky Rescue Disk 10.0 folder will be used to store the updates, but make sure that no other disk in the system you are booting on has a folder of the same name in the root of any drive - if it does, then delete the Kaspersky Rescue Disk 10.0 folder from any of the internal hard drives, otherwise the updates may be stored there instead!

Updating your UEFI GRUB2 files with a newer version

If you download a new version of the grub2 menu system, you should replace the old .imgPTNLBAa23 file with the new one.
Then extract/copy/replace the files in the PTN2 folder to the root of your second partition (UPDATE_GRUB2_FILES_ON_USB_DRIVE.cmd is useful for this).

Useful GRUB2 Windows scripts

UPDATE_GRUB2_FILES_ON_USB_DRIVE.cmd        - Updates any existing *.grub2 files from the download folder to the USB drive (but only if they already exist on the USB drive)
FIND_A_STRING_IN_A_GRUB2_MENU.cmd          - Looks for a string in all the *.grub2 files
UPDATE_GRUB2_FILES_FROM_MAINMENU.cmd    - The MAINMENU folder contains the 'master' set of grub2 files (see below)
COPY_ALL_GRUB2_FILES_TO_USB_DRIVE.cmd     - Use this to place a default set of .grub2 files on your E2B 2nd partition
Note: If you change or edit any .grub2 file, you will need to update all occurrences of the same file in the other grub2 folders where it is used.
You can use the \UPDATE_GRUB2_FILES_FROM_MAINMENU.cmd script to do this. It will use the .grub2 files in the \_ISO\MAINMENU\grub2 folder as the 'MASTER SOURCE' and then update any .grub2 files of an identical name in all the other folders. To understand what it does, use T (TEST) so it does not actually alter any files. This means you just need to edit the .grub2 files in \_ISO\MAINMENU\grub2 and the script will update all other instances of the same file in the other seven folders (if it exists in those folders).

Additional .grub2 menu files

See here for additional grub2 menu files (e.g. winpe).
Change the name to custom_menu.grub2 (or custom1_menu.grub2, etc.) so it is detected by the grub2 menu system.
A gparted.grub2 file can be added in this way for gparted64.iso and gparted32.iso.

How to use the GRUB2 menu system

1. First you must switch to the UEFI_GRUB2_PTN2.imgPTNLBAa23 image (by booting to E2B or using SWITCH_E2B.exe).

Note: You can change the name and add 'AUTO' to the file extension - e.g. 'UEFI Grub2 Menu System.imgPTNLBAa23AUTO'. It will immediately switch to the CSM menu.

2. If you MBR-boot, you will see the GRUB2 CSM menu. You can choose the GRUB2 menu entry and boot to the GRUB2 menu in MBR-mode.

  Grub2 CSM menu

Default menu (GRUB2 MBR-mode menu)

Theme option with USETHEME set in defaults.txt file (Grub2 MBR-mode menu)


From the CSM menu, you can boot via either Clover 32-bit or 64-bit and then select the only option visible to boot to the GRUB2 menu in UEFI-mode.

 UEFI Theme option with USETHEME set in defaults.txt file (Grub2 UEFI-mode menu)
3. If you reboot the system and select UEFI-booting, then the GRUB2 menu will be immediately loaded in UEFI-mode (shown above).
The system supports both 64-bit and 32-bit UEFI booting.
Now you can use the GRUB2 menu system to boot to any of the payload files on the second partition.

Menu Configuration

Simple configuration can be done by editing the defaults.txt file in each grub2 folder (e.g. \_ISO\MAINMENU\grub2\defaults.txt). 
You can set a default entry and timeout for each menu, a console password, beep or play a tune when the menu loads and suppress various menu entries, etc.
Just open the defaults.txt file in Notepad to see how to set each value (they are commented out to start with using #).
You can also add your own custom_menu*.grub2 menu files to any of the grub2 folders and then add your own payload files. You can base your menu on the existing  *.grub2 files that are already present.
For user-added files, only files named custom_menu.grub2, custom1_menu.grub2 - custom5_menu.grub2 will be detected.

Menu entry order

Grub2 enumerates the .grub2 menu files in a pseudo-random order. It is difficult to change the order in which the menu entries are arranged. If the .grub2 file contains multiple menus, you can re-order the menus text entries inside the file (I recommend that you rename the .grub2 file - otherwise if you update to a later version, it will overwrite your edited file!).

Menu Heading

The grub2 menu heading can be changed by editing the GRUBHEAD value in the \menu.lst file (on partition 1) (E2B Beta 0.08+). This changes the grub2 menu heading in the file \boot\grub\locale\ when you boot to the grub4dos CSM menu.

Alternativley, if you use color_normal=gray/black and a wallpaper with the same grey backround colour, you can hide the menu header and footer text because they will be the same colour as the background. This greyE2B.jpg can be used or modified as you wish.
Edit the partition 2 - \_ISO\MAINMENU\grub2\defaults.txt file and add:
background_image (hd0,msdos2)/_ISO/greyE2B.jpg

GRUB2 files and folders explained

Files in the .imgPTN image

The grub2 boot files which cause the system to boot to grub2 are located inside the .imgPTN file in the \boot\grub folder.
Initial booting is done via the \EFI\boot files (if booting via UEFI) or via grub4dos and the \g2ldr boot file to start grub2 in MBR-mode.
\boot\grub\grub.cfg - this is the first menu config file that is loaded and executed by grub2
\boot\grub\main.cfg - this is the next file to be loaded which displays the Main (first) grub2 menu
\boot\grub\antivirus.cfg, backup.cfg, linux.cfg, utilities.cfg - these are the grub2 sub-menus
\boot\grub\themes\grub2_e2b\*.txt - these control the theme, wallpaper and menu headings for each menu (only the heading is different)
\boot\grub\themes\icons - this folder contains the icons that are displayed to the left of each menu entry in the theme. An icon is specified in a menuentry using the 'class' parameter.
\boot\grub\add_grub2_files.cfg - called by .cfg file to enumerate the .grub2 files and add them to the menu (Beta 10+)

Files on the 2nd partition

There are two main types of files on the second partition, payload files and .grub2 menu files (and also defaults.txt files).
Note that the same .grub2 files (or a sub-set) are also duplicated in other .\grub2\ folders. For instance backup_menu.grub2 exists in \_ISO\MAINMENU, \_ISO\MAINMENU\MNU, \_ISO\BACKUP and \_ISO\BACKUP\MNU:
For example,
\_ISO\BACKUP\grub2 folder
So, in this case, only payload files that are referenced by the backup_menu.grub2 file can be detected in the \_ISO\BACKUP folder.
The grub2 menu system will enumerate the .grub2 files in each of the grub2 folders on the second partition and add the contents of each .grub2 file into it's own internal menu.

The .grub2 menu files

The grub2 menu system enumerates the .grub2 menu files in each menu folder.
You can therefore control what payload files are detected by adding or removing the .grub2 files in these grub2 folders:
If you don't want the payload ISO files to also be listed in the E2B menu system, then place the ISOs in the MNU subfolders:
Currently, the MAINMENU contains all .grub2 menu files so that you can place any ISO in the MAINMENU folder (or \_ISO\MAINMENU\MNU folder):
antivirus_menu.grub2 is in   \_ISO\ANTIVIRUS\grub2  \_ISO\ANTIVIRUS\MNU\grub2  \_ISO\MAINMENU\grub2  \_ISO\MAINMENU\MNU\grub2
backup_menu.grub2  is in    \_ISO\BACKUP\grub2      \_ISO\BACKUP\MNU\grub2       \_ISO\MAINMENU\grub2  \_ISO\MAINMENU\MNU\grub2
linux_menu.grub2     is in    \_ISO\LINUX\grub2         \_ISO\LINUX\MNU\grub2          \_ISO\MAINMENU\grub2  \_ISO\MAINMENU\MNU\grub2
security_menu.grub2 is in    \_ISO\UTILITIES\grub2   \_ISO\UTILITIES\MNU\grub2    \_ISO\MAINMENU\grub2  \_ISO\MAINMENU\MNU\grub2
utilities_menu.grub2  is in    \_ISO\UTILITIES\grub2   \_ISO\UTILITIES\MNU\grub2    \_ISO\MAINMENU\grub2  \_ISO\MAINMENU\MNU\grub2
Note that each menu folder must have a .\grub2 sub-folder, e.g. if you place ISO files in \_ISO\LINUX\MNU folder, then there must be *.grub2 menu files in the \_ISO\LINUX\MNU\grub2 folder.
About the xxxx_extracted.grub2 files
Normally, the \_ISO\MAINMENU\grub2 folder contains all the .grub2 menu files, so you can put any ISO in the \_ISO\MAINMENU folder.
However, ISOs which need to be extracted have their own .grub2 menu files which are not already present in the menu folders and are stored in the \_ISO\docs\Sample mnu Files folder: e.g.
  • android_x86_extracted.grub2
  • drweb_extracted.grub2
  • kaspersky_extracted.grub2
  • phoenixos_extracted.grub2
  • remixos_extracted.grub2
  • easyre10_extracted.grub2
Copy the correct .grub2 menu file to the menu folder in which you want it to appear (e.g. \_ISO\MAINMENU).
For instance, after you have extracted the phoenix ISO to the correct folder locations, copy the phoenix_extracted.grub2 file to \_ISO\LINUX\grub2 and the phoenix menu entry will appear in the Linux grub2 menu.
If you copied the phoenix_extracted.grub2 file to \_ISO\UTILITIES\grub2 folder, the phoenix menu entry will appear in the Utilities grub2 menu.
Create a custom_menu.grub2 file in the same grub2 folder and add the following line:
source $isofpath/grub2/phoenix_extracted.grub2

defaults.txt files

Some menu settings and features can be changed using the defaults.txt files.
The \_ISO\MAINMENU\grub\defaults.txt file will affect the Main (first) menu and will set a theme and colours.
(Beta6+) The default grub2 menu system does not use a theme any more (due to slow performance on some systems).
You can enable the themed grub2 menu (as used in previous betas) by setting the USETHEME parameter (see below).
Otherwise, you can set the text colours and set a wallpaper as well as other parameters.
You can also use the defaults.txt files in the sub-menu folders to set defaults and timeouts to (e.g. \_ISO\LINUX\grub2\defaults.txt can be used to set the menu default and timeout for the Linux sub-menu).
\_ISO\MAINMENU\grub\defaults.txt (on 2nd partition)
# ===========================
# Only required in \_ISO\XXX\grub2 folder   (not in \_ISO\XXX\MNU\grub2 folder)
# lines which are configuration settings begin with ### - remove the ### for them to take affect
# default menu entry to highlight (0-n)
###set default=2
# timeout for highlighted menu entry in seconds, -1=off, 0=immediate
###set timeout=-1
# set delay in seconds for showing user what .cfg files are loaded for each menu (0-9), if use 10 or more, then will prompt user to press ENTER key - useful for error messages, etc.
# Note: Affects all menus
###set showdelay=10
# To protect the menus from being edited or getting access to the grub2 console, set superuser names and a password for each one
###set superusers="easy2boot,root"
###password easy2boot easy2boot
###password root easy2boot
# play a tune when menu loads - tempo (beats per minute), then pairs of  FREQ (Hz) DURATION (beats)
###echo beep beep!
###play 888 262 3 247 3
###play 480 440 4 440 4 440 4 349 3 523 1 440 4 349 3 523 1 440 8 659 4 659 4 659 4 698 3 523 1 415 4 349 3 523 1 440 8
###play 2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6
###play 480 220 1 277 1 330 1 440 1 185 1 220 1 277 1 370 1 294 1 370 1 440 1 587 1 330 1 415 1 494 1 659 1
###play 1750 523 1 392 1 523 1 659 1 784 1 1047 1 784 1 415 1 523 1 622 1 831 1 622 1 831 1 1046 1 1244 1 1661 1 1244 1 466 1 587 1 698 1 932 1 1195 1 1397 1 1865 1 1397 1
# Do not show PassMark MemTest86 (UEFI) in Main menu or Utilities menu  (or use 'unset NOPASSMARK' if you want Memtest in the menu)
# Do not show Boot from HD0 [F7] menu (only in MBR mode) in Main menu (only effective if MAINMENU\grub2 folder)
###set NOHDBOOT=true
# Suppress sub-menu entries in Main grub2 menu
###set NOAV=true
###set NOBACKUP=true
###set NOUTILS=true
###set NOLINUX=true
# if USETHEME is NOT set, we can define menu colours as foreground/background - black, blue, green, cyan, red, magenta, brown, light-gray, dark-gray, light-xx (blue,green,cyan,red,magenta), yellow or white.
###set menu_color_normal=light-cyan/black
# black bg is transparent
###set menu_color_highlight=white/black
# color_normal defines heading and help text and console text colour
###set color_normal=yellow/black
# You can also set a background image .png or .jpg - in this example the file in in ptn2 \_ISO folder
###background_image (hd0,msdos2)/_ISO/beach.jpg
# Use the theme (graphical menu with icons)
###set USETHEME=true
Tip: You can test load a background image by pressing c in the grub2 menu to get to the grub2 console and type background_image (hd0,msdos2)/_ISO/myimg.png.
Note: showdelay=10 -  in Secure Boot mode, 'Press a key to continue' is not supported, so a delay is used instead.

How to add your own payload files

Let us assume we want to add a new ISO called 'freddy.iso' to the Utilities menu:
1. Create a custom_menu.grub2 file as described below (or custom1_menu.grub2, custom2_menu.grub2... custom5_menu.grub2) which contains the correct grub2 menu text.
2. Place it in the \_ISO\UTILITIES\grub2 folder (for example)
3. Copy the freddy.iso payload file to the \_ISO\UTILITIES folder
If you have previously added the E2B .mnu files (Step 3 above), then freddy.iso will automatically appear in the Utilities PTN2 menu in E2B.
Note: If you don't want freddy.iso to appear in the E2B Utilities PTN2 menu (perhaps you have a .mnu file for it?), then move both files to the MNU sub-folder, i.e.

For E2B menu support, you will also need to create a .mnu file which calls QRUN.g4b if you want to run the ISO from the E2B menu system.

Making your own .grub2 menu file

Use one of the menu entries in the existing .grub2 files for reference, e.g. 
#$isofpath           e.g. (hd0,msdos2)/_ISO/LINUX - use only in  if [ -e  tests
#$root2              e.g. (hd0,msdos2)  partition containing payload files
#$root               e.g. hd0,msdos1    boot partition with grub2 on it
#$root2uuid          e.g. 1234-2123-33  (uuid of $root2)
#Special variables: MBR EFI MBR32 MBR64 EFI32 EFI64 BIT32 BIT64    FAT (true if filesystem on ptn2 is FAT)
#if $BIT32 ; then echo 32-bit ; fi
#if ! $BIT64 ; then echo not 64-bit ; fi
#if [ $BIT64 = true and $FAT = true ] ; then echo 64-bit MBR on FAT partititon ; fi
#if [ $BIT64 = true and $EFI = true ] ; then echo 64-bit EFI (same as \$EFI64) ; fi
#CHECK_MNU_FOLDER sets these variables on return
#$ip                 e.g. /_ISO/LINUX
#$ifp                e.g. (hd0,msdos2)/_ISO/LINUX
#$isofile            e.g. /_ISO/LINUX/xxxx.iso 
if $EFI; then
if [ -e "$isofpath/new.iso" ]; then
menuentry "New Rescue live CD" --unrestricted --class avira{
   set isoname=new.iso ; CHECK_MNU_FOLDER
    set gfxpayload=keep
    set root=$root2
    loopback loop $isofilename 
    linux (loop)/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=$isofilename quiet splash --
    initrd (loop)/casper/initrd.lz


  • The first line (if $EFI; then) tests the current environment, you can choose from $MBR $EFI $BIT64 $BIT32 $EFI32 $EFI64 $MBR32 $MBR64 or $FAT (they can be 'true' or 'false'). This prevents the menu entry from being displayed if it is known that it does not work. For instance, if it only works when booted on UEFI 64-bit systems, use $EFI64. If the payload works on both 32-bit MBR and 32-bit UEFI systems, use $BIT32. If the payload works only in MBR mode, use $MBR. Use $FAT if it only works in FAT partitions. Each 'if' statement must be balanced with a corresponding 'fi' statement.
  • The 2nd line checks for the existence (-e) of the file. The menu entry will not be shown if this test fails.
  • The menuentry line displays the menu entry text, --unrestricted is the security (password) category and should always be used - see here for more details. The --class parameter defines which menu icon  to use. You can also add a --hotkey entry to this line if you want a hotkey (e.g. --hotkey f5 or --hotkey ctrl+g or --hotkey G).
  • The next line defines the name of the payload file and calls the CHECK_MNU_FOLDER function.
    The CHECK_MNU_FOLDER function sets up the following variables with the correct path:
        $ip - path to the payload file - e.g. /_ISO/MAINMENU/MNU
        $ifp - full path with device name - e.g. (hd0,msdos2)/_ISO.MAINMENU/MNU
        $isofilename - the path+filename - e.g /_ISO/MAINMENU/MNU/new.iso
        Note: Do NOT use  $isofpath inside a menuentry - it may contain the incorrect path!
  • The next lines will depend on your payload file:
  •   set root=$root2    - sets the root to the 2nd partition
  •   loopback loop $isofilename - mounts the payload as a loop device
  •   linux (loop)/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=$isofilename quiet splash --
  •   initrd (loop)/casper/initrd.lz
  •   boot - always end the menu with this command. If you omit it, you may get a 'press a key to continue' message.
You can combine values like this for an AND, OR or NOT operations:
if [ $MBR32 = true -a $EFI32 = true ] ; then
if [ $MBR32 = true -o $EFI32 = true ] ; then
if [ ! $MBR32 = true ] ; then
if [ $MBR32 != true ] ; then

Allowing for annoying distro version changes!

Often a linux distro will change the name of it's boot files for no apparent reason!
For example, Fedora version 25 ISO may use vmlinuz0 and initrd0.img, but the version 26 ISO might use vmlinuz and initrd.img.
If you want to allow for both types, we can check what is in the ISO file like this:
if [ -e "(loop)/isolinux/vmlinuz0" ]; then set vml=vmlinuz0; fi
if [ -e "(loop)/isolinux/vmlinuz" ]; then set vml=vmlinuz; fi
if [ -e "(loop)/isolinux/initrd0.img" ]; then set init=initrd0.img; fi
if [ -e "(loop)/isolinux/initrd.img" ]; then set init=initrd.img; fi
linux (loop)/isolinux/$vml root=live:$id  iso-scan/filename=$isofile rootfstype=auto ro 
initrd (loop)/isolinux/$init

Using loopback.cfg

If the ISO contains a \boot\grub\loopback.cfg file (e.g. Ubuntu ISOs), you can use this 'generic' menu and you will not need to work out the cheat code parameters. You should also get a 'full' menu of choices (live boot, install, etc.). 
NOTE: The path and filename of the ISO file must NOT contain spaces!
if [ -e "$isofpath/ubuntu.iso" ]; then
menuentry "Ubuntu via loopback.cfg" --unrestricted --class ubuntu {
set isoname=ubuntu.iso ; CHECK_MNU_FOLDER
set root=$root2
loopback loop $isofile
set iso_path="$isofile"
export iso_path
set root=(loop)
if [ -e "/boot/grub/loopback.cfg" ]; then 
 echo loopback.cfg exists 
 configfile /boot/grub/loopback.cfg
 loopback --delete loop
 echo ERROR: /boot/grub/loopback.cfg does not exist!
 search --file /g2ldr --set=root
 loopback --delete loop

Testing your .grub2 menu

Always test in a MNU\grub2 folder, e.g. \_ISO\MAINMENU\MNU\grub2 (because this is the 'worst case' test - it may work in the main menu folder but not in a MNU sub-folder).
See the FAQ #2 for tips on debugging your new .grub2 menu.
Many developers will describe a grub2 menu which some people can get to work but others cannot. This is usually due to different test circumstances.
Some payloads or menus may not work if they boot on a 32-bit UEFI system (or vice versa). Some payloads (e.g. Fedora, gentoo and CentOS) do not boot if the ISO is on an NTFS partition. Also a slightly different version of the ISO may give different results!
You will need to test in four modes and using two different partition types - i.e. 8 different test scenarios!
Test each mode using a FAT32 partition 2 (first 4 tests), and then re-test using an NTFS partition 2 (last 4 tests) plus Secure Boot.
  1. FAT32 - MBR32
  2. FAT32 - MBR64
  3. FAT32 - EFI32
  4. FAT32 - EFI64
  5. NTFS   - MBR32
  6. NTFS   - MBR64
  7. NTFS   - EFI32
  8. NTFS   - EFI64

Depending on the results, you can add in the correct test 'if' line (e.g. if $EFI64; then) to the menu text so that the user is not presented with a menu item that will not work.

Changing the theme background or menu layout (USETHEME)

This only applies if your menu is set to use the grub2 theme feature (USETHEME).
Note: on some systems, USETHEME can cause very slow performance of the menu system (grub2 issue). This is why it is disabled by default.
The grub2 theme menu system uses a 'Theme' located inside the .imgPTNLBAa23 partition image at \boot\grub\themes\grub2_e2b\theme*.txt. The background jpeg file is specified in these files as well as other settings which you can change. Note that there are 5 files, one for each menu.
Many grub2 themes are available on the internet. You can specify which theme to load in the \boot\grub\main.cfg file. Then add the 5 theme*.txt files to your new theme folder and edit them as required (only the title is different in each of the five files).

Speeding up the Main grub2 menu

Note that the MAINMENU grub2 folders contain all the .grub2 menu files. This means that you can place a known payload file, such as avg.iso, into the \_ISO\MAINMENU folder and it will be added to the Main GRUB2 menu. However, adding lots of ISOs to the MAINMENU folder and enumerating all the .grub2 files, may cause the Main menu to load slowly.
You can speed it up by removing any of the  .grub2 files that you don't need.
For instance, if you are not going to put any AntiVirus ISOs into the Main menu, then you can delete the \_ISO\MAINMENU\grub2\antivirus_menu.grub2 and \_ISO\MAINMENU\MNU\grub2\antivirus_menu.grub2 files.

Grub2 keyboard support

Grub2 assumes you are using a standard American QWERTY keyboard. You can add support for a different keyboard as follows:
1. Boot to Linux Mint and in a console type:
sudo mkdir ~/layouts
sudo grub-kbdcomp -o ~/layouts/uk.gbk gb
sudo grub-kbdcomp -o ~/layouts/german.gbk de
sudo grub-kbdcomp -o ~/layouts/belgian.gbk be
sudo grub-kbdcomp -o ~/layouts/spanish.gbk es
use localectl list-x11-keymap-layouts to list available layo uts.
2. Copy the whole layouts folder to the /boot/grub folder on the first partition of the E2B drive (after switching in the .imgPTN file).
PTN1: /boot/grub/layouts/*.gbk
The folder must be called layouts. You can download a selection of files here.
3. Edit the \_ISO\MAINMENU\grub2\defaults.txt file and add these lines to the end of the file (e.g. for uk keyboard):
terminal_input at_keyboard
keymap uk
Note: The 'terminal_input at_keyboard' can stop some keyboards from working. In this case comment the lines out with # symbols.


Disable Secure Boot first. After successful debugging, you can re-enable Secure Boot and re-test, if required.
Here are some tips for debugging your menus:
  1. Set a showdelay value in the \_ISO\MAINMENU\grub\defaults.txt file
  2. Add echo commands to output the value of veriables and add read to stop and wait for ENTER to be pressed, e.g.
    (some lines of a grub2 menu or defaults.txt here)
    echo variable fp="${fp} variable fred=${fred}
    (more lines here)
  3. To see more information add these lines to the defaults.txt file (or inside a menuentry section)
    insmod progress
    set enable_progress_indicator=1
    export enable_progress_indicator
  4. Don't change the root variable outside of a 'menuentry' section.
  5. Do not use $filename and $filenamex inside a 'menuentry' section.
  6. Use $ip, $ipf, $isofile, $root, $root2 inside a 'menuentry' section.

Grub2 FAQs

Q1. Why don't you just have one FAT32 partition containing E2B with both the E2B grub4dos and the grub2 menu system?
A1. First, that would limit E2B to 4GB files. Secondly, many UEFI-systems will NOT MBR-BOOT from a FAT drive than contains E2B boot files and EFI boot files - so it will never boot to the E2B menu. By using a 2nd partition for the payload files, the E2B drive should always MBR-boot (when in normal E2B mode). Also, it allows us to use >4GB files and have an NTFS partition.
Q2. I have added\edited a .grub2 file but it is not working properly - how can I find out what is wrong?
A2. Edit the \_ISO\MAINMENU\grub2\defaults.txt file and set the value of the showdelay parameter to 10.
set showdelay=10
Now you can see any errors which may be reported before the menu is displayed.
If there is an error inside the menuentry, then you can debug the file (e.g. \_ISO\MAINMENU\grub\antivirus_menu.grub2) by adding 'echo' and 'sleep' statements - e.g.
echo here is a ; sleep 3
(some code here)
echo here is b ; sleep 3
(some more code here)
When you run the menu entry, you will see where the error message occurs and thus know which line is causing it. The 'sleep 3' statement will make grub2 wait for 3 seconds. 'read' command may not work in Secure Boot mode.
If you find many menu entries are missing, it often indicates a missing 'fi' line (unbalanced 'if' and 'fi' lines) or bad syntax.
Some commands may not produce any error message (e.g. loopback), so follow the loopback command line with ls (loop)/ followed by read (or sleep 3) to see if the loop device is present.
Only custom_menu.grub2, custom1_menu.grub2, custom2_menu.grub2 up to custom5_menu.grub2 are detected by version Beta10.
Check that the USB drive boots to the menus by running RMPrepUSB - select the E2B USB drive and press F11 (untick 'No user prompts' and set memory size to 500MB if the default 900MB prevents QEMU from running). You should see the CSM menu and then the grub2 menu system should load after a small timeout. You may then be able to run a few small ISOs too (e.g. Clonezilla).
Q3. I added fedora-workstation.iso and centos.iso and gentoo.iso to the \_ISO\LINUX folder, but none of them appear in the Linux menu - why?
A3. These particular types of ISO need to be on a FAT32 partition, not an NTFS partition. See the Excel XLS spreadsheet.

Q4. I added a payload file to one of the menu folders, but it does not appear in the menu - why?
A4. First make sure you are using Beta10 or later. Then check the name of your ISO and that it is all lowercase, e.g. if it is an antivirus ISO file, look for a reference to it in the antivirus_menu.grub2 file. When you find the grub2 file it is mentioned in, check that there are no 'if' statements that may prevent the ISO from being listed (for instance, if you have MBR booted but the menu entry will only be enabled on UEFI boots, or if your 2nd partition is an NTFS partition but the ISO only works on FAT32 partitions.

  • Disable Secure Boot if the 2nd partiion is an NTFS partition and you are Secure Booting - Ptn2 should be FAT32 for Secure Boot
  • Version 10 no longer detects all *.grub2 files, you must use custom_menu.grub2, etc. for your .grub2 menu files (see above)
  • Check it is on the second Primary partition and in the correct folder (e.g. \_ISO\MAINMENU)
  • Check the file name and case is correct - e.g. avg.iso not Avg.iso or AVG.iso or avg.ISO
  • Check it works under your environment - e.g. a 64-bit ISO may not be listed on a 32-bit system or it may not be listed on a UEFI system if it is known not to work under UEFI.
  • Check that it works on the type of partition (FAT32 or NTFS) that it is on (see FAQ Q3 above).
  • Check for syntax errors in the .grub2 menu (see Q2).
Q5. I added an ISO and renamed it as in the Excel spreadsheet and it appears in the menu, but when I run it, linux complains that it cannot find the file - why?
A5. Check the case of the filename of the ISO file. Most filenames and extension should be all lowercase (e.g. use avg.iso, not Avg.iso or AVG.ISO or avg.ISO, etc.). Do not use spaces in the name.
Q6. BitDefender is not listed in the menu, or it gives an "invalid loop location: /rescue/livecd.squashfs" error.
A6. It only works if the ISO is on a FAT32 volume. BitDefender won't boot from NTFS (using grub2).
There was a bug in Beta3 .grub2 menu file so it is listed in menu when it shouldn't be if on an NTFS volume!
Q7. Kali-light32 (or kali-light.iso) is not listed in the menu.
A7. There is a bug in Beta3. If the CPU is 64-bit, then name it kali-light.iso, if the CPU is a 32-bit CPU, name it kali-light32.iso. In Beta4, 32-bit kali can be named kali32.iso or kali-light32.iso and runs on both 32-bit and 64-bit CPUs.
Q8. Only the MemTest86 is listed in the grub2 menu - no .iso files are listed - why?
A8. Check that you do not have any other FAT32 USB drive connected (if using a Zalman\IODD, do not load the WinHelper RMD file or any other disk file).
Secure Boot must be disabled in the BIOS\Firmware menu if the 2nd partition is NTFS (use Beta10+).
Q9. Some systems Boot Selection menus do not list a UEFI-boot entry so I cannot UEFI-boot it, but other systems do and it boots OK - why?
If you are sure that you have enabled the UEFI-boot options correctly in the BIOS (e.g. non-Microsoft UEFI OS, etc.), then check the partitions on your E2B USB drive using RMPrepUSB - Drive Info - 0  to examine the partition table. There should be a FAT32 partition and an NTFS partition followed by two empty partition entries. If you have an entry at #3 position (e.g. Type 0x83 ID), this may stop some BIOSes from listing the USB drive as UEFI-bootable. If the #3 partition is not wanted, delete it using a partition editor. Secure Boot should be disabled in the BIOS\Firmware menu if the 2nd partition is NTFS (use Beta10+). Fast Boot should be disabled in the BIOS.

How it works

The grub2 menu system works by enumerating the .grub2 menu files which are present on the second partition (only specific 'grub2' folders are searched - see below).
These .grub2 files are just grub2 '.cfg style' menu files, which contain grub2 menus. They are the equivalent of the grub4dos .mnu files that are used by grub4dos in the E2B menu system.
For instance, if you place 'avg.iso' in the folder \_ISO\ANTIVIRUS\MNU on the second partition, there must be a grub2 menu for it in the \_ISO\ANTIVIRUS\MNU\grub2 folder. In this case, you will find that the antivirus_menu.grub2 file, contains a menu entry for the avg.iso file.
Note that some payload files need to be extracted to the \ISO_Extract folder (or other folder).
Not all payloads may be listed in the grub2 menu on every system. For instance, if the payload file does not work on 32-bit systems, the menu entry for it will only appear on 64-bit systems. If the payload does not boot in MBR mode, then the menu entry will only be listed when booting in UEFI-mode.

Q10. I made a copy of your .grub2 menu for my own linux ISO as custom_menu.grub2, but I get a 'no medium found'\'squashfs' error - why? - Check that there are no spaces in the path or filename of your ISO.

Q11. Why is Eset not supported? - It is now! See blog post here.

Q12. How can I boot to Windows from the grub2 menu? - I would suggest that you use VHDs to hold each Windows OS and copy each VHD file to the 2nd partition. Then place your \bootmgr file, \boot folder (with BCD) and \EFI\Microsoft\boot folders on partition 1 (Primary active). You will need to modify the \boot\BCD and \EFI\Microsoft\boot\BCD files to add boot entries to point to each VHD file (e.g. using BootIce). Then add a .grub2 menu file so that the menu entry to boot to \bootmgr and \EFI\Microsoft\boot\bootmgfw.EFI will be added into grub2 menu system. See he re for more information. I have not yet tried this myself though...

Q13. How can I install multiple Windows 7/8/10 from the grub2 menu? - See here.

Q14. How can I MBR-boot from a range of different WinPE-based ISOs? - Use the winpe_menu.grub2 menu file which you can find in the Alternate Downloads areas in the grub2 folder. The ISO must contain a \sources\boot.wim file. Instructions are inside the .grub2 file. Rename it as customn_menu.grub2 and edit it as required. You will need to download and add wimboot and also add bootmgr and bootmgr.exe to the \wimboot folder on partition 2. Note that All-In-One WinPE ISOs may fail to load the ISO as drive Y: after it boots and so may not be fully functional!

Q15. I pressed the ESC key and now I am in the grub console - how can I return back to the grub2 menu? Type exit or normal and press ENTER. To prevent this from happening again, set a supervisor user and password in the /_ISO/MAINMENU/grub2/defaults.txt file (see above).

Q15. The keyboard stops working when the grub menu loads - why? See the keyboard layouts heading above.


Grub2 10W Menu system (Windows ISO support)

This special version of the .imgPTN file is not signed and so will only UEFI-boot in non-Secure mode, however it will directly boot from Microsoft Windows Install ISOs in both MBR and non-Secure UEFI mode.

A new Windows sub-menu is now added to the Main grub2 menu in version 10W.


1. Prepare the second partition as described above - ensure it contains a \_ISO folder structure (e.g. it should also have grub2 folders for example \_ISO\MAINMENU\grub2).

2. Add a \_ISO\WINDOWS\WIN10 folder to the 2nd partition (WIN8, WINAIO, SVR2019, SVR2016 and SVR2012 folders can also be added).

3. Copy your ISOs to the correct folder e.g. Ptn2:\_ISO\WINDOWS\WIN10 (or just put them all in the WIN10 folder if you like)

4. Download UEFI_GRUB2_PTN2_Beta10W_Beta.imgPTN23AUTO from the Alternate Download Areas and place it in your \ISO\MAINMENU folder and select it using the E2B menu system or SWITCH_E2B.exe.

5. Use the W hotkey to obtain a Windows Install menu (all ISOs will be listed in the one menu)


  • The system will require at least 2GB of RAM
  • You can add a \_ISO\WINDOWS\custom_menu.grub2 if you want to add your own menu entries into the Windows Install menu. Variables ip=/_ISO/WINDOWS ifp=(hd0,msdos2)/_ISO/WINDOWS isofpath=ifp=(hd0,msdos2)/_ISO/WINDOWS will be set at the time that the custom_menu.grub2 is called.
  • You can add a \_ISO\WINDOWS\defaults.txt file.
  • Set the variable NOWINDOWS_INST=true in the \_ISO\MAINMENU\grub2\defaults.txt file if you don't want the Windows menu entry listed in the main menu.
  • If testing MBR booting under VirtualBox it may hang - please test on a real system  (UEFI does not hang).
  • Some WinPE ISOs can be booted by adding a .grub2 menu to the \_ISO\MAINMENU\grub2 folder but it is tricky. Also the .wim file may not be compatible with wimboot ('unknown compression' error) and so will fail to load. Genuine Microsoft boot.wim files should work OK.
  • pause (or --pause) can be added on the wimboot line to aid debugging of wimboot (see menus).
  • For more details see Tutorial 145.


Sample WinPE menus

See Alternate Download Area - grub2 folder.
e.g. copy custom4_menu.grub2, windows_install.grub2 and windows_pe.grub2 to Partition 2:\_ISO\MAINMENU\grub2
Then edit them and add your ISOs to Ptn2:\_ISO\MAINMENU\WINDOWS folder.
A UEFI64 boot menu is included in windows_pe.grub2 for Strelec ISOs.

Recommended for Easy2Boot (fastest flash drive!)
SanDisk Extreme SDCZ880-128G-G46

Fastest USB 3!
See Blog post