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' (⇒initrd),
'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. Aditionally 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 and plan9 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