Use Lilo or grub to mount and boot from ISO


Recommended Posts

Well, I guess the title says it all. I saw some threads on other forums about using some boot files on a flash drive to mount and bot an ISO image from on the same drive.

I want to do this from a CF card in an SFF pc. I need to boot from the CF card, but the ISO is a bootable CD and is not yet written to boot from flash. It then occured to me that a bootloader like this could be very useful for booting from any cd imagewithout having to burn a CD. This could even be used on a harddrive with multiple images which can be upgraded simpley by replacing the ISO file.

Any thoughts?

Here are the threads I read:

http://damnsmalllinux.org/cgi-bin/forums/i...t=ST;f=5;t=4914

http://www.gibraltar.at/pipermail/gibralta...-June/002917.ht

Link to comment
Share on other sites

Linux can mount an ISO image and treat it like a mounted device and read the files.

You just have to find some way to boot an intial kernel, if I am not mistaken. I believe what you are thinking of is very doable in Linux.

Link to comment
Share on other sites

It is possible to boot from an ISO using GRUB/LILO, but there is an alternative way.

It envolves to make a previous extraction of the contents of the ISO to an HD partition.

This is the procedure that is most commonly used to boot Live CD's from HD without

the need to write them to a CD. Also running a LiveCD from HD, speeds up the system

as the access speeds from an HD are not compared with the ones that CD drives have.

Here's how to boot a LiveCD from HD (using grub, Knoppix [or knoppix based LiveCD iso] and a Linux system):

-create a mountpoint to mount the ISO with loopback:

mkdir /mnt/LiveISO

-mount the image:

mount -t iso9660 -o loop,ro /DOWNLOADS/Knoppix-3.7-en.iso /mnt/LiveISO

-create a directory on the device where you are going to boot from:

mkdir /mnt/hda4/KNOPPIX

-copy the contents of the mounted image to that directory:

cp /mnt/LiveISO/KNOPPIX/* /mnt/hda4/KNOPPIX/

-copy kernel and initrd files to yor boot device:

cp /mnt/LiveISO/boot/* /boot/

-edit the menu.list located in /boot/grub and add an entry like this to it:

title  KNOPPIX
root  (hd0,0)
kernel  /linux26 ramdisk_size=100000 fromhd=/dev/hda4
initrd  /minirt26.gz
savedefault
boot

using LILO should be like this:

image=/boot/linux26
        initrd=/boot/minirt26.gz
        label=KNOPPIX
        append="ramdisk_size=100000 fromhd=/dev/hda4"

This can also be done using an external device such as an USB storage device but GRUB

or LILO has to be installed on it. It can even boot from a win partition by using a floppy with LILO/GRUB

to boot it or adding an entry to the NT bootloader.

Works with all the LiveCD's based on Knoppix, DSL, SLAX... (the fromhd cheatcode of

SLAX is different from the one Knoppix uses).

Not direct boot from an ISO image but pretty usefull to test out a new LiveCD without the need

to burn it.

here's a page for more options using similar techniques:

http://www.knoppix.net/wiki/Hd_Based_HowTo

Link to comment
Share on other sites

  • 5 months later...

Hey Lechio

I have also considered this option but I have about 30 live CDs and am looking for a way to dynalically list and select one of them at boot time, mainly for trying out and testing diffrent distros.

I have tried the qemu emulator, althoug it works well it is still a bit sluggish sometimes and sometimes the OS behaves diffrently on the actual Hardware

Any info will be apriciated :)

GX

It is possible to boot from an ISO using GRUB/LILO, but there is an alternative way.

It envolves to make a previous extraction of the contents of the ISO to an HD partition.

This is the procedure that is most commonly used to boot Live CD's from HD without

the need to write them to a CD. Also running a LiveCD from HD, speeds up the system

as the access speeds from an HD are not compared with the ones that CD drives have.

Here's how to boot a LiveCD from HD (using grub, Knoppix [or knoppix based LiveCD iso] and a Linux system):

-create a mountpoint to mount the ISO with loopback:

mkdir /mnt/LiveISO

-mount the image:

mount -t iso9660 -o loop,ro /DOWNLOADS/Knoppix-3.7-en.iso  /mnt/LiveISO

-create a directory on the device where you are going to boot from:

mkdir /mnt/hda4/KNOPPIX

-copy the contents of the mounted image to that directory:

cp  /mnt/LiveISO/KNOPPIX/*  /mnt/hda4/KNOPPIX/

-copy kernel and initrd files to yor boot device:

cp  /mnt/LiveISO/boot/* /boot/

-edit the menu.list located in /boot/grub and add an entry like this to it:

title ?KNOPPIX
root ?(hd0,0)
kernel ?/linux26 ramdisk_size=100000 fromhd=/dev/hda4
initrd ?/minirt26.gz
savedefault
boot

using LILO should be like this:

image=/boot/linux26
 ? ? ? ?initrd=/boot/minirt26.gz
 ? ? ? ?label=KNOPPIX
 ? ? ? ?append="ramdisk_size=100000 fromhd=/dev/hda4"

This can also be done using an external device such as an USB storage device but GRUB

or LILO has to be installed on it. It can even boot from a win partition by using a floppy with LILO/GRUB

to boot it or adding an entry to the NT bootloader.

Works with all the LiveCD's based on Knoppix, DSL, SLAX... (the fromhd cheatcode of

SLAX is different from the one Knoppix uses).

Not direct boot from an ISO image but pretty usefull to test out a new LiveCD without the need

to burn it.

here's a page for more options using similar techniques:

http://www.knoppix.net/wiki/Hd_Based_HowTo

585740612[/snapback]

Link to comment
Share on other sites

I have a iso of my windows xp2 slipsteam install. Would it be possible to do the same thing with that as with the linux distros?

I have 2 free fat32 partitions that I can extract to.

I'll try to make this work, but a helping hand would be nice.

Link to comment
Share on other sites

  • 5 years later...

-create a directory on the device where you are going to boot from:

mkdir /mnt/hda4/KNOPPIX

i don't see any hda's or sda's in /mnt or in /dev.

what should i do?

thanks

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.