Tuesday, 10 June 2014

Easy2Boot 1.42 - now no need to defrag ISO files (sort of)

As I am sure you know, Easy2Boot uses a grub4dos feature which can map an ISO to a partition table so that when linux boots, it sees the partition table as a valid filesystem and thus linux can mount the 'ISO file' and be able to access the files inside it.

This feature uses the partnew command in grub4dos and the partnew command can only map a file as a partition if the file is contiguous (and exists on the same physical drive).

I have added a new feature to E2B v1.42 which will check to see if the ISO file is contiguous and if not, it will copy the contents of the whole ISO file using dd into a pre-existing CONTIG.ISO dummy file which is already contiguous (maximum size 3.999GB).

Note: v1.52+ now has a 500MB CONTIG.ISO file in the download.


To use the new feature, just download and update your existing E2B USB drive with the Easy2Boot_v1.42.zip file contents (available in the Google Drive Alternate Download area here).

The pre-existing file must now be created by you. It must be called \_ISO\CONTIG.ISO and needs to be as big as your largest ISO file (it must NOT exceed 3.99GB due to an issue with grub4dos). To make it, just copy your largest ISO file to the E2B USB \_ISO folder and rename it CONTIG.ISO. Alternatively, you can use the RMPrepUSB - Create Ext2 FS button to make a large empty file and then move and rename that file (it doesn't matter what the contents are inside the file). Once it is made, you must make sure it is contiguous (e.g. by using RMPrepUSB - Ctrl+F2 or DeFraggler, etc.).

Once you have made the CONTIG.ISO file contiguous, you can add your ISO payload files and you won't need to defragment them each time (though it will be much faster if you do!).

This new feature does NOT work for .imgPTN files or Windows Install ISOs and won't work for any .mnu files which use partnew such as linux+persistence menu files.

For ISO files, here are some timings for E2B to copy an entire ISO file to the CONTIG.ISO file using dd - I was using a Pretec USB 3.0 Removable-type Flash drive (write speed approx 17MB/s):

1. EeePC - USB 2.0 port - 25 seconds for 100MB ISO (104 seconds for 390MB ISO)
2. EeePC - USB 2.0 port - using the grub4dos 0.4.6a USB 2.0 driver - 6 seconds for 100MB ISO (23 seconds for 390MB ISO)

As you can see, if you use the grub4dos 46a driver, the time is largely dependent upon the write speed of the USB drive (or approx. 30MB/s for USB 2.0 if the media write speed is faster than 30MB/s).

Therefore, if you have a large ISO which is fragmented, it is probably quicker to first select grub4dos 0.4.6a from the main E2B menu and then select the grub4dos USB 2.0 Driver menu option to load the grub4dos driver first as it seems MUCH faster than the (Asus EeePC) BIOS USB 2.0 driver.

Larger files will obviously take several minutes to copy even if using the grub4dos USB driver. However, at least you can boot a fragmented file if you forgot to make it contiguous first! A USB 3.0 HDD will be faster, a USB 2.0 cheap flash drive will be slower.

If CONTIG.ISO is not present, then it will just behave as before (and warn you that the ISO is not contiguous).

As this change is very new (and I may have broken something - though I have tested it), I have not updated the links on the Easy2Boot download page yet. Please let me know if it works for you (or not)!
Note: a 500Mb CONTIG>ISO is now included in the E2B download zip file as standard!

Tip: To boot to grub4dos 0.4.6a automatically, copy the file from \_ISO\e2b\grub\grldr_046 to the root of the E2B drive and rename it to grldr to replace the 0.4.5c version of grldr - AND/OR - add a \_ISO\MyE2B.cfg file by copying the Sample_MyE2B.cfg file and uncomment the line 'set GRUB_USB=Y' to automatically load the 0.4.6a USB driver when E2B loads.

Please tick 'funny' 'interesting' or 'cool' or add a comment to let me know which posts you most enjoy.