boot from ISOFS

Hello everyone.

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

Short answer: Probably not.

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.

Sounds like a good chance to ask how the Finnix iso is being prepared by Linode.

After all, you just attach it to xvda and boot away.

Difference is the Finnix ISO is stored on the Linode host infrastructure and not in a space you control.

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.

A valid point, and one I hadn't thought of. So here's what finnix seems to exist as:

  • 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 :-)

Thanks all.

I just need to push Zeroshell (www.zeroshell.net) into linode. which has only ISO format.

@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.

@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.

You could always try the zeroshell image for KVM/QEMU.

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.

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct