The Process 1) Fetch a copy of Ubuntu's alternate install CD if you don't have one already. Do not get the Live CD (which is the default one). Unless you know otherwise you want to get the i386 version (since that's what all of the machines we've been donated so far require). 2) Extract the files from the ISO image to a directory, let's call it buntu (note: you can't use a graphical tool like Archive Manager to do this-- it'll appear to succeed; but, will create a corrupt CD later on-- you must perform this command as root) mount ubuntu-6.06.1-alternate-i386.iso ubuntu-iso/ -t iso9660,ro -o loop rsync -azvb --delete ubuntu-iso/ buntu/ 3) Change into directory buntu 4) Add to isolinux/isolinux.cfg directly before the LABEL install bit this (everything after append should be on the same line): LABEL forcause menu label Install Co^mputers for a Cause version kernel /install/vmlinuz append debian-installer/locale=en_US kbd-chooser/method=us netcfg/get_hostname=ubuntu debconf/priority=critical preseed/file/cdrom/preseed/cause.seed initrd=/install/initrd.gz ramdisk_size=16384 root=/dev/ram rw -- (this adds a new option to the menu when the install CD starts up titled Install Computers for a Cause version and specifies language and location information. It also tells the installer where to look for information about what installation options to pick and tells the installer not to ask about anything but critical decisions) 5) Copy the contents of cause.seed to a plain text file preseed/cause.seed 6) Optional If you'd like edit isolinux/splash.pcx to be a pretty custom startup screen. 7) Change back up a directory so you're in the directory above buntu 8) Generate a new CD image called NewCD.iso mkisofs \ -r \ -V "Ubuntu 6.06.1 i386" \ -cache-inodes \ -J \ -l \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot \ -boot-load-size 4 \ -boot-info-table \ -o ../NewCD.iso buntu/ 9) Voila! You now have a customized Ubuntu CD. Feel free to test it in VMWare or QEmu or to burn it to a physical CD.