Speeding up E2B
E2B enumerates the files and folders under the \_ISO\MAINMENU and \_ISO\WINDOWS 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 (press F8 in the Main menu and then quickly press SHIFT+1), E2B will pause and show you how long each stage took. You can then see which stages are taking a long time.
2. If you hold down the SHIFT key just as E2B starts to boot, it will load a fast USB 2.0 driver. This can often drastically improve the load speed.
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).
Recommended: Hold down the SHIFT key just as E2B starts to boot to install the grub4dos USB 2.0 driver.
Here are some ways to speed up the E2B menu system...
1. 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...
2. FASTLOAD (the Main menu is cached after the first boot)
IMPORTANT: Remember to press F8 after you add a new 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
How it works:
- 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, E2B 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+)
- See \_ISO\docs\Sample mnu Files\E2B Menu\Fastload.mnu for instructions on how to change the order or appearance of the FASTLOAD menu entry.
WARNING: FASTLOAD does not work correctly using \QEMU_MENU_TEST (run as admin).cmd !!!!
Use RMPrepUSB - F11, or VirtualBox+VMUB, or use a real system - see here.
3. Use text-mode (no graphics, wallpaper or fonts loaded)
To use a text-mode menu that uses the BIOS font, use set GFX=NONE in your MyE2B.cfg file.
Copy the TextMinimal MyE2B.cfg file from the \_ISO\docs\Templates folder to the \_ISO folder.
Note that fonts and non-English languages are not supported in text mode.
The E2B_Editor does not work correctly if you edit a text-mode .cfg file.
4. Use a FAT32 E2B drive
5. Use a compressed background .bmp file or a small .jpg file
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.
Use graphics mode but don't load any wallpaper
5. Don't load a font file on start-up if using a graphics mode
Only the BIOS font of the PC will be used.
Fonts are not loaded if a text mode configuration file is used.
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
This setting is usually added into the MyE2B.cfg file for you when the E2B USB drive is made using Make_E2B.exe.
Delete surplus xml files
You can delete surplus .xml files and .key from the \_ISO\WINDOWS\xxxx sub-folders.
Do NOT delete the \AutoUnattend.xml and \Unattend.xml files in the root of the E2B USB drive (you can set the Hidden attribute on these two files if you wish to hide them in Explorer).
Organise your payload 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 and this is only worth doing on large files or if you want to 'hide' the plain text 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 very small though!).
Fix the Windows ISO File count (not recommended)
!BATset CXP=10set CV=0set C7=0set C8=0set C28=0set C12=0set C10=9set C16=0set C19=0set CIO=0set CALL=19