#!/bin/sh # written by Nick Hudson nick.hudson@gmail.com # This will make it so that you can remaster a already # made live cd filesystem set -x . config.conf export REMOVELIST export ADDLIST #set -x # Checking for root and squashfs support [ `id -u` -eq 0 ] || error you must be root. [ `lsmod |grep squashfs |awk '{print $3}'` -eq 0 ] || error Try installing squashfs modprobe squashfs banner Mounting Live CD File System umount ${WORK}/new mount -o loop ${WORK}/ubuntu-fs.ext2 ${WORK}/new # chrooting into new system banner Moving into a chroot cp /etc/resolv.conf ${WORK}/new/etc/resolv.conf mount -t proc -o bind /proc ${WORK}/new/proc # Updating new chroot ${CHROOT} apt-get update banner Removing packages not needed ${CHROOT} apt-get -y remove ${REMOVELIST} #${CHROOT} apt-get -y --quiet upgrade banner Adding packages we want ${CHROOT} apt-get -y --quiet install ${ADDLIST} #${CHROOT} dpkg -i -R /var/cache/apt/archives/ 1>&2 2>/dev/null ${CHROOT} apt-get clean ${CHROOT} apt-get autoclean ${CHROOT} dpkg-query -W --showformat='${Package} ${Version}\n' > ${WORK}/${LIVENAME}/casper/filesystem.manifest sudo umount ${WORK}/new/proc sudo rm ${WORK}/new/etc/resolv.conf # Add branding to image banner Branding Live CD # Splash screen branding cp ${BRAND}/gnome-splash1.png ${WORK}/new/usr/share/pixmaps/splash/ ${CHROOT} gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set /apps/gnome-session/options/splash_image "/usr/share/pixmaps/splash/gnome-splash1.png" # Background branding #rm -fr ${WORK}/new/usr/share/backgrounds/ cp ${BRAND}/gnome-background.jpg ${WORK}/new/usr/share/backgrounds/ ${CHROOT} chmod 777 /usr/share/backgrounds/gnome-background.jpg ${CHROOT} gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set /desktop/gnome/background/picture_filename "/usr/share/backgrounds/gnome-background.jpg" # Setting "foot" icon in Gnome Panel cp ${BRAND}/balu-foot.png ${WORK}/new/usr/share/pixmaps/ for i in `find ${WORK}/new/usr/share -name distributor-logo.png`; do cp $i $i.bak ; cp ${WORK}/new/usr/share/pixmaps/balu-foot.png $i; done for i in `find ${WORK}/new/usr/share -name start-here.png`; do cp $i $i.bak ; cp ${WORK}/new/usr/share/pixmaps/balu-foot.png $i; done for i in `find ${WORK}/new/usr/share -name distributor*.svg`; do cp $i $i.bak cp ${BRAND}/balu-foot.svg $i; done # Set up a different Theme #${CHROOT} gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set /desktop/gnome/interface/gtk_theme "IndustrialTango" #${CHROOT} gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set /desktop/gnome/interface/icon_theme "Tango" # Home branding cp -r ${BRAND}/home ${WORK}/new/home/ubuntu cp ${BRAND}/bookmarks.html ${WORK}/new/etc/firefox/profile/ # Branding grub menu cp ${BRAND}/splash.pcx ${LIVENAME}/isolinux/splash.pcx cp ${BRAND}/isolinux.txt ${LIVENAME}/isolinux/isolinux.txt cp ${BRAND}/isolinux.cfg ${LIVENAME}/isolinux/isolinux.cfg # Setting perms for user ${CHROOT} chown -R 999:999 /home/ubuntu # Clear free disk space banner Clearing disk space dd if=/dev/zero of=${WORK}/new/dummyfile rm ${WORK}/new/dummyfile # Build compressed fs - Go get some [beer,coffee,tea] banner Building compressed fs rm ${WORK}/${LIVENAME}/casper/filesystem.squashfs cd ${WORK}/new mksquashfs . ${WORK}/${LIVENAME}/casper/filesystem.squashfs banner Unmounting live fs cd ${WORK} umount ${WORK}/new # Crate new Live CD banner Creating new Live CD cd ${WORK}/${LIVENAME} find . -type f -print0 | xargs -0 md5sum | tee md5sum.txt # Now build ISO banner Building ISO image cd ${WORK} mkisofs -o balu-livecd-`date +%F`.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -V "BALUG Live Linux CD" -cache-inodes -J -l ${WORK}/${LIVENAME} echo "Burn ${WORK}/balu-livecd-`date +%F`.iso or run it in qemu or vmware" echo "To run in qemu do this: qemu -cdrom cdname.iso -boot -d"