Here is how to boot directly from a CentOS 7 or Fedora 20 ISO file using grub4dos.
The USB drive must be formatted as FAT32 or ext2/3/4 - NOT NTFS.
Use a November 2014 or later version of grub4dos.
The full path and filename of the ISO file must not contain spaces.
It is possible to boot CentOS directly from an ISO file using grub4dos, but you must specify the CD Volume Label correctly and the full path of the ISO file.
You must pay particular attention to any spaces that are in the ISO volume label (if possible, remove any spaces to make life easier!).
NO SPACES! - DO NOT USE A PATH OR ISO FILENAME THAT HAS SPACES IN IT (using \\x20 in the iso-scan/filename= parameter does not seem to work, or anything else I have tried such as %x20!)
CD volume lablels, Paths and Filenames are case sensitive.
If you use a CD/DVD ISO editing tool such as UltraISO, it will display the volume label of the ISO.
If the ISO volume label is A B (note the space in the label) then:
# spaces must be replaced by \\x20 in a volume label
Example menu (only works for CentOS 7 not CentOS 6)
You can use the same technique for Fedora too (you can add parameters such as quiet or splash or nosplash or vga=ask as required
Symptoms and causes:
Loading progress bar or splash screen appears but activity LED on USB drive is not flashing
The iso-scan/filename was correct, but the CDLABEL was specified incorrectly. (press ESC to see messages)
Warning: /dev/disk/by-label/Fedora-Live-Desktop-x86_64-20-1 does not exist
Warning: /dev/mapper/live-rw does not exist
The iso-scan/filename was not correctly specified and so it was not mounted as a filesystem by linux.
dracut: FATAL: For argument 'ip=frommedia'\nSorry unknown value 'frommedia'
Check E2B USB drive is not NTFS!
dracut-initqueue: mount: unknown filesystem type 'ntfs'
There will be one line for every NTFS volume found (make sure the E2B drive is not formatted as NTFS)