grub: Loopback booting
5.2 Loopback booting
====================
GRUB is able to read from an image (be it one of CD or HDD) stored on
any of its accessible storages (refer to ⇒loopback command).
However the OS itself should be able to find its root. This usually
involves running a userspace program running before the real root is
discovered. This is achieved by GRUB loading a specially made small
image and passing it as ramdisk to the kernel. This is achieved by
commands ‘kfreebsd_module’, ‘knetbsd_module_elf’, ‘kopenbsd_ramdisk’,
‘initrd’ (⇒initrd), ‘initrd16’ (⇒initrd16),
‘multiboot_module’, ‘multiboot2_module’ or ‘xnu_ramdisk’ depending on
the loader. Note that for knetbsd the image must be put inside
miniroot.kmod and the whole miniroot.kmod has to be loaded. In kopenbsd
payload this is disabled by default. Additionally, behaviour of initial
ramdisk depends on command line options. Several distributors provide
the image for this purpose or it's integrated in their standard ramdisk
and activated by special option. Consult your kernel and distribution
manual for more details. Other loaders like ‘appleloader’,
‘chainloader’ (BIOS, EFI, coreboot), ‘freedos’, ‘ntldr’, ‘plan9’ and
‘truecrypt’ provide no possibility of loading initial ramdisk and as far
as author is aware the payloads in question don't support either initial
ramdisk or discovering loopback boot in other way and as such not
bootable this way. Please consider alternative boot methods like
copying all files from the image to actual partition. Consult your OS
documentation for more details.