Speeding up E2B

E2B enumerates the files and folders on the E2B USB drive every time you boot from it - this can take time, especially on slow USB drives or with slow BIOSes.
1. If you press the ! key (SHIFT+1) during file enumeration of the MAINMENU folder, E2B will pause and show you how long each stage took. You can then see what stage is taking a long time.

2. If you hold down the SHIFT key as E2B boots, it will load a fast USB 2.0 driver.
Always use a fast USB 3.0 drive even if you only have USB 2.0 ports. Cheap 'no-name' USB 2.0 flash drives will always keep you waiting - get a fast USB 3.0 drive - you're worth it!

99% of the time, slow performance is caused by slow file access times from the USB drive. However, this is usually because of a slow USB drive and/or a poorly-written USB driver within the BIOS. There is a 'Measure BIOS USB Performance' menu entry in the Utilities Menu which will allow you to compare the BIOS USB driver performance of different systems - you may be surprised by the results if you compare different system BIOSes!

Sometimes, selecting the 'Install fast Grub4dos USB 2.0 drive' option in the Utilities Menu can dramatically increase performance by replacing the BIOS USB driver with grub4dos's own, much-faster, USB driver (USB 2.0 only - limited USB controller support). You can configure the MyE2B.cfg file to always load this driver by default (but it may cause problems on some systems). You can also hold down the SHIFT key just as E2B boots to install the grub4dos USB 2.0 driver.

Reduce the number of files in the MAINMENU folder

When E2B boots, it enumerates all the files in the \_ISO\MAINMENU folder and any files in sub-folders under that. The more files there are, the longer it will take to get to the Main Menu. You can move files to the other menu folders to improve the initial boot time. If you want a lot of files under the MAINMENU folder, then consider using FASTLOAD (see below).

Use a FAT32 E2B drive

If you have a very slow USB drive or very slow BIOS, consider formatting the E2B USB drive as FAT32 rather than NTFS. All payload files will need to be smaller than 4GB, but it will speed up booting and file enumeration because grub4dos is x2 faster on FAT32 USB drives. FAT32 has some limitations however if using >4GB files and Switch_E2B.exe only works fully on NTFS drives.

Enable FASTLOAD (Main menu is cached after the first boot)

WARNING: FASTLOAD does not work correctly using \QEMU_MENU_TEST (run as admin).cmd !!!!
                   Use RMPrepUSB - F11 or VirtualBox+VMUB or a real system - see here.
If you find that the Main menu takes too long to enumerate all your files and create a new menu on every boot, copy the file \_ISO\docs\FASTLOAD\FASTLOAD.YES to the root folder on the USB drive:
If you have lots of files in the \_ISO\MAINMENU folder, this will cause the Main menu to be cached for a much quicker boot the next time you reboot.
FASTLOAD: REMEMBER to use F8 if you add an ISO file!
When Easy2Boot is in FASTLOAD mode, and if you then change the contents of the USB drive, you will need to use the Rebuild Main Menu (F8) menu entry in the Main menu to update the cached copy of the Main menu so that the Main menu will be updated with the new contents. See my blog for more details here.

How FASTLOAD works

The main menu is normally constructed using system memory when E2B enumerates (detects) all the files under the \_ISO\MAINMENU folder - this can take some time if you have lots of files and a slow BIOS os USB drive. If FASTLOAD is enabled, the newly built menu is copied (cached) to the FASTLOAD.MNU file. On the next boot, if \FASTLOAD.YES is present, the FASTLOAD.MNU file will be loaded as the main menu, instead of Easy2Boot having to re-enumerate all the payload files again.
Information you don't need to know: If \FASTLOAD.YES contains the word REFRESH then Easy2Boot will build a new menu in memory and write it to the FASTLOAD.MNU file and then remove the word REFRESH from the FASTLOAD.YES file so that on the next boot, Easy2Boot will use the contents of the file FASTLOAD.MNU file as the Main menu. When you choose the REFRESH (F8) menu option, it writes the word REFRESH to the \FASTLOAD.YES file and re-runs menu.lst to restart Easy2Boot and generate a new Main menu.
The 'Enable\disable FASTLOAD' menu entry can be suppressed using 'set NOFLDMNU=1' in your \_ISO\MyE2B.cfg file
The 'CACHED MENU (FASTLOAD)' status line in the Main Menu can be suppressed using 'set NOFLDST=1' in your \_ISO\MyE2B.cfg file (E2B v1.A0+)
Tip: If you look at the cached file \_ISO\e2b\grub\FASTLOAD.MNU, after enabling FASTLOAD, you can see how E2B constructs the Main menu.

Use text-mode (no graphics)

To use a text-mode menu that uses the BIOS font, use set GFX=NONE in your MyE2B.cfg file. 

See the TextMinimal example in the \_ISO\docs\Templates folder for an example.

Note that extra fonts and non-English languages are not supported in text mode.


Use a compressed background bitmap

Loading a large bmp or jpg file can take time.
You can specify your own wallpaper .bmp file using the \_ISO\MyE2B.cfg file. 
You can use the LZMA tool (\_ISO\docs\E2B Utilities\LZMA) to compress the bitmap file so that it loads faster.
Tip: Use only a few colours in your bitmap so it will compress well.
The smaller the file, the quicker it will load.

E2B v1.72+ versions can also use .jpg files as a background file - these often tend to be smaller than .bmp.gz files.
It is not worth compressing .jpg files because they are already compressed.
Note: the older grub4dos version 0.4.5c does not support jpg files.
You can also define a single colour for the background instead of using a picture file by using, for example: set MYWBMP=0xff0033

Don't load a font file on start-up

If you do not need to use non-ASCII special characters, e.g. Ü, in your filenames or .mnu and .txt files, then there is no need to load the large unifont.hex.gz 1MB font file on startup. 
To suppress this, edit your \_ISO\MyE2B.cfg file and add a NOUNIFONT=1 setting:

The system's BIOS font will be used.

Other tweaks

The following tweaks will have less affect than not using a fontfile and using a small or no graphics wallpaper...

Suppress searching for a 'Helper' USB Flash drive (E2B Removable drives only)

E2B searches for a USB 'Helper' Flash drive on startup and when the Windows menu is loaded. If your E2B USB drive is a Removable USB Flash drive (as listed by RMPrepUSB) then you can suppress this search as a Helper USB drive is not needed. In your \_ISO\MyE2B.cfg file add:

set NOHELPER=1  ;; #Only use if E2B USB drive is a Removable drive

Suppress E2B text messages on boot

E2B enumerates files and displays progress information as it starts up. Displaying text messages and scrolling of the screen can delay things by a second or two on some slow systems. To disable these messages, add the following to your  \_ISO\MYE2B.cfg file:
set redir=> nul
If you also want to suppress the initial E2B startup messages (not recommended because it hides important warning and error messages too!), use:
set redirp=> nul

Note there is one space between the > and the nul.

Later versions of E2B will accept any value for redir or redirp (e.g. set redir=1 or set redir=fred).

Delete the xml files from the root (E2B hard drives only)

E2B wipes two large (100K) .xml files every time it boots by filling them with spaces - this takes time.

If your USB drive is a USB HDD (i.e. it is not a 'Removable' Flash drive), then you can delete the \AutoUnattend.xml and \Unattend.xml files from the E2B USB HDD because they will not be used - this will save some time on every boot. 

These .xml files are only used if booting Windows ISOs from a Removable type of Flash drive. 

If you are not going to use the Install XP via WinPE feature, or install Vista/7/8/SVR2012 from Windows Install ISOs or use .isoPE or .isoPE01 files  (e.g. you only want to boot linux ISOs using E2B) then you can delete these two .xml files even if your Easy2Boot USB drive is a USB Removable Flash drive. If however, your E2B USB drive is a Removable flash drive and you want 'Windows payloads' to work, then leave them alone!

Organise your payload files

Keep the number of files in \_ISO\MAINMENU and any sub-folders below it, to a minimum - place any other payload files in sub-menu folders, such as \_ISO\UTILITIES or \_ISO\AUTO. Remove any payload files or other files that you don't need or use. These steps will cause each menu to be displayed faster.

Delete any of the files in the \_ISO\MAINMENU folder or below that you don't need. This includes files with no extension, readme.txt files, etc. The fewer files you have, the faster E2B will enumerate the files.

Remove any unwanted .key or .xml files that are in the \_ISO\WINDOWS\xxx folders. The E2B dummy 'help' files  (e.g. files such as 'NOT FOR WINDOWS INSTALLER ISOs' and ''The sub-folders are for Windows Install ISO and IMGPTN files only', ReadMe.txt, etc.) can be deleted. Files in the \_ISO\docs folder are not accessed by E2B and so will not affect performance. Keep the number of files in the \_ISO folder to a minimum (don't use it for non-essential files)

Compress files

It may make a small difference if you compress some of the larger files (use 7zip .gzip compression or better yet, lzma by using \_ISO\docs\E2B Utilities\LZMA\LZMA_Encode.cmd). Try compressing the menu.lst, E2B.cfg and all .g4b files in the \_ISO\e2b\grub folder. Don't compress payload files! Keep the filename of the compressed file the same (with the same file extension). This also can help to make the E2B drive more secure. In practice, the speed benefit will be very slight though and only worth doing on large files or if you want to 'hide' the plain text inside the file from prying eyes.

If you use a large \_ISO\MyE2B.cfg file, delete all comment lines (starting with # or ###) as they are ignored by E2B anyway (the benefit will be small though!).


Counting Windows ISO Files

if you don't have any Windows install ISO files, rename the \_ISO\WINDOWS folder (or delete it).
Enabling FASTLOAD will cause the previous count to be used instead of counting the ISO files on each boot.
If you do not want to enable FASTLOAD, then you can speed up the Windows folder enumeration by presetting (hard coding) the number of Windows ISOs that you have in the \_ISO\WINDOWS folders.
The following procedure is NOT RECOMMENDED! as it will alter an Easy2Boot file and a later E2B update will overwrite the CountFiles.g4b  file.
Edit the \_ISO\E2B\grub\CountFiles.g4b file as below (choose numbers to fit the number of files you have in each folder):
set CXP=3
set CV=0
set C7=5
set C28=1
set CT8=9
set C12=0
set C10=1
set CALL=19
If you set a value to 0 then the menu item will not be listed - e.g. if CXP=0 then the Install Windows XP menu will not appear.
The value that you set will appear next to each menu item e.g. (19 present). CALL must be greater than 0 or the main Install Windows menu will not be listed.