Először megmondod a Grub2-nek, hogy hol az iso hogy éri el a tartalmát (loopback), ezután már meg lehet adni a kernel (linux) és az initial ramdisk (initrd) elérését (loop).
Ezután a kernelnek kell átadni azt a paramétert, ami alapján betöltődés után majd az is tudja, illetve tovább tudja adni az init folyamatnak, hogy hol az iso amit el kell érnie (de akár bedrotozható az initrd-be is). Ez viszont általában kernel/disztribució függő (isoloop, fromiso, iso-scan stb).
Slackware példámm nincs. Slackware alapú Puppy linux bootról van infó az alábbi linken.
http://puppylinux.info/topic/unusual-way-to-boot-slacko-using-iso-boot-…
3 bejegyzés egy "UFD32" cimkéjű USB boot diszk grub.cfg fájljából.
menuentry "SystemRescueCD ISO" {
loopback loop (hd0,1)/boot/systemrescuecd-x86-4.5.2.iso
linux (loop)/isolinux/rescue32 isoloop=/boot/systemrescuecd-x86-4.5.2.iso docache setkmap=hu
initrd (loop)/isolinux/initram.igz
}
menuentry "Ubuntu server ISO" {
set isofile="/boot/ubuntu-14.04-server-amd64.iso"
loopback loop (hd0,1)$isofile
linux (loop)/install/vmlinuz iso-scan/filename=$isofile file=/cdrom/preseed/ubuntu-server.seed
initrd (loop)/install/initrd.gz
}
menuentry "DebianDog ISO" {
insmod search_label
set bootlabel="UFD32"
search --no-floppy --set=root --label $bootlabel
set isofile="/boot/DebianDog-Jessie-openbox_xfce-2015-09-02.iso"
loopback loop $isofile
linux (loop)/live/vmlinuz1 fromiso=/dev/disk/by-label/$bootlabel/$isofile boot=live config noeject --
initrd (loop)/live/initrd.img
}