I have an ISO image (stock Ubuntu 13.10 DVD ISO image) loaded into memory pre-OS and I'm trying to start the Linux installation process from this image. GRUB can recognize the image as a cd and I can start the installation (I'm experimenting with an UEFI platform, and using an UEFI version of GRUB so it can recognize the image as a valid block device with a supported file system).
My problem is the kernel cannot find the install media (which is expected) so it panics early on. I realize I can write a simple block device driver so the kernel can find the image but for the sake of portability, is there a way to mount tmpfs/ramfs at a specific start address? Or is there a way to tell the kernel that there is a file system at a specific address?
Thanks
Compile your kernel with the ISO filesystem as a built-in. Specify the ISO image as the initrd image. The contents of the ISO will probably need modified to understand this new way of booting as, unlike a normal initrd image, you will not want to be unmounting it to mount the real root filesystem.
Note that the preferred way would probably be to write a kernel module that recognizes and mounts the ISO and put it in a smaller initramfs image instead. The above is just an idea about how you might accomplish it without writing a module.