USB Mulit Boot by GRUB2
grub.cfg:
set timeout=1 set default=0 menuentry "ArchLinux-2012.01-1-archboot.iso" { set isofile="/boot/iso/archlinux-2012.01-1-archboot.iso" loopback loop $isofile linux (loop)/boot/vm64 ro initrd (loop)/boot/initrd64.img }
# see GRUB2 - ArchWiki [via] menuentry "ArchLinux-2011.08.19-core-x86_64.iso" { set isofile="/boot/iso/archlinux-2011.08.19-core-x86_64.iso" set dev_label="MULTIBOOT" loopback loop $isofile linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201108 img_dev=/dev/disk/by-label/$dev_label img_loop=$isofile earlymodules=loop initrd (loop)/arch/boot/x86_64/archiso.img } menuentry "Ubuntu-12.04-beta2-desktop-amd64.iso" { set isofile="/boot/iso/ubuntu-12.04-beta2-desktop-amd64.iso" loopback loop $isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash noeject noprompt -- initrd (loop)/casper/initrd.lz }
menuentry "ubuntu-13.04-desktop-amd64.iso" {
set isofile="/boot/iso/ubuntu-13.04-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet splash noeject noprompt --
initrd (loop)/casper/initrd.lz
}
# SliTaz-4.0 later need to do [this].
menuentry "SliTaz-4.0-rc3-grub.iso" { set isofile="/boot/iso/slitaz-4.0-rc3-grub.iso" loopback loop $isofile linux (loop)/boot/bzImage rw root=/dev/null gfxpayload=vga=normal autologin lang=en kmap=us initrd (loop)/boot/rootfs.gz } menuentry "TinyCore_4.1.iso" { set isofile="/boot/iso/tinycore_4.1.iso" loopback loop $isofile linux (loop)/boot/vmlinuz quiet initrd (loop)/boot/tinycore.gz }
# TinyCore v4.4rc3 later
# Change red text to your value
# see [via]
menuentry "TinyCore-current.iso" {
set isofile="/boot/iso/tinycore-current.iso"
loopback loop $isofile
linux (loop)/boot/vmlinuz quiet cde iso=/mnt/sd[x]X$isofile
initrd (loop)/boot/core.gz
} menuentry "SystemRescueCd-x86-2.5.1.iso" { set isofile="/boot/iso/systemrescuecd-x86-2.5.1.iso" loopback loop $isofile linux (loop)/isolinux/rescuecd isoloop=$isofile setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "WinPE-2009.iso" { set g4d_dir="/boot/grub4dos" set cfgfile="find --set-root /boot/iso/winpe-2009.iso;map --mem /boot/iso/winpe-2009.iso (0xff);map --hook;chainloader (0xff);boot" linux $g4d_dir/grub.exe --config-file=$cfgfile } menuentry "GRUB4DOS" { set g4d_dir="/boot/grub4dos" linux $g4d_dir/grub.exe --config-file=$g4d_dir/menu.lst }
P.S.
2013-07-29: update some entry for new.
set timeout=10 set default=0 menuentry "SystemRescueCd-x86-3.7.1.iso" { set isofile="/boot/iso/systemrescuecd-x86-3.7.1.iso" if cpuid; then set cputype="64"; else set cputype="32"; fi loopback loop $isofile linux (loop)/isolinux/rescue$cputype isoloop=$isofile setkmap=us initrd (loop)/isolinux/initram.igz } menuentry "WinPE-2009.iso" { set g4d_dir="/boot/grub4dos" set cfgfile="find --set-root /boot/iso/winpe-2009.iso;map --mem /boot/iso/winpe-2009.iso (0xff);map --hook;chainloader (0xff);boot" linux $g4d_dir/grub.exe --config-file=$cfgfile } menuentry "wowpc.iso" { set g4d_dir="/boot/grub4dos" set cfgfile="find --set-root /boot/iso/wowpc.iso;map --mem /boot/iso/wowpc.iso (0xff);map --hook;chainloader (0xff);boot" linux $g4d_dir/grub.exe --config-file=$cfgfile } menuentry "Archlinux-2012.09.07-dual.iso" { set isofile="/boot/iso/archlinux-2012.09.07-dual.iso" set dev_label="MULTIBOOT" if cpuid; then set cputype="x86_64"; else set cputype="i686"; fi loopback loop $isofile linux (loop)/arch/boot/$cputype/vmlinuz archisolabel=ARCH_201209 img_dev=/dev/disk/by-label/$dev_label img_loop=$isofile initrd (loop)/arch/boot/$cputype/archiso.img } menuentry "SliTaz-4.0-grub.iso" { set isofile="/boot/iso/slitaz-4.0-grub.iso" loopback loop $isofile linux (loop)/boot/bzImage rw root=/dev/null gfxpayload=vga=normal autologin lang=en kmap=us initrd (loop)/boot/rootfs.gz } menuentry "TinyCore-current.iso" { set isofile="/boot/iso/tinycore-current.iso" loopback loop $isofile linux (loop)/boot/vmlinuz quiet cde iso=/mnt/sdb1$isofile initrd (loop)/boot/core.gz } menuentry "XiaoPan-0.4.6.1.iso" { set isofile="/boot/iso/xiaopan-0.4.6.1.iso" loopback loop $isofile linux (loop)/boot/vmlinuz loglevel=3 cde waitusb=3 iso=/mnt/sdb1$isofile mydata=xiaopan restore=sdb1/boot/iso tz=CST-8 showapps lang=en_US.utf8 initrd (loop)/boot/core.gz } menuentry "GRUB4DOS" { set g4d_dir="/boot/grub4dos" linux $g4d_dir/grub.exe --config-file=$g4d_dir/menu.lst }