boot from ISOFS
Is there any way to boot from ISO file?
I've tried to write iso file to a dev by dd. but it seems not possible to boot from this dev.
any idea?
Thanks in advanced.
8 Replies
Medium answer: I don't know if it is theoretically possible to do it with some sort of wrapper, but I suspect it may be, if you don't mind using a kernel other than what's on the ISO. You might be able to copy the contents of the isofs to an ext3 filesystem and drop in the necessary stuff for pv_grub to boot its kernel, if its kernel supports paravirtualization…
Long answer: The problem is that most ISOs expect an x86 hardware architecture where the CPU initializes the program counter to a reset vector on boot, which eventually leads to the BIOS finding a particular sequence of bytes in a particular place on a disk device, which it can then branch to in order to start booting, etc, etc. Linode, on the other hand, skips all that and just expects an ext3 filesystem with an executable file named /sbin/init, or a grub configuration file at another particular pathname pointing to a kernel with a particular instruction set. If you can make the ISO comply with the Linode architecture, it should work.
After all, you just attach it to xvda and boot away.
It'd be interesting if Linode could enable functionality to allow booting from ISOs… this could even open the door to install almost any OS. It'd need you to allocate space from your storage and a method of uploading/deleting the ISO, but it's potentially do-able. (Hmm, might want to be associated with an account rather than a node so you can build multiple machines from the image…)
You might want to ask in the "feature request" forum.
An iso9660 filesystem on /dev/xvdh
A kernel, separate from the media (3.2.0-1-amd64-finnix), which does support paravirtualization, and which is not a "normal" Linode kernel
A kernel command line as follows: root=/dev/xvdh xencons=tty console=tty1 console=hvc0 nosep nodevfs ramdisksize=32768 ipconntrack.hashsize=8192 nf_conntrack.hashsize=8192 ro devtmpfs.mount=1
From there, Things Happen, and it is apparently able to find init, mount the "cdrom" on /cdrom, mount /cdrom/finnix/arch/x86/root.img on /FINNIX, then roll from there with tmpfs and aufs.
It is known that Finnix is specifically designed to work in a Linode-like environment. How much of a deviation from the usual Linux .iso workflow this requires may be a good library article
I just need to push Zeroshell (
@scegg:
Thanks all.
I just need to push Zeroshell (
http://www.zeroshell.net ) into linode. which has only ISO format.
Try this:
Basically, install on a virtual server on your own machine, use finnix to transfer the disk image to linode, boot it up and you're good.
@glg:
@scegg:Thanks all.
I just need to push Zeroshell (
http://www.zeroshell.net ) into linode. which has only ISO format.Try this:
http://library.linode.com/custom-instan … stro-howto">http://library.linode.com/custom-instances/custom-distro-howto Basically, install on a virtual server on your own machine, use finnix to transfer the disk image to linode, boot it up and you're good.
This guide is useless. Coz this linux using ISOFS, which is not supported by linode, i guess.
Linode is Xen based but it should not be too hard to get it running. Of course that then means your root filesystem isn't read only.