参考文章

https://wiki.archlinux.org/index.php/Grub2#Booting_an_ISO_directly_from_GRUB

Booting anISOdirectly from GRUB


http://ihacklog.com/post/boot-acronis-true-p_w_picpath-2013-rescue-media-via-grub2-on-archlinux.html

Grub2 引导 Acronis True Image 2013 Rescue media


menuentry"archlinux-2013.01.04-dual.iso x86"{
setisofile="/iso/archlinux-2013.01.04-dual.iso"
loopback loop(hd0,2)$isofile
linux(loop)/arch/boot/i686/vmlinuzarchisolabel=ARCH_201301img_dev=/dev/sda2img_loop=$isofile
initrd(loop)/arch/boot/i686/archiso.img
}


menuentry"archlinux-改进自动搜索功能x86_64"{

set iso_file=archlinux-2013.04.15-dual_zfs.iso
set arch_label=ARCH_201304
set img_file=$iso_file
search --file --no-floppy --set=img_root /$img_file #搜索指定文件
#search --label --no-floppy --set=img_root $img_label #固定label方式

probe $img_root -l --set=img_label #探测label ,目标label 不能有中文等无法识别的字符
#probe $img_root -u --set=img_root_uuid #探测uuid 但测试发现因为大小写问题导致linux的by-uuid值不匹配
loopback loop0 ($img_root)/$img_file
set root=(loop0)
linux /arch/boot/x86_64/vmlinuz img_dev=/dev/disk/by-label/$img_labelimg_loop=$iso_file archisolabel=
$arch_label ramdisk_size=75%
initrd /arch/boot/x86_64/archiso.img
}