How to boot from iso with Grub2/Burg boot loader

7,356

Solution 1

I have got a perfect chain loader with SysLinux, Grub4Dos and Grub2, and here is my configs:

Syslinux

LABEL DSL
KERNEL memdisk
INITRD /iso/dsl.iso
APPEND iso raw

LABEL GRUB4DOS
KERNEL /boot/grub.exe

Grub4Dos

title Paragon Partition Manager
map (hd0,0)/iso/paragon-bootable-media.iso (hd32)
map --hook
chainloader (hd32)
boot

title Syslinux
chainloader /boot/syslinux/syslinux.bin

title GRUB2 Chainload
root (hd0,0)
kernel /boot/grub/core.img
boot

Grub2

menuentry "Ubuntu 13.10 Desktop ISO" {
  loopback loop /iso/ubuntu-desktop-amd64-13.10.iso
  linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu-desktop-amd64-13.10.iso noeject noprompt splash --
  initrd (loop)/casper/initrd.lz
}

menuentry "Tinycore ISO" {
  loopback loop /iso/tinycore.iso
  linux (loop)/boot/bzImage --
  initrd (loop)/boot/tinycore.gz
}

menuentry "GRUB4DOS" {
  linux16 /boot/grub.exe
}

menuentry "SYSLINUX" {
  chainloader=/boot/syslinux/syslinux.bin
}

Solution 2

For normal linux distribution, you need to specify the absolute path and disk for that ISO image, and parameter for loading kernels, see the example below:

loopback loop (hd0,msdos0)/linux.iso
linux (loop)/vmlinuz parameters
initrd (loop)/initrd.img

For other OS, i never succeed.

Solution 3

For debian-flavors like ubuntu/mint try apt-get install grub-imageboot. Then just put iso file(s) in a certain folder (the default is /boot/images/) and each time you run sudo update-grub it will add boot-menu entries for each bootable iso file in that folder. (Similar to how easybcd boots isos on mbr-windows pcs).

    sudo apt-get install grub-imageboot  
    # do df -h /boot and make sure you have 300meg free on /boot partition
    cd /tmp; wget http://ftp.sh.cvut.cz/slax/Slax-9.x/slax-32bit-9.11.0.iso 
    sudo cp  /tmp/slax-32bit-9.11.0.iso  /boot/images/
    sudo grub-update

If your boot partition is small, you can, for example, create a folder named boot-isos on a big-partition, like /home/, and edit /etc/default/grub-imageboot file as shown below.

$ sudo mkdir /home/boot-isos/
$ cat /etc/default/grub-imageboot 
# Where to find the iso/floppy images

#IMAGES="/boot/images"
IMAGES="/home/boot-isos"

# You can override the boot options for iso/floppy images here
# see http://syslinux.zytor.com/wiki/index.php/MEMDISK for details

#IMAGEOPTS="rawimg"
#ISOOPTS="iso"
Share:
7,356

Related videos on Youtube

uocnb
Author by

uocnb

Updated on September 18, 2022

Comments

  • uocnb
    uocnb over 1 year

    I'm using Ubuntu as my primary OS and alternative is Windows 7 for gaming, and another stuffs. I want to have menu to boot some live CD ISO. Is there anyway to make menu entry in Grub2/Burg to boot ISO file like the CD way?

    I see there are some ways to make it possible but almost method need specified boot arguments (kernel parameters). But I have mixed kind of Live OS wan to boot up using boot loader included: Linux, Unix, DOS (for recovery purpose)...

    I'm looking for more generic way to make it easy to discover and add to the menu config file.

    • Admin
      Admin over 12 years
      Found a way for myself: use grub2 together with grub & syslinux since they can chainloader to .iso file directly instead of set absolute path for kernel & initrd.
    • Admin
      Admin over 12 years
      ngyun, update in answerr section with howto and close thq quest.
  • Francesco
    Francesco about 9 years
    good answer ! note that linux16 /boot/grub.exe on grub2 allows to boot live windows live bartpe or Hiris live. (there is a way to specify configuration file )
  • Hashim Aziz
    Hashim Aziz over 5 years
    I'm confused, what's the reason that Paragon, Ubuntu 13.10, and Tinycore could not boot via Syslinux?