Thread: Multi-ISO boot
View Single Post
  #2   (View Single Post)  
Old 11th December 2013
Carpetsmoker's Avatar
Carpetsmoker Carpetsmoker is offline
Real Name: Martin
Tcpdump Spy
 
Join Date: Apr 2008
Location: Netherlands
Posts: 2,243
Default

You can't boot/load an ISO file directly, at least, I wasn't able to figure out a way when I looked for it a bunch of years ago. However, you achieve the same effect using syslinux. I created a DOS/WinPE/FreeBSD/Linux/Memtest multiboot drive with syslinux.

Syslinux is a bootloader, like grub. The name is slightly confusing, it doesn't really have anything to do with Linux (the kernel or OS) as such, I believe the name stems from the fact that it was originally written to boot Linux, but it can boot pretty much anything.

I also needed to format my USB drive using BOOTICE, I don't quite remember which options worked best, so you'll need to look that up or experiment. Some USB drives may also work out-of-the-box.

Using isolinux, you can also make a bootable CD/DVD with this, the only difference is that the config file is named /boot/isolinux/isolinux.cfg

It's been a few years since I did this, I believe there's been a major rewrite of syslinux, so this example might not work with the newer version, but it should give you an idea on how to proceed. Also, back then the FreeBSD port of syslinux was seriously broken, I don't know if this is still the case or if it's fixed.

Anyway, here's my config:

/boot/syslinux/syslinux.cfg
Code:
PROMPT 0
TIMEOUT 30
DEFAULT main

LABEL main
KERNEL /boot/syslinux/menu.c32
APPEND /boot/syslinux/menu.cfg
/boot/syslinux/menu.cfg
Code:
DEFAULT freedos

MENU TITLE Anduril 1.3

# MENU COLOR element ansi foreground background shadow
MENU COLOR TITLE 1;37;44
MENU COLOR TABMSG 37;40

MENU MARGIN 2
MENU ROWS 19
MENU TABMSGROW 25
MENU CMDLINEROW 25
MENU HELPMSGROW -1

label freedos
MENU LABEL ^1 FreeDOS
KERNEL /boot/syslinux/memdisk
APPEND initrd=/boot/freedos.gz

label freebsd
MENU LABEL ^2 FreeBSD
#KERNEL /boot/syslinux/mboot.c32
#APPEND /boot/freebsd/kernel --- /boot/freebsd/mfsroot.gz
KERNEL /boot/syslinux/memdisk
APPEND initrd=/boot/freebsd.gz harddisk raw

label parted
MENU LABEL ^3 Parted Magic 5.9
LINUX /boot/pmagic/bzImage
INITRD /boot/pmagic/initramfs
APPEND edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 loglevel=0 max_loop=256 keymap=us directory=/boot/

label win7pe
MENU LABEL ^4 Win7PE
#KERNEL /boot/loader.bin
KERNEL /boot/grub.exe
APPEND --config-file="chainloader /boot/BOOTMGR"

MENU SEPARATOR

label memtest
MENU LABEL ^5 Memtest86+ 4.20
KERNEL /boot/memtest

label memtest_probe
MENU LABEL ^6 Memtest86+ 4.00 Probe method (Might work if the default doesn't)
KERNEL /boot/memtest_probe

label hpmemtest
MENU LABEL ^7 HP Vision Diagnostics Memory Test 1.7
KERNEL /boot/syslinux/memdisk
APPEND initrd=/boot/hp_memtest.gz

# http://pciids.sourceforge.net/v2.2/pci.ids.gz
label hdt
MENU LABEL ^8 System Information (HDT)
TEXT HELP
ENDTEXT
KERNEL /boot/syslinux/hdt.c32

MENU SEPARATOR

LABEL hdd1
MENU LABEL ^9 Boot first hard disk
LOCALBOOT 0x81
__________________
UNIX was not designed to stop you from doing stupid things, because that would also stop you from doing clever things.
Reply With Quote