I have found that it is fairly easy to make a multiboot flash drive using
UNetbootin.
A bit of time, moving files and some simple edits to the syslinux.cfg file is all that is needed.
I'm going to give a short tutorial on how to dual boot
Mint Linux and
Puppy Linux.
This is done on a 1 gig flash drive with only one partition.
Assuming you already have
UNetbootin installed insert your flash drive.
Make sure that any data on your flash drive is saved elsewhere as UNetbootin will wipe it all out.
Start UNetbootin and from the drop down list select Puppy Linux.
The only version available should be the 'Latest Live' version. Select it and then choose the proper destination drive for the flash drive.
After it is finished downloading and configuring Puppy it may be a good idea to try it out by rebooting your computer with the flash drive still installed. If your Bios is configured properly to boot from the flash drive you will see Puupy boot up, ask some questions about hardware and screen resolution then boot to it's Desktop. Once you have verified that it works, reboot your computer with the flash drive removed.
Now that you are back in your computer make a folder on the Desktop or anywhere else you prefer and name it something like USB Puppy.
Insert your flash drive, open it, select all the files and copy them over to the new folder you just made. Now delete all the files on the flash drive. It's time for step 2.
Open UNetbootin and select Mint Linux. Choose the flash drive for the destination and start the download. After it is done you will again want to test it to verify it is working.
When you are satisfied that all is working properly boot back into your main system and then insert your flash drive once again.
Open the flash drive to reveal all the files and folders. Now open the first folder you created named USB Puppy. I resize both windows so they are visible side by side for easy transfer.
In the Puppy folder select all the files except those that have duplicate names in the flash drive containing Mint.
These are the file names you do
NOT want to transfer over;
vesamenu.c32, ubnpathl.txt, ubnkern, ubninit, ubnfilel.txt, syslinux.cfg, ldlinux.sys
You could also select all then tell the file manager to skip the files that already exist but I don't like taking a chance that a file may get overwritten or corrupted.
Now that you have all the files from the Puppy folder copied to the flash drive it's time to add the Puppy Linux entry into the Mint syslinux.cfg file. It really is painless! :-)
Open the syslinux.cfg file in the Puppy folder with your favorite text editor.
This is what you will see;
default vesamenu.c32
prompt 0
menu title UNetbootin
timeout 100
label unetbootindefault
menu label Default
kernel /ubnkern
append initrd=/ubninit pmedia=cd
label ubnentry0
menu label puppy
kernel /vmlinuz
append initrd=/initrd.gz pmedia=cd
All we want is the last 4 lines of this file (In Bold). Select this portion and copy it.
Now open up the syslinux.cfg file for Mint which looks like this;
default vesamenu.c32
prompt 0
menu title UNetbootin
timeout 100
label unetbootindefault
menu label Default
kernel /ubnkern
append initrd=/ubninit file=/cdrom/preseed/mint.seed boot=casper quiet splash --
label ubnentry0
menu label Start Linux Mint
kernel /casper/vmlinuz
append initrd=/casper/initrd.gz file=/cdrom/preseed/mint.seed boot=casper quiet splash --
label ubnentry1
menu label Start Linux Mint in compatibility mode
kernel /casper/vmlinuz
append initrd=/casper/initrd.gz file=/cdrom/preseed/mint.seed boot=casper xforcevesa ramdisk_size=1048576 root=/dev/ram rw noapic noapci nosplash irqpoll --
label ubnentry2
menu label Memory Test
kernel /isolinux/memtest
append initrd=/ubninit
label ubnentry3
menu label Boot from local drive
kernel /ubnkern
append initrd=/ubninit
Now place your cursor in between the section that starts with label ubnentry1 and label ubnentry2 and paste the entry from Puppy between them. I use the Enter and Delete keys to make this new entry conform to the format of the other entries. Makes editting easier.
Now before we close and save this file we need to correct some of the label entries.
Notice that each new entry starts with label unetbootindefault then continues with label ubnentry0, ubnentry1, etc. until we get to the entry that contains the new Puppy info.
That one says label ubnentry0 but we already have a label ubnentry0 that points to Mint.
So we take the last entry numbered 3 and change it to 4. Then change entry number 2 to number 3. And finally change the label for Puppy from 0 to 2.
The final syslinux.cfg file should look like this;
default vesamenu.c32
prompt 0
menu title UNetbootin
timeout 100
label unetbootindefault
menu label Default
kernel /ubnkern
append initrd=/ubninit file=/cdrom/preseed/mint.seed boot=casper quiet splash --
label ubnentry0
menu label Start Linux Mint
kernel /casper/vmlinuz
append initrd=/casper/initrd.gz file=/cdrom/preseed/mint.seed boot=casper quiet splash --
label ubnentry1
menu label Start Linux Mint in compatibility mode
kernel /casper/vmlinuz
append initrd=/casper/initrd.gz file=/cdrom/preseed/mint.seed boot=casper xforcevesa ramdisk_size=1048576 root=/dev/ram rw noapic noapci nosplash irqpoll --
label ubnentry2
menu label puppy
kernel /vmlinuz
append initrd=/initrd.gz pmedia=cd
label ubnentry3
menu label Memory Test
kernel /isolinux/memtest
append initrd=/ubninit
label ubnentry4
menu label Boot from local drive
kernel /ubnkern
append initrd=/ubninit
Now close and save this new modified syslinux.cfg file.
Close all open folders, reboot your system with your new multi-boot flash drive still inserted and try it out. If you did it right you should now be able to access either Mint or Puppy and use them in 'Live' mode.
Before I go I want to leave you with some ideas, thoughts and tips.
This tutorial is not the only method to create a multi-boot flash drive nor may it be the fastest or easiest. But this is the way I first tried it and with this method I had success.
Not all distros will be multi-bootable in the same manner. If two distros have the same kernel or boot loader name you will have conflicts that will cause it not to work.
One method to get around this would be to either use 2 partitions or put them in seperate folders. I have not tried this nor am I saying these methods will work. I'll leave you to try it and experiment.
Don't feel that you are limited to just these 2 distros or that you can only have 2 distros for a multi-boot flash. Since I first tried this experiment I have also added
Clonezilla to the drive giving me the option to boot to one of three distros/software.
Some flash drives may not be compatible with the Bios and will not boot.
I have some 2 Gig flash drives that won't work yet my 1 Gig flash drives from the same manufacturer works. So if it doesn't work the first time try a different flash drive.
I will not hold anyone's hand or walk them through these procedures. Learning computers and new ideas requires the user to try it and possibly fail until they have success. I have found that this works the best when teaching people new ideas or techniques. Call it tough love or whatever. It works!
Finally I need to make a comment on hidden files. Some distros have them, others don't.
Puppy doesn't but Mint does. I could have had you install Puppy then moved Mint over to the flash drive. But in order for Mint to work properly you would need to choose Show Hidden Files from the View button and make sure that you copied these over to the flash drive as well as the main files.
Hope this mini-tutorial helps you into your journey of multi-boot flash drives.
Enjoy!!
TaZMAn