Friday, October 23, 2009

How to create an Ubuntu All-in-one Live DVD

Get started by downloading all the desktop ISO images using Bittorrent.

I prefer to use the Terminal (Applications-Accessories-Terminal), and all below commands are to be entered in the Terminal. Since this is a slightly advanced topic, I assume that anyone trying this is familiar with the Terminal, paths, autocompletion, apt-get, etc.

Create a directory to hold your AIO (All-in-one) DVD structure, and copied the required files into it:

mkdir -p ~/ubuntuaio/isos
cp /downloads/cdimages/*buntu* ~/ubuntuaio/isos/

You will need Grub4dos; you can download it from here; (I used version 0.4.4, check all available versions here) extract the archive, and continue:

cp /downloads/grub4dos-0.4.4/grldr ~/ubuntuaio/

Create a suitable menu.lst file in the same directory which contains grldr; here's a sample below:

#start menu.lst

# This is a sample menu.lst file. You should make some changes to it.

timeout 30
default /default

title Ubuntu LiveCD
find --set-root /isos/ubuntu-9.04-desktop-i386.iso
map /isos/ubuntu-9.04-desktop-i386.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=/isos/ubuntu-9.04-desktop-i386.iso quiet splash --
initrd /casper/initrd.gz

title Kubuntu LiveCD
find --set-root /isos/kubuntu-9.04-desktop-i386.iso
map /isos/kubuntu-9.04-desktop-i386.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=/isos/kubuntu-9.04-desktop-i386.iso quiet splash --
initrd /casper/initrd.gz

title Xubuntu LiveCD
find --set-root /isos/xubuntu-9.04-desktop-i386.iso
map /isos/xubuntu-9.04-desktop-i386.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=/isos/xubuntu-9.04-desktop-i386.iso quiet splash --
initrd /casper/initrd.gz

title MythBuntu LiveCD
find --set-root /isos/mythbuntu-9.04-desktop-i386.iso
map /isos/mythbuntu-9.04-desktop-i386.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=/isos/mythbuntu-9.04-desktop-i386.iso quiet splash --
initrd /casper/initrd.gz

title commandline

#end menu.lst

You are now ready to create a DVD image. Ensure that you have enough free space left (approx 0.7GB per live CD included in your AIOLiveDVD / upto 9GB if you plan to use dvdisaster as outlined below). Give the command

cd ~
mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o ubuntuaio.iso ubuntuaio/

This will create an ubuntuaio.iso DVD image in your home directory that can be burnt to any DVD+/-R/W.
One additional (optional) step: If you have more than 25% free space on your DVD, use dvdisaster to fill up the blank space in the DVD with ECC/RS02 (Error Correction Codec / Embedded ECC) so that your DVD can be read even with slight scratches on the surface:

dvdisaster -i ubuntuaio.iso -mRS02 -c

The ubuntuaio.iso image is now ready! You can test it out in virtual box, or by burning it on a rewriteable DVD.


nakul said...

i have been trying this for months but was not able to find help,just changed my menu.lst file acc to here hope it works

nakul said...

no success. i got error 60:the file should be in one contiguous area

i m using usb and my usb is already setup to multiboot with hirens,knoppix,puppy linux, all are working fine except for ubuntu now. i modified the menu.lst and my iso is in /bootUbuntu folder my usb drive but no success.

Alex Moldovan said...

Thanks for sharing. In managed to create a multiboot DVD following your guide but onlu with live-cd verios of Ubuntu. When I try to add alternate iso versions of ubuntu, it boots but it says that no cd-rom is detected. I could give you the menu.lst I use if you could take a look at it and tell me what you think.