-2

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

TV1989
  • 39
  • 6

1 Answers1

0

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.

Dark Falcon
  • 43,592
  • 5
  • 83
  • 98
  • Is there a command line work-around for this? I am trying to avoid modifying the ISO image because I want this feature to be generic enough to boot any Linux ISO – TV1989 Jun 20 '14 at 14:45
  • Not to my knowledge. Common Linux distributions don't do it this way. They all use an initrd or initramfs image which loads the appropriate modules and expect a separate root filesystem. – Dark Falcon Jun 20 '14 at 15:03
  • Hmm, guess I have some coding to do :) Thanks for the response. – TV1989 Jun 20 '14 at 15:10