Friday, July 10, 2009

Multiboot Links

I've gotten many requests for some multiboot links and info so I gathered up a bunch of the best from my library.

I used the info to learn how to make my TaZMAn's 15 in 1 Multiboot DVD.

Since I built that DVD some new software and scripts have been released that make this task easier. Two that immediately come to mind are Unetbootin and the script I posted earlier that will create the Cd/DVD for you.

So without further fanfare here are the links and I hope they help all of those who want to create their own multiboot disk.


multicd.sh
http://multicd.tuxfamily.org/

Creating a Multi-boot DVD
http://pcquest.ciol.com/content/enterprise/2005/105070101.asp

Bootland Forum
http://www.boot-land.net/forums/

ISOLINUX
http://syslinux.zytor.com/wiki/index.php/ISOLINUX

LiveCD Creation Resources
http://www.livecdlist.com/wiki/index.php/LiveCD_Creation_Resources

Create a multiboot CD
http://www.mepis.org/docs/en/index.php/Create_a_multiboot_CD_%28or_USB_flash_drive%29

Multi-boot 30+ Operating Systems with just the ISO, no Disks
http://www.askapache.com/security/install-multiple-os-without-cds.html

Repository of Distros
http://ftp.heanet.ie/pub/

XercesTech
http://tech.xerces.com/

Super-Disc: Multi-Boot Project CD/DVD Using ISOLINUX
http://www.msfn.org/board/index.php?showtopic=94398

Multiboot DVD with Isolinux
Look on the last page for Jotnar's post
You want this article he posted;
Chris D'Hondt- Changes to Support Multibooting Linux Live CDs on the Same Disc

http://ubuntuforums.org/showthread.php?t=703905&page=3

Update!

This just in from Mufaizal. A pdf file that explains how to make a multi-boot Linux disk.

http://www.byui.edu/Societies/Linux/Archive/creating_a_linux_multi-boot_dvd_LWellman.pdf

Thank you Mufaizal.


Enjoy!

TaZMAn

32 comments:

rokytnji said...

Thanks for the info Taz. Bought me a Asus EEEpc. I don't remember if I told ya yet. I have been on a Unetbootin Live Mini Distro (Browser Pup, EEEBuntu Base, Easy Peasy) kick. Been test driving a bunch of stuff just for the adventure. Slitaz is next on the agenda. Just Farting away my free time this Summer Experimenting and learning New Things.

Matteo said...

HI tAZ, i need your help..is it possibile to make a ubuntu+kubuntu+xubuntu multi boot dvd§? i tried but after ubuntu splash screen loading i get Busy box...

TaZMAn said...

Hi Matteo,
Sorry for the delay in my reply. Been out of town on business.

How are you trying to boot those 3 distros? There are supposedly several ways of doing it although I've only used the method described in this thread by Jotnar;
http://www.msfn.org/board/index.php?showtopic=86510&st=80

A method that may work for flash drives is to partition the flash drive into 3 sections. Insert each distro into it's own partition then use syslinux to set up the boot menu and loader.
I haven't tried this with the 'Buntu flavors but have used it with Ubuntu and Mint which both use the same casper file in the initrd script.

Hope you are using virtual box to do your testing unless you have a huge collection of blank DVD's. :-)

It takes a lot of time and testing but if you follow the link I just provided and read the whole thread you should be able to do what you want.

I spent 2 months of research and testing before I got my 15 in 1 DVD working properly. And then I rushed the release and screwed up one of the distros. It should have been on the actual DVD but is instead set up to download then run.
So much for planning. That's what I get for rushing. Guess what I'm saying is take the time to research and develop your disk. It may become frustrating at times but pays off in the end.
Good luck and let me know how you are coming along with your project.

TaZMAn said...

Hi Rok!
Been checking out those netbooks myself. Only drawback for me is the screen size.

Glad you are having fun with Unetbootin. It's a great utility especially for distro junkies like you and me. LOL!!

Been playing with Vector Linux on an old Gateway 1 Ghz PC. Works very well and runs as fast if not faster then a Vista PC.
Will keep it for a few more weeks then it's off to another distro.

Wish I had free time this summer. Got lots of projects going on.
Hope I can get it all done before the end of summer. LOL!

Take it easy and catch you later.
Have fun with your new toy.
:-)

ReneL said...

Cool, finally I got Ubuntu 9.04 (/) and Linux Mint 7 (/mint/) working together.

After many trials with
http://ubuntuforums.org/showthread.php?t=703905&page=3
I replaced the Linux Mint 7 casper script by the Kubuntu 9.10 Alpha 3 casper script and changed just 2 lines:

LIVE_MEDIA_PATH=mint/casper
$path/mint/.disk/casper-uuid

TaZMAn said...

Hi ReneL,
Glad to hear you got a multiboot working.
I figured that link to the forums I posted would be of help.

Congrats on making one of the harder multiboots due to using kernels with the same name.

And thanks for posting your results and lines that needed changing. It will be of much help to others that are looking to do the same thing.

Enjoy your new disk and hope you try making more. Don't know what your bandwidth is like but maybe a share with others could be arranged.

ReneL said...

Thanks, for me it was only possible by using the newer casper script.

At the moment ubuntu-9.04-desktop-i386, kubuntu-9.04-desktop-i386, LinuxMint-7, LinuxMint-7-KDE and tinycore_2.2 work together :)

But there is still some space on the DVD, I will try to add Edubuntu because I think it is important to teach kids with free software.

And if there is not much difference (look, behaviour, speed) between the customized Edubuntu and the normal Ubuntu LiveCD I am going to drop the normal Ubuntu and use Edubuntu as base.

This would leave room for another LiveCD, maybe Chakra (Arch Linux).

Or I will create 2 DVDs ;)

When the DVD is full, I will post a Torrent or two :)

ReneL said...

After some days of testing I finished and uploaded the torrent:
Multibuntu 9.04 i386 All-in-one DVD (Ubuntu Linux)

It includes edubuntu-9.04-addon-i386 (based on Ubuntu, updated on 2008-08-07) and systemrescuecd-x86-1.2.2 in addition to the already mentioned ubuntu-9.04-desktop-i386, kubuntu-9.04-desktop-i386, LinuxMint-7, LinuxMint-7-KDE and tinycore_2.2.

Try it out if you want :)

Anyone who knows about Edubuntu Live CDs is invited to test the Live and the Install option.
Ubuntu 9.04 was the base, in chroot I installed edubuntu-desktop from edubuntu-9.04-addon-i386.iso, updated the system, removed and replaced the old kernels and used the edubuntu.seed from the addon.iso in the ISOLINUX boot menu entries on the DVD (/isolinux/text.cfg).

All initrd files which had to be changed because of the ISOLINUX directory prefix use the casper script from Kubuntu 9.10 Alpha 3, the original files are included as well (initrd.gz.old) in case anyone wants to recreate the original ISOs ;)

Maybe next time I will try to use Grub2 (direct booting of ISOs).
This guide is very good, but the end product should be a bootable DVD ISO :)

TaZMAn said...

Hi ReneL,

Thank you so very much for this great share.
I am looking forward to it and will do my part in helping with the share.

And if you don't mind, I would like to put this as a full post on my blog. But will wait until you okay it.

Maybe to take the load off of you I can help out by putting the file up to Rapidshare or Megaupload.
That is something we can possibly discuss.

Again I must thank you for myself, the readers of this blog and the whole open source community for your generosity to share this with all of us.

And be very proud of your accomplishment. It takes a lot of dedication to create these multi-boot DVD's.

TaZMAn said...

A note to all my blog readers who are interested in ReneL's multi-boot DVD.

Remember that the only way this can stay alive and feasible is to make sure you keep the bandwidth equal.
If you download 4.5 gigs make sure to upload at least that same amount or even more.

That way we can be assured everyone has access to it.

Thank you for your understanding.

ReneL said...

Thank you for your kind words.

Sure, you can write about it, but I would recommend to try it out first :)
Constructive feedback is welcome.
And if only some ISOLINUX entries have to changed, maybe someone else with higher upload bandwidth could seed it first ;)

It is strange, I had to upload double the size to distribute at least one copy between the leechers and still the tracker does not show that it is fully distributed (Azureus showed 5 copies).
Maybe you are right and some people immediately disconnect, but it could be also that the tracker is not updated correctly.
Anyway, I wanted to wait until it is safe to download, here u go :)

Usually torrents are the accepted default way for Linux users to download a new image, but if you think hosting will help, go ahead.

I must say that I did it not only for the community but as a birthday present for the child of an Indian friend of mine in the first place *g*
Most of the (Indian) IT people I know are very strong Windows/IE/MS Office supporters (okay, probably because of the traditional conservative western company policies) so I am always arguing with them to at least try Linux for a few hours.
It costs me hours of talking just to bring some people to try out all the advantages of a small download (Firefox 3.5.2).
Sadly most of the time it is hard to convince people of Free Software so I thought an open-minded child could be easier to persuade ;)

So next time a Linux Game DVD could be an option, too :)

Florin said...

How did you edited the casper script ? I think you did it in linux envirorment. not windows. But I want to make such a dvd with a cool menu like aero studio's and I need to find out how to edit casper script. Please help me. Thanks!

ReneL said...

Hi Florin, I did everything on Windows in the Cygwin 1.7 environment (except chrooting into Edubuntu).

So if you don't want to change the contents of the Live CD, just introduce the subdirectory prefix into the casper script like I pointed out before, I followed the steps from
[SOLVED] Multiboot DVD with Isolinux!

But the post is bit old, the new Karmic alpha use LZMA compression:
# 1. Create and move into a new subdirectory
# 2. Extract initrd.lz from parent directory
unlzma -c -S .lz ../initrd.lz | cpio -id
# 3. Adapt 2 lines in scripts/casper
# 4. Repack and overwrite initrd
find . | cpio --quiet --dereference -o -H newc | lzma -9 -e > ../initrd.lz

By the way, the good new casper script I mentioned was not changed between 9.10 Alpha 3 and 4, so you could take it at least from the (K)Ubuntu 9.10 Alpha 3 and 4 desktop and netbook ISOs.

Florin said...

Thanks! By the way, I want to multiboot Ubuntu 9.4 ... I forgot to tell you this! And, can you give me, if you have, the casper script file from ubuntu alpha 9.10 ? Thanks again, now let's see if I succeed!

ReneL said...

With the current casper script, it will be easy to multiboot Ubuntu 9.04.

You can find the current Ubuntu source code on launchpad:
http://bazaar.launchpad.net/~ubuntu-core-dev/casper/trunk/annotate/head%3A/scripts/casper

Florin said...

OK. So, if I understood, and I hope so, I only need to modify in /scripts/casper in 8.4 version the lines:

79 for try_uuid_file in "$path/.disk/casper-uuid"*; do
and

116 if match_files_in_dir "$directory/$LIVE_MEDIA_PATH/*.squashfs" ||
117 match_files_in_dir "$directory/$LIVE_MEDIA_PATH/*.ext2" ||
118 match_files_in_dir "$directory/$LIVE_MEDIA_PATH/*.dir"; then
119 setup_unionfs "$directory/$LIVE_MEDIA_PATH" "$rootmnt"
and the last
63 if [ -d "$path/$LIVE_MEDIA_PATH" ]; then
64 if [ "$(echo $path/$LIVE_MEDIA_PATH/*.squashfs)" != "$path/$LIVE_MEDIA_PATH/*.squashfs" ] ||
65 [ "$(echo $path/$LIVE_MEDIA_PATH/*.ext2)" != "$path/$LIVE_MEDIA_PATH/*.ext2" ] ||
66 [ "$(echo $path/$LIVE_MEDIA_PATH/*.dir)" != "$path/$LIVE_MEDIA_PATH/*.dir" ]; then

These are? Or I missed a few others? THANKS

ReneL said...

As I mentioned, only 2 lines have to be changed, then the Live CD works from the subdirectory.
Just test it.

Florin said...

You mentioned that only these lines need to be changed "LIVE_MEDIA_PATH=mint/casper
$path/mint/.disk/casper-uuid"
but I downloaded cygwin, extracted my initrd.gz and I didn't see the lines.
See this: /scripts/casper : http://rapidshare.com/files/268295734/casper.html . Maybe those lines were changed and or I make those changes in my version, or I copy the whole text from the link you gave me.

ReneL said...

That's why I wrote that I replaced all existing old casper scripts (Ubuntu 9.04, Linux Mint 7) by the newer one from Ubuntu 9.10 and changed 2 lines afterwards.

The old gzip compressed commands are:
gunzip -c ../initrd.gz | cpio -id
find . | cpio --quiet --dereference -o -H newc | gzip -9 > ../initrd.gz

Florin said...

So, can you upload and send me you new initrd.gz archive with casper scripts because I downloaded ubuntu 9.10 alpha 4 and the initrd.gz didn't had casper scripts. Thanks a lot!

ReneL said...

It would be useless to send a repackaged initrd.lz because everyone making custom Multiboot images uses a different subdirectory structure.

Ubuntu Karmic has no initrd.gz, they use LZMA now because of the better compression ratio (initrd.lz).

Every Ubuntu initrd contains the casper script (and hundreds of other files).

Florin said...

Then send me the original one, not the repackaged. Or, you could send me the repackaged one and I will "edit" it into the cygwin and make the appropriate modifications. In fact, I saw in ubuntu karmic that exists a initrd.gz in /install directory ran by isolinux script "append file=/cdrom/preseed/ubuntu.seed initrd=/install/initrd.gz quiet --" but when extracted the gz archive, I didn't found the casper scripts. See ya!

ReneL said...

No need to, you already downloaded the Karmic ISO.

There is no initrd.gz in /install, neither in Jaunty nor Karmic.

Just look into the ISOLINUX configuration inside the ISO file:
/isolinux/text.cfg

Jaunty:
initrd=/casper/initrd.gz

Karmic:
initrd=/casper/initrd.lz

So the initrd is always in the /casper directory of the ISO.

Florin said...

Hi! Can you post your boot loader menu script? I mean for example in isolinux the contents of isolinux.cfg; in grub the contents of menu.lst and so on!
Thanks!
PS: And what you know about the kernel not syncyng error ... can't mount root .

ReneL said...

As I already mentioned, the boot menu entries of Ubuntu are stored in
/isolinux/text.cfg.

As an example, I extracted and prepared the Kubuntu 9.04 ISO in the /kubuntu subdirectory of the multiboot ISO which is based on the Ubuntu 9.04 ISO extracted into /.

Just copy the original Kubuntu boot entry from
/kubuntu/isolinux/text.cfg:

label live
menu label ^Try Kubuntu without any change to your computer
kernel /casper/vmlinuz
append file=/cdrom/preseed/kubuntu.seed boot=casper initrd=/casper/initrd.gz quiet splash --


and insert it into the multiboot boot menu in
/isolinux/text.cfg.

Then this new entry must be changed to use the subdirectory:

label live-kubuntu
menu label Try Kubuntu 9.04 without any change to your computer
kernel /kubuntu/casper/vmlinuz
append file=/cdrom/kubuntu/preseed/kubuntu.seed boot=casper initrd=/kubuntu/casper/initrd.gz quiet splash --


I have never seen a kernel not syncing error.

TaZMAn said...

Hi ReneL,
Thanks for the comments you made to help Florin in my absence. Hope Florin has made good progress and creates a multiboot that fits his needs.

Speaking of Multiboots, I finished downloading yours and continued seeding beyond a 1:1 ratio.

One word to describe your DVD. Splendid!!

You did a very good job and I enjoy it very much. I used it to install Mint in place of the Ubuntu I was using.
Mint installed perfectly from your DVD and all the other distros work with no problems.

You did a very good job creating it and I thank you for the share.
When I get some free time I will see about uploading it to a place with download links.

Torrents are nice and may be the preferred method but it took me 4 solid days of downloading before it was finished.

Granted, I was one of the early down-loaders and maybe the speeds have increased since then but permanent links are a nice option.

Thanks again ReneL for all your contributions.

4llf0rn0t said...

Thanks for the info taz and reneL.

I was able to multiboot ubuntu 10.04 and fedora 13 but having problems with including mint 9. If I understood it correctly ubuntu and ubuntu-derived distros just need to have their own directory
.
|-- fedora
| |-- boot.cat
| |-- initrd0.img
| |-- isolinux.bin
| |-- isolinux.cfg
| |-- memtest
| |-- splash.jpg
| |-- vesamenu.c32
| `-- vmlinuz0
|-- isolinux ****this is isolinux from ubuntu ****
|-- LiveOS
|-- mint
| |-- casper
| | |-- filesystem.manifest
| | |-- filesystem.manifest-desktop
| | |-- filesystem.size
| | |-- filesystem.squashfs
| | |-- initrd.lz
| | `-- vmlinuz
| |-- isolinux
| `-- preseed
`-- ubn
|-- casper
| |-- filesystem.manifest
| |-- filesystem.manifest-desktop
| |-- filesystem.size
| |-- filesystem.squashfs
| |-- initrd.lz
| |-- vmlinuz
|-- dists
|-- install
|-- pics
|-- pool
`-- preseed

and adjusting initrd.lz for both ubuntu and mint by editing /scripts/casper and prefixing them with appropriate subdirectory e.g.
#!/bin/sh

# set -e

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

mountpoint=/cdrom
LIVE_MEDIA_PATH=ubn/casper
.
.
.
for try_uuid_file in "$path/ubn/.disk/casper-uuid"*; do

#!/bin/sh

# set -e

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

mountpoint=/cdrom
LIVE_MEDIA_PATH=mint/casper


and adjusting text.cfg from /isolinux
default live-fedora
label live
menu label ^Try Ubuntu without installing
kernel /ubn/casper/vmlinuz
append file=/cdrom/ubn/preseed/ubuntu.seed boot=casper initrd=/ubn/casper/initrd.lz quiet splash --
label mint
menu label ^Try Mint without installing
kernel /mint/casper/vmlinuz
append file=/cdrom/mint/preseed/mint.seed boot=casper initrd=/mint/casper/initrd.lz quiet splash --
label live-fedora
menu label ^Try Fedora 13 without installing
kernel /fedora/vmlinuz0
append initrd=/fedora/initrd0.img root=live:CDLABEL=Multiboot rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD
label live-install
menu label ^Install Ubuntu
kernel /casper/vmlinuz
append file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz quiet splash --
label check
menu label ^Check disc for defects
kernel /casper/vmlinuz
append boot=casper integrity-check initrd=/casper/initrd.lz quiet splash --
label memtest
menu label Test ^memory
kernel /install/mt86plus
label hd
menu label ^Boot from first hard disk
localboot 0x80

Now if I boot mint it finds the kernel and init ramdisk but eventually drops to a busybox with a message

(initramfs) Unable to find a medium containing a live file system

Thanks in advance for any help and suggestions

TaZMAn said...

Hi 4llf0rn0t,

Ugh! Mint. That distro gave me a fit when I added it to my 20 in 1.
I did everything by the book. But it decided to be temperamental within a multi-boot environment.

Have you tested the multi-boot disk you made in virtualbox? That is how I tested and it worked fine. But after it was released I had reports that it would not boot on certain pc's.

I'm one of them. When I made that disk, Mint worked on my pc. Since then I built a new one. Same brand of cpu and Nvidia video drivers as the old one.

It will not boot on my new pc.
Don't know why. Got the same busybox message as you.
I never took a good look at what was the cause of it but I believe it is an incompatibility in hardware or when Mint intrid loads, it places files in the wrong directory then fails to find the files when it needs them.

Does Ubuntu and Fedora boot without any errors?
Is Mint the only problem you are having?

Looking at your code, I don't see anything out of the ordinary. You may want to try the following just to rule out a conflict with Ubuntu.

Make a new Iso and test in VirtualBox or VMware. Take out Ubuntu. Put Mint in it's place with no modifications to initrd or casper. Write the sysconfig menu to point to Mint.
Test it out.

If Mint still won't boot then you may want to try talking with some of the Mint developers. If it does boot, try modifying Ubuntu as the secondary 'Buntu distro.

Good luck and keep me advised.

Anonymous said...

testing...comments are not posting

4llf0rn0t said...

Hi Taz.
I tried your suggestion of using Mint as base and everything's working now.

Some things that I don't understand:
If I make an iso without changes to directory structure and initrd.lz/casper

multiboot
|-- autorun.inf
|-- casper
| |-- filesystem.manifest
| |-- filesystem.manifest-desktop
| |-- filesystem.size
| |-- filesystem.squashfs
| |-- initrd.lz
| `-- vmlinuz
|-- isolinux
|-- md5sum.txt
|-- mint4win.exe
`-- preseed

the resulting iso (either mint or ubuntu) using genisoimage when tested in VBox drops off to busybox.
Isn't this essentially building an iso comparable to the original Mint iso?

On the other hand if I use prefixing with directories and modifications to isolinux.cfg, initrd.lz/casper

multiboot
|-- isolinux <-- isolinux from mint
|-- mint
| |-- autorun.inf
| |-- casper
| | |-- filesystem.manifest
| | |-- filesystem.manifest-desktop
| | |-- filesystem.size
| | |-- filesystem.squashfs
| | |-- init
| | |-- initrd.lz
| | `-- vmlinuz
| |-- md5sum.txt
| |-- mint4win.exe
`-- preseed

mint and ubuntu iso's boot properly.

Many thanks to you Taz.

TaZMAn said...

Hi 4llf0rn0t,

There have been many changes to Ubuntu and Mint since I have built my ISO.
But it seems that if you make certain changes like you first did, there is a file or files that are being missed during boot up.

But by using isolinux.cfg to change the location of where everything is stored it makes sure that the kernel grabs all the files it needs.

I have to look into this further.
Sorry if the above isn't making a lot of sense. Had a rough brain racking day at work.Need some good sleep. :-)

Glad you got it all working and glad I could steer you in the right direction.

Feels good to create your own multi-boot disk, doesn't it?
:-) :-)

4llf0rn0t said...

:)

Hope you have a good night's rest.
Thanks again taz.