How to make a multiboot usb flash drive

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
Michalis
Posts: 237
Joined: Tue 08 Jan 2008, 14:50
Location: Greece

How to make a multiboot usb flash drive

#1 Post by Michalis »

Couple days ago I tried for first time to boot puppy from a flash drive for testing reasons. I tried to install puppy431 and quirky010 simultaneously by using the "puppy universal installer", but unfortunately couldn't use both of them. So I searched a litle bit around and found the solution that is extremely easy after all. Just follow my steps:



1. Installation of the first puppy with the bootloader
a. Load one of the puppies that you want to install in the usb flash drive.
b. Go Menu->Setup->Puppy universal installer
c.At the screen which will appear choose the first option "USB Flash drive"

The next steps (till 2) are easy to follow by reading the messages, but I'm just making them very analytic (maybe too much):
d. Will pop a screen asking you which drive to install to, choose the one you want
e. Then Will follow a window asking you at which partition you want to install, select it by clicking on it.
f. After that will appear an information window, just to be sure that you didn't do any mistake
g. A window will come out asking you where are the files of the puppy you want to install, with 2 options "cd" and "directory". If you have load the puppy from a live cd just click the "CD" option, else the "Directory" option. Click on the iso and it will be automatically mounted under "/mnt/", navigate to it and select the "vmlinuz" file and click ok.
h. In the following window I've chosen the default option and worked. In case it doesn't work with you you'll have to try the other options.
i. If the partition doesn't have the flag "boot" will ask you to make it by using gparted. You have to do it. So click "GParted", right click on the partition you want to install to, select "Manage Flags" and select the "boot" flag and close gparted.
j. Next window just select the "default"
k. Will pop up a window, in the first option if you are sure just click "enter". Next if you want to wipe the contents of that partition click a character and then enter, else if you want to keep them just press "enter". At the next option I suggest to type a character and then press "enter". and when it finishes again "enter" to close.

That's it you have finished with the installation of the first puppy at the usb flash drive



2. Now you have a flash drive or a partition with the following files:
initrd.gz
ldlinux.sys
pup/quirky/"whatever you have chosen to install".sys
syslinux.cfg
USBFLASH
vmlinuz

a. Make a folder with whatever name you want, but with only western (english) characters let's say puppy, and move in the folder the next files:
initrd.gz
pup/quirky/"whatever you have chosen to install".sys
USBFLASH
vmlinuz

b. Right click at the syslinux.cfg and open it as text.
You'll see something like the next:

Code: Select all

default vmlinuz initrd=initrd.gz pmedia=usbflash pfix=copy nosmp
change it to:

Code: Select all

PROMPT 1
TIMEOUT 0
DEFAULT 1
DISPLAY menu.txt

LABEL 1
KERNEL /the subfolder you made/vmlinuz
APPEND initrd=/the subfolder you made/initrd.gz pmedia=usbflash pfix=copy nosmp psubdir=the subdir you made
c. Make a new text file called "menu.txt", in the same place with the syslix.cfg, not in a subfolder
click on it and paste the following:

Code: Select all

1.- "the name you want to call it, e.x: Puppy Linux 431"
Save it and you are ready to add more



3.Adding more puppies/live linuxes
a. You open the iso, make a new folder and put inside the next files:
initrd.gz
pup/quirky/"whatever you have chosen to install".sys
vmlinuz
Also copy inside the folder the "USBFLASH" file.

b. Open the file "syslinux.cfg" as a text and add the following:
LABEL (A number for any linux you install), for example:
KERNEL /the name of the folder you made previously/vmlinuz, for example:
APPEND initrd=/the name of the folder you made previously/initrd.gz pmedia=usbflash pfix=copy nosmp psubdir=the name of the folder you made previously

So you will have something like that:
"LABEL 2
KERNEL /quirky010/vmlinuz
APPEND initrd=/quirky010/initrd.gz pmedia=usbflash pfix=copy nosmp psubdir=quirky010"

The nosmp option can be omitted if you are using an smp processor
Save the file with the changes


c. Open the "menu.txt" and add the following:
The number you chose at the previous step, ".- " (a fullstop, a dash and a space) and the name you want to be seen in the monitor when choosing which to boot. For example:
"2.- Quirky Linux 010"




This way you'll have as many puppies, woofs, quirkies you want in a single usb thumb drive, each on a separate folder.

upnorth gives us also a slightly different configuration directions, how to use Plop bootloader, kolibri os and menuet os


In my case I have installed puppy-431 and quirky-010 and the configuration files are,

syslinux.cfg:

Code: Select all

PROMPT 1
TIMEOUT 0
DEFAULT 1
DISPLAY menu.txt

LABEL 1
KERNEL /puppy431/vmlinuz
APPEND initrd=/puppy431/initrd.gz pmedia=usbflash pfix=copy psubdir=puppy431

LABEL 2
KERNEL /quirky010/vmlinuz
APPEND initrd=/quirky010/initrd.gz pmedia=usbflash pfix=copy psubdir=quirky010

and menu.txt:

Code: Select all

1.- Puppy Linux 431
2.- Quirky Linux 010

so when booting from the flash drive I get the options:
1.- Puppy Linux 431
2.- Quirky Linux 010
boot:_

and I just type the number I want to boot from and press "enter".



I hope it's clear enough to follow the steps. But if you have any questions or suggestions in order to make it clearer please tell me.[/quote]
Last edited by Michalis on Wed 31 Mar 2010, 13:55, edited 1 time in total.

User avatar
T_Hobbit
Posts: 400
Joined: Sat 27 May 2006, 10:50
Location: Portugal - Lisbon

#2 Post by T_Hobbit »

You need to add "psubdir=subdir you make" to the end of the APPEND line. See my signature post.
T_Hobbit
:idea: Rebuilding old DOS Machine for Wing Commander Privateer and Puppy :!: Old spare parts to give away - anyone interested :?:

User avatar
upnorth
Posts: 287
Joined: Mon 11 Jan 2010, 19:32
Location: Wisconsin UTC-6 (-5 DST)
Contact:

#3 Post by upnorth »

Thanks for the HOWTO, Michalis. :D

Here is a slightly different configuration that uses the vesamenu.c32 module of syslinux:

Code: Select all

timeout 100
PROMPT 0
UI vesamenu.c32

label puppy
menu label PUPPY431
SAY Now booting PUPPY from SYSLINUX...
kernel vmlinuz 
append initrd=initrd.gz pmedia=usbflash pfix=copy nosmp
There are a couple of novel things people can add to their sticks as well. One is the Plop Boot Manager which can be chained to or can chain to other boot loaders.
My menu entry looks like this:

label plp
menu label PLOP
linux plpbt.bin

Plop bootloader is only 42K.

When written to floppy disk or added to your hard drive's Grub menu.lst, plop boot manager can be used as an alternative to wakepup.

The others are kolibri os and menuet os, both of which are only 1440K each.
These use the memdisk module of syslinux.

label kolibri
menu label kolibri
kernel memdisk
append initrd=/kolibri/kolibri.img

label menuet
menu label menuet
kernel memdisk
append initrd=/kolibri/M64-091J.IMG

Kolibri is the only one of these two that works on my antique computer. Menuet is 64 bit.

Thanks again, Michalis.

Michalis
Posts: 237
Joined: Tue 08 Jan 2008, 14:50
Location: Greece

#4 Post by Michalis »

Thanks for your suggestions

T_Hobbit, I think that in syslinux "psubdir=subdir you make" isn't necessary. I haven't found anywhere anyone using syslinux referring to it, maybe you need it because you are using unetbootin. Anyway just to be sure I added it to the the How to.


upnorth if you have also over linuxes in mind please bring them over :D

Post Reply