#!/bin/bash # remastersys script to make an installable livecd/dvd from an (XK)Ubuntu installed # and customized system # # # Created by Tony "Fragadelic" Brijeski # # Copyright 2007,2008 Under the GNU GPL2 License # # Originally Created February 12th, 2007 # # # # This version is only for grub2 based Ubuntu's and variants like Karmic 9.10 and up # # # checking to make sure script is running with root privileges . /etc/remastersys/remastersys.version testroot="`whoami`" if [ "$testroot" != "root" ]; then echo "Usage of remastersys $REMASTERSYSVERSION is as follows:" echo " " echo " sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso]" echo " " echo " " echo "Examples:" echo " " echo " sudo remastersys backup (to make a livecd/dvd backup of your system)" echo " " echo " sudo remastersys backup custom.iso" echo " (to make a livecd/dvd backup and call the iso custom.iso)" echo " " echo " sudo remastersys clean (to clean up temporary files of remastersys)" echo " " echo " sudo remastersys dist (to make a distributable livecd/dvd of your system)" echo " " echo " sudo remastersys dist cdfs" echo " (to make a distributable livecd/dvd filesystem only)" echo " " echo " sudo remastersys dist iso custom.iso" echo " (to make a distributable iso named custom.iso but only" echo " if the cdfs is already present)" echo " " echo " cdfs and iso options should only be used if you wish to modify something on the" echo " cd before the iso is created. An example of this would be to modify the isolinux" echo " portion of the livecd/dvd" echo " " exit 1 fi # load the remastersys.conf file . /etc/remastersys.conf # if the remastersys.conf file is incorrect or missing, make sure to set defaults if [ "$LIVEUSER" = "" ]; then #Somebody must have removed the username from the configuration file echo #this is a custom live user LIVEUSER="custom" fi #make sure live user is all lowercase LIVEUSER="`echo $LIVEUSER | awk '{print tolower ($0)}'`" if [ "$WORKDIR" = "" ]; then WORKDIR="/home/remastersys/remastersys" else WORKDIR="$WORKDIR/remastersys" fi if [ "$LIVECDLABEL" = "" ]; then LIVECDLABEL="Custom Live CD" fi #if [ "$CDBOOTTYPE" != "GRUB" ]; then CDBOOTTYPE="ISOLINUX" #fi if [ "$LIVECDURL" = "" ]; then LIVECDURL="http://www.geekconnection.org/remastersys" fi if [ "$2" = "cdfs" ]; then echo "Creating the cd filesystem only" elif [ "$2" = "iso" ]; then echo "Creating the iso file only" elif [ "$2" = "" ]; then echo " " else CUSTOMISO="$2" fi if [ "$3" != "" ]; then CUSTOMISO="$3" fi if [ "$CUSTOMISO" = "" ]; then CUSTOMISO="custom$1.iso" fi case $1 in backup) echo "System Backup Mode Selected" ;; clean) echo "Removing the build directory now..." rm -rf $WORKDIR echo "Done...Exiting" exit 0 ;; dist) echo "Distribution Mode Selected" ;; *) echo "Usage of remastersys $REMASTERSYSVERSION is as follows:" echo " " echo " sudo remastersys backup|clean|dist [cdfs|iso] [filename.iso]" echo " " echo " " echo "Examples:" echo " " echo " sudo remastersys backup (to make a livecd/dvd backup of your system)" echo " " echo " sudo remastersys backup custom.iso" echo " (to make a livecd/dvd backup and call the iso custom.iso)" echo " " echo " sudo remastersys clean (to clean up temporary files of remastersys)" echo " " echo " sudo remastersys dist (to make a distributable livecd/dvd of your system)" echo " " echo " sudo remastersys dist cdfs" echo " (to make a distributable livecd/dvd filesystem only)" echo " " echo " sudo remastersys dist iso custom.iso" echo " (to make a distributable iso named custom.iso but only" echo " if the cdfs is already present)" echo " " echo " cdfs and iso options should only be used if you wish to modify something on the" echo " cd before the iso is created. An example of this would be to modify the isolinux" echo " portion of the livecd/dvd" echo " " exit 1 ;; esac cdfs (){ #removing popularity-contest as it causes a problem when installing with ubiquity apt-get -y -q remove popularity-contest # check whether system is gnome or kde based to load the correct ubiquity frontend if [ "`cat /etc/X11/default-display-manager`" = "/usr/bin/kdm" ]; then apt-get -y -q install ubiquity-frontend-kde apt-get -y -q remove ubiquity-frontend-gtk else apt-get -y -q install ubiquity-frontend-gtk apt-get -y -q remove ubiquity-frontend-kde apt-get -y -q install metacity fi # prevent the installer from changing the apt sources.list if [ ! -f "/usr/share/ubiquity/apt-setup.saved" ]; then cp /usr/share/ubiquity/apt-setup /usr/share/ubiquity/apt-setup.saved fi sleep 1 # Step 3 - Create the CD tree in $WORKDIR/ISOTMP echo "Checking if the $WORKDIR folder has been created" if [ -d "$WORKDIR" ]; then rm -rf $WORKDIR/dummysys/var/* rm -rf $WORKDIR/dummysys/etc/* rm -rf $WORKDIR/ISOTMP/isolinux rm -rf $WORKDIR/ISOTMP/grub rm -rf $WORKDIR/ISOTMP/.disk else mkdir -p $WORKDIR/ISOTMP/casper mkdir -p $WORKDIR/ISOTMP/preseed mkdir -p $WORKDIR/dummysys/dev mkdir -p $WORKDIR/dummysys/etc mkdir -p $WORKDIR/dummysys/proc mkdir -p $WORKDIR/dummysys/tmp mkdir -p $WORKDIR/dummysys/sys mkdir -p $WORKDIR/dummysys/mnt mkdir -p $WORKDIR/dummysys/media/cdrom mkdir -p $WORKDIR/dummysys/var chmod ug+rwx,o+rwt $WORKDIR/dummysys/tmp fi mkdir -p $WORKDIR/ISOTMP/isolinux mkdir -p $WORKDIR/ISOTMP/.disk echo "Copying /var and /etc to temp area and excluding extra files" if [ "$EXCLUDES" != "" ]; then for addvar in $EXCLUDES ; do VAREXCLUDES="$VAREXCLUDES --exclude='$addvar' " done fi rsync --exclude='*.log.*' --exclude='*.pid' --exclude='*.bak' --exclude='*.[0-9].gz' --exclude='*.deb' $VAREXCLUDES-a /var/. $WORKDIR/dummysys/var/. rsync $VAREXCLUDES-a /etc/. $WORKDIR/dummysys/etc/. rm -rf $WORKDIR/dummysys/etc/X11/xorg.conf* rm -rf $WORKDIR/dummysys/etc/resolv.conf rm -rf $WORKDIR/dummysys/etc/hosts rm -rf $WORKDIR/dummysys/etc/hostname rm -rf $WORKDIR/dummysys/etc/timezone rm -rf $WORKDIR/dummysys/etc/mtab rm -rf $WORKDIR/dummysys/etc/fstab rm -rf $WORKDIR/dummysys/etc/udev/rules.d/70-persistent* rm -rf $WORKDIR/dummysys/etc/cups/ssl/server.crt rm -rf $WORKDIR/dummysys/etc/cups/ssl/server.key rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_rsa_key rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_dsa_key.pub rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_dsa_key rm -rf $WORKDIR/dummysys/etc/ssh/ssh_host_rsa_key.pub rm -rf $WORKDIR/dummysys/etc/gdm/gdm.conf-custom rm -rf $WORKDIR/dummysys/etc/gdm/custom.conf rm -rf $WORKDIR/dummysys/etc/skel/.config/user-dirs.dirs rm -rf $WORKDIR/dummysys/etc/skel/.config/users-dirs.locale ls $WORKDIR/dummysys/var/lib/apt/lists | grep -v ".gpg" | grep -v "lock" | grep -v "partial" | xargs -i rm $WORKDIR/dummysys/var/lib/apt/lists/{} ; if [ "$1" = "dist" ]; then echo " " > $WORKDIR/dummysys/etc/gdm/gdm.conf-custom rm -rf $WORKDIR/dummysys/etc/group rm -rf $WORKDIR/dummysys/etc/passwd rm -rf $WORKDIR/dummysys/etc/shadow rm -rf $WORKDIR/dummysys/etc/shadow- rm -rf $WORKDIR/dummysys/etc/gshadow rm -rf $WORKDIR/dummysys/etc/gshadow- rm -rf $WORKDIR/dummysys/etc/wicd/wired-settings.conf rm -rf $WORKDIR/dummysys/etc/wicd/wireless-settings.conf ls $WORKDIR/dummysys/etc/NetworkManager/system-connections | xargs -i rm $WORKDIR/dummysys/etc/NetworkManager/system-connections/{} ; rm -rf $WORKDIR/dummysys/etc/printcap rm -rf $WORKDIR/dummysys/etc/cups/printers.conf touch $WORKDIR/dummysys/etc/printcap touch $WORKDIR/dummysys/etc/cups/printers.conf find $WORKDIR/dummysys/var/run $WORKDIR/dummysys/var/log $WORKDIR/dummysys/var/mail $WORKDIR/dummysys/var/spool $WORKDIR/dummysys/var/lock $WORKDIR/dummysys/var/backups $WORKDIR/dummysys/var/tmp $WORKDIR/dummysys/var/crash $WORKDIR/dummysys/var/lib/ubiquity -type f -exec rm {} \; for i in dpkg.log lastlog mail.log syslog auth.log daemon.log faillog lpr.log mail.warn user.log boot debug mail.err messages wtmp bootstrap.log dmesg kern.log mail.info do touch $WORKDIR/dummysys/var/log/${i} done # remove the non system users on the passwd and group files and copy them to dummysys # see if any temp users left over from previous versions of remastersys as the process has now changed grep '^[^:]*:[^:]*:[5-9][0-9][0-9]:' /etc/passwd | awk -F ":" '{print "/usr/sbin/userdel -f",$1}'> $WORKDIR/cleantmpusers . $WORKDIR/cleantmpusers grep '^[^:]*:[^:]*:[0-9]:' /etc/passwd >> $WORKDIR/dummysys/etc/passwd grep '^[^:]*:[^:]*:[0-9][0-9]:' /etc/passwd >> $WORKDIR/dummysys/etc/passwd grep '^[^:]*:[^:]*:[0-9][0-9][0-9]:' /etc/passwd >> $WORKDIR/dummysys/etc/passwd grep '^[^:]*:[^:]*:[3-9][0-9][0-9][0-9][0-9]:' /etc/passwd >> $WORKDIR/dummysys/etc/passwd grep '^[^:]*:[^:]*:[0-9]:' /etc/group >> $WORKDIR/dummysys/etc/group grep '^[^:]*:[^:]*:[0-9][0-9]:' /etc/group >> $WORKDIR/dummysys/etc/group grep '^[^:]*:[^:]*:[0-9][0-9][0-9]:' /etc/group >> $WORKDIR/dummysys/etc/group grep '^[^:]*:[^:]*:[3-9][0-9][0-9][0-9][0-9]:' /etc/group >> $WORKDIR/dummysys/etc/group grep '^[^:]*:[^:]*:[5-9][0-9][0-9]:' /etc/passwd | awk -F ":" '{print $1}'> $WORKDIR/tmpusers1 grep '^[^:]*:[^:]*:[1-9][0-9][0-9][0-9]:' /etc/passwd | awk -F ":" '{print $1}'> $WORKDIR/tmpusers2 grep '^[^:]*:[^:]*:[1-2][0-9][0-9][0-9][0-9]:' /etc/passwd | awk -F ":" '{print $1}'> $WORKDIR/tmpusers3 cat $WORKDIR/tmpusers1 $WORKDIR/tmpusers2 $WORKDIR/tmpusers3 > $WORKDIR/tmpusers cat $WORKDIR/tmpusers | while read LINE ;do echo $LINE | xargs -i sed -e 's/,{}//g' $WORKDIR/dummysys/etc/group > $WORKDIR/dummysys/etc/group.new1 echo $LINE | xargs -i sed -e 's/{},//g' $WORKDIR/dummysys/etc/group.new1 > $WORKDIR/dummysys/etc/group.new2 echo $LINE | xargs -i sed -e 's/{}//g' $WORKDIR/dummysys/etc/group.new2 > $WORKDIR/dummysys/etc/group rm -rf $WORKDIR/dummysys/etc/group.new1 $WORKDIR/dummysys/etc/group.new2 done fi # make sure the adduser and autologin functions of casper as set according to the mode [ "$1" = "dist" ] && [ ! -d $WORKDIR/dummysys/home ] && mkdir $WORKDIR/dummysys/home [ "$1" = "dist" ] && chmod 755 /usr/share/initramfs-tools/scripts/casper-bottom/*adduser /usr/share/initramfs-tools/scripts/casper-bottom/*autologin [ "$1" = "backup" ] && [ -d $WORKDIR/dummysys/home ] && rm -rf $WORKDIR/dummysys/home [ "$1" = "backup" ] && chmod 644 /usr/share/initramfs-tools/scripts/casper-bottom/*adduser /usr/share/initramfs-tools/scripts/casper-bottom/*autologin # copy over some of the necessary stuff for the livecd #copy any preseed files cp /etc/remastersys/preseed/* $WORKDIR/ISOTMP/preseed/ #BOOT Type is isolinux cp /boot/memtest86+.bin $WORKDIR/ISOTMP/isolinux/memtest # check and see if they have a custom isolinux already setup. eg. they copied over the isolinux folder from their original livecd or made a custom one for their distro if [ ! -f /etc/remastersys/customisolinux/isolinux.cfg ]; then find /usr -name 'isolinux.bin' -exec cp {} $WORKDIR/ISOTMP/isolinux/ \; find /usr -name 'vesamenu.c32' -exec cp {} $WORKDIR/ISOTMP/isolinux/ \; # setup isolinux for the livecd VERSION=`lsb_release -r | awk '{print $2}' | awk -F "." '{print $1}'` sed -e 's/__LIVECDLABEL__/'"$LIVECDLABEL"'/g' /etc/remastersys/isolinux/isolinux.cfg.vesamenu > $WORKDIR/ISOTMP/isolinux/isolinux.cfg cp /etc/remastersys/isolinux/splash.png $WORKDIR/ISOTMP/isolinux/splash.png else cp /etc/remastersys/customisolinux/* $WORKDIR/ISOTMP/isolinux/ fi ARCH=`archdetect | awk -F "/" '{print $1}'` cat > $WORKDIR/ISOTMP/README.diskdefines < $WORKDIR/ISOTMP/casper/filesystem.manifest cp $WORKDIR/ISOTMP/casper/filesystem.manifest $WORKDIR/ISOTMP/casper/filesystem.manifest-desktop REMOVE='remastersys ubiquity ubiquity-frontend-gtk ubiquity-frontend-kde casper lupin-casper live-initramfs user-setup discover1 xresprobe os-prober libdebian-installer4' for i in $REMOVE do sudo sed -i "/${i}/d" $WORKDIR/ISOTMP/casper/filesystem.manifest-desktop done sleep 1 # Step 5 - Prepare casper.conf depending on whether this is a backup or dist if [ "$1" = "backup" ]; then LIVEUSER="`grep '^[^:]*:[^:]*:1000:' /etc/passwd | awk -F ":" '{ print $1 }'`" fi echo "# This file should go in /etc/casper.conf" > /etc/casper.conf echo "# Supported variables are:" >> /etc/casper.conf echo "# USERNAME, USERFULLNAME, HOST, BUILD_SYSTEM" >> /etc/casper.conf echo " " >> /etc/casper.conf echo "export USERNAME=\"$LIVEUSER\"" >> /etc/casper.conf echo "export USERFULLNAME=\"Live session user\"" >> /etc/casper.conf echo "export HOST=\"$LIVEUSER\"" >> /etc/casper.conf echo "export BUILD_SYSTEM=\"Ubuntu\"" >> /etc/casper.conf cp /etc/casper.conf $WORKDIR/dummysys/etc/ sleep 1 # if the mode is dist then renumber the uid's for any user with a uid greater than 1000 # and make the passwdrestore file so the uid's are restored before the script finishes # if this is not done, the livecd user will not be created properly if [ "$1" = "dist" ]; then # make sure user-setup-apply is present in case backup mode was last used if [ -f /usr/lib/ubiquity/user-setup/user-setup-apply.orig ]; then cp /usr/lib/ubiquity/user-setup/user-setup-apply.orig /usr/lib/ubiquity/user-setup/user-setup-apply fi else # since this is backup mode, prevent user-setup-apply from running during install if [ ! -f /usr/lib/ubiquity/user-setup/user-setup-apply.orig ]; then mv /usr/lib/ubiquity/user-setup/user-setup-apply /usr/lib/ubiquity/user-setup/user-setup-apply.orig fi echo "exit 0"> /usr/lib/ubiquity/user-setup/user-setup-apply chmod 755 /usr/lib/ubiquity/user-setup/user-setup-apply # copy the install icon to the sudo users desktop cp `find /usr -name ubiquity*.desktop` /home/`grep '^[^:]*:[^:]*:1000:' /etc/passwd | awk -F ":" '{ print $1 }'`/Desktop fi sleep 1 echo "Setting up casper and ubiquity options for $1 mode" rm -f /usr/share/ubiquity/apt-setup echo "#do nothing" > /usr/share/ubiquity/apt-setup chmod 755 /usr/share/ubiquity/apt-setup # make a new initial ramdisk including the casper scripts mkinitramfs -o /boot/initrd.img-`uname -r` `uname -r` echo "Copying your kernel and initrd for the livecd" cp /boot/vmlinuz-`uname -r` $WORKDIR/ISOTMP/casper/vmlinuz cp /boot/initrd.img-`uname -r` $WORKDIR/ISOTMP/casper/initrd.gz # Step 6 - Make filesystem.squashfs if [ -f $WORKDIR/remastersys.log ]; then rm -f $WORKDIR/remastersys.log touch $WORKDIR/remastersys.log fi if [ -f $WORKDIR/ISOTMP/casper/filesystem.squashfs ]; then rm -f $WORKDIR/ISOTMP/casper/filesystem.squashfs fi echo "Creating filesystem.squashfs ... this will take a while so be patient" SQUASHFSOPTSHIGH="-no-recovery -always-use-fragments" echo "Adding stage 1 files/folders that the livecd requires." # add the blank folders and trimmed down /var to the cd filesystem mksquashfs $WORKDIR/dummysys/ $WORKDIR/ISOTMP/casper/filesystem.squashfs -b 1M -no-duplicates $SQUASHFSOPTSHIGH 2>>$WORKDIR/remastersys.log sleep 1 echo "Adding stage 2 files/folders that the livecd requires." # add the rest of the system depending on the mode selected if [ "$1" = "backup" ]; then mksquashfs / $WORKDIR/ISOTMP/casper/filesystem.squashfs -b 1M -no-duplicates $SQUASHFSOPTSHIGH -e \ .thumbnails \ .cache \ .bash_history \ Cache \ boot/grub \ dev \ etc \ media \ mnt \ proc \ sys \ tmp \ var \ $WORKDIR $EXCLUDES 2>>$WORKDIR/remastersys.log else mksquashfs / $WORKDIR/ISOTMP/casper/filesystem.squashfs -b 1M -no-duplicates $SQUASHFSOPTSHIGH -e \ .thumbnails \ .cache \ .bash_history \ Cache \ boot/grub \ dev \ etc \ home \ media \ mnt \ proc \ sys \ tmp \ var \ $WORKDIR $EXCLUDES 2>>$WORKDIR/remastersys.log fi sleep 1 #add some stuff the log in case of problems so I can troubleshoot it easier echo "------------------------------------------------------" >>$WORKDIR/remastersys.log echo "Mount information" >>$WORKDIR/remastersys.log mount >>$WORKDIR/remastersys.log echo "------------------------------------------------------" >>$WORKDIR/remastersys.log echo "Casper Script info" >>$WORKDIR/remastersys.log ls -l /usr/share/initramfs-tools/scripts/casper-bottom/ >>$WORKDIR/remastersys.log echo "------------------------------------------------------" >>$WORKDIR/remastersys.log echo "/etc/remastersys.conf info" >>$WORKDIR/remastersys.log cat /etc/remastersys.conf >>$WORKDIR/remastersys.log echo "------------------------------------------------------" >>$WORKDIR/remastersys.log echo "/etc/casper.conf info" >>$WORKDIR/remastersys.log cat /etc/casper.conf >>$WORKDIR/remastersys.log echo "------------------------------------------------------" >>$WORKDIR/remastersys.log echo "/etc/passwd info" >>$WORKDIR/remastersys.log cat $WORKDIR/dummysys/etc/passwd >>$WORKDIR/remastersys.log echo "------------------------------------------------------" >>$WORKDIR/remastersys.log echo "/etc/group info" >>$WORKDIR/remastersys.log cat $WORKDIR/dummysys/etc/group >>$WORKDIR/remastersys.log echo "------------------------------------------------------" >>$WORKDIR/remastersys.log echo "Command-line options = $@" >>$WORKDIR/remastersys.log echo "------------------------------------------------------" >>$WORKDIR/remastersys.log # cleanup the install icons as they aren't needed on the current system if [ "$1" = "backup" ]; then rm -rf /home/`grep '^[^:]*:[^:]*:1000:' /etc/passwd | awk -F ":" '{ print $1 }'`/Desktop/ubiquity*.desktop fi sleep 1 #checking the size of the compressed filesystem to ensure it meets the iso9660 spec for a single file" SQUASHFSSIZE=`ls -s $WORKDIR/ISOTMP/casper/filesystem.squashfs | awk -F " " '{print $1}'` if [ "$SQUASHFSSIZE" -gt "3999999" ]; then echo " The compressed filesystem is larger than the iso9660 specification allows for a single file. You must try to reduce the amount of data you are backing up and try again." echo " The compressed filesystem is larger than the iso9660 specification allows for a single file. You must try to reduce the amount of data you are backing up and try again.">>$WORKDIR/remastersys.log exit 1 fi #add filesystem size for lucid echo " Calculating the installed filesystem size for the installer" echo " Calculating the installed filesystem size for the installer">>$WORKDIR/remastersys.log unsquashfs -lls $WORKDIR/ISOTMP/casper/filesystem.squashfs | grep -v " inodes " | grep -v "unsquashfs:" | awk '{print $3}' | grep -v "," > /tmp/size.tmp for i in `cat /tmp/size.tmp`; do a=$(($a+$i)); done echo $a > $WORKDIR/ISOTMP/casper/filesystem.size } iso (){ CREATEISO="`which mkisofs`" if [ "$CREATEISO" = "" ]; then CREATEISO="`which genisoimage`" fi # check to see if the cd filesystem exists if [ ! -f "$WORKDIR/ISOTMP/casper/filesystem.squashfs" ]; then echo "The cd filesystem is missing. Either there was a problem creating the compressed filesystem or you are trying to run sudo remastersys dist iso before sudo remastersys dist cdfs" echo "The cd filesystem is missing. Either there was a problem creating the compressed filesystem or you are trying to run sudo remastersys dist iso before sudo remastersys dist cdfs" >>$WORKDIR/remastersys.log exit 1 fi #checking the size of the compressed filesystem to ensure it meets the iso9660 spec for a single file SQUASHFSSIZE=`ls -s $WORKDIR/ISOTMP/casper/filesystem.squashfs | awk -F " " '{print $1}'` if [ "$SQUASHFSSIZE" -gt "3999999" ]; then echo " The compressed filesystem is larger than the iso9660 specification allows for a single file. You must try to reduce the amount of data you are backing up and try again." echo " The compressed filesystem is larger than the iso9660 specification allows for a single file. You must try to reduce the amount of data you are backing up and try again.">>$WORKDIR/remastersys.log exit 1 fi #Step 6.5 - Added by Tim Farley. Make ISO compatible with Ubuntu Startup Disk Creator (Karmic). echo "Making disk compatible with Ubuntu Startup Disk Creator." touch $WORKDIR/ISOTMP/ubuntu touch $WORKDIR/ISOTMP/.disk/base_installable echo "full_cd/single" > $WORKDIR/ISOTMP/.disk/cd_type ARCH=`archdetect | awk -F "/" '{print $1}'` echo $LIVECDLABEL - Release $ARCH > $WORKDIR/ISOTMP/.disk/info echo $LIVECDURL > $WORKDIR/ISOTMP/.disk/release_notes_url # Step 7 - Make md5sum.txt for the files on the livecd - this is used during the # checking function of the livecd echo "Creating md5sum.txt for the livecd/dvd" cd $WORKDIR/ISOTMP && find . -type f -print0 | xargs -0 md5sum > md5sum.txt #isolinux mode # remove files that change and cause problems with checking the disk sed -e '/isolinux/d' md5sum.txt > md5sum.txt.new sed -e '/md5sum/d' md5sum.txt.new > md5sum.txt rm -f md5sum.txt.new sleep 1 # Step 8 - Make the ISO file echo "Creating $CUSTOMISO in $WORKDIR" $CREATEISO \ -quiet \ -r \ -V "$LIVECDLABEL" \ -cache-inodes \ -J \ -l \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot \ -boot-load-size 4 \ -boot-info-table \ -o $WORKDIR/$CUSTOMISO "$WORKDIR/ISOTMP" 2>>$WORKDIR/remastersys.log 1>>$WORKDIR/remastersys.log # create the md5 sum file so the user doesn't have to - this is good so the iso file can later be tested to ensure it hasn't become corrupted echo "Creating $CUSTOMISO.md5 in $WORKDIR" cd $WORKDIR md5sum $CUSTOMISO > $CUSTOMISO.md5 sleep 1 echo "$WORKDIR/$CUSTOMISO is ready to be burned or tested in a virtual machine." echo " " echo "Check the size and if it is larger than 700MB you will need to burn it to a dvd" echo " " ls -hs $WORKDIR/$CUSTOMISO echo " " echo "It is recommended to run 'sudo remastersys clean' once you have burned and tested the $CUSTOMISO" echo " " } # check to see if either iso or cdfs options have been invoked and proceed accordingly if [ "$2" = "iso" ]; then iso $@ elif [ "$2" = "cdfs" ]; then cdfs $@ else cdfs $@ iso $@ fi exit 0