Ubuntu – problem with setting up multiboot ISO usb using syslinux

bootdual-bootisolive-usbsyslinux

I have followed this tutorial: http://blog.jakgibb.com/2013/01/03/creating-a-multiboot-usb-stick-using-syslinux/

I want to boot linux live ISOs directly from USB drive using syslinux instead of method provied here: http://www.pendrivelinux.com/boot-multiple-iso-from-usb-via-grub2-using-linux/

Here is my syslinux.cfg:

default vesamenu.c32
prompt 0
timeout 300
menu title Geek USB
menu background /bg.png
MENU TABMSG  Created by Salman
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none

label HardDisk
    menu label Continue to Boot from ^First HD (default)
    KERNEL chain.c32
    APPEND hd1
    MENU DEFAULT

label MY
    menu label ^MY
    loopback loop /ubuntu-12.04.3-desktop-i386.iso
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-12.04.3-desktop-i386.iso noeject noprompt splash --
    initrd (loop)/casper/initrd.lz

label MIX
    menu label ^MIX
    insmod loopback
    insmod iso9660
    set isofile="/ubuntu-12.04.3-desktop-i386.iso"
    loopback loop $isofile
    kernel (loop)/casper/vmlinuz
    append boot=casper initrd=(loop)/casper/initrd.lz splash --

label MIX2
    menu label ^MIX2
    set isofile="/ubuntu-12.04.3-desktop-i386.iso"
    loopback loop $isofile
    kernel (loop)/casper/vmlinuz
    append boot=casper live-media-path=(loop)/casper/ file=(loop)/preseed/ubuntu.seed initrd=(loop)/casper/initrd.lz splash --

label MIX3
    menu label ^MIX3
    loopback loop /ubuntu-12.04.3-desktop-i386.iso
    kernel (loop)/casper/vmlinuz
    append boot=casper live-media-path=(loop)/casper/ file=(loop)/preseed/ubuntu.seed initrd=(loop)/casper/initrd.lz splash --

My USB is booting and syslinux is working and boot menu (syslinux.cfg) is displaying fine but menus are not working, don't know why?
No menu is booting ubuntu-12.04.3-desktop-i386.iso. The worst part is that no error is coming when I select a menu and hit enter, screen blinks and return to main menu.

What is wrong with my code?

Best Answer

Well, I got a syslinux-booting USB key to load an unpacked ubuntu vmlinuz and initrd. The best I can offer is the steps that worked for me...

  • Download the ubuntu of your choice (obviously)
  • Mount the iso (I used Windows 10), and copy all the mounted files to a directory in your flashdrive.
    • [Optional] Rename the folder on your flashdrive (I chose ubu)
  • Modify your syslinux configuration to point linux and initrd to the right files
  • Make sure your append has the right flags

The syslinux.conf entry that worked for me:

label installUbuntu2WORKSEE  
menu label ubuntuInstaller2WORKS  
linux /ubu/casper/vmlinuz.efi  
initrd /ubu/casper/initrd.lz  
append boot=casper iso-scan/filename=/iso/ubuntu-16.04.3-desktop-amd64.iso

After boot I was given the standard "Try Ubuntu" desktop - I could install or just use it as-is. I've heard bad things about consistently using a USB key for Ubuntu or other desktop OS without making changes to internal OS settings to prevent frequent writes to the key which will prematurely fry your NAND memory. I also can't explain all the boot flags - I don't know enough yet. Perhaps someone else can who is more familiar with Ubuntu.

Note: my flashdrive is FAT32, and has more than 4GB of space available. The .iso file and unzipped/unpacked files may take close to 4GB of space. However, I have fatdog64 (a puppy variant) also loaded on this key, along with its iso and a puppy iso. So multi-booting is possible.

Related Question