Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so dont bother with any of their useless mail servers here and just use oauth login instead. Thank the nice Russians for causing that. :)
Paste
Pasted as Bash by ratte ( 15 years ago )
#!/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
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 <<FOO
#define DISKNAME $LIVECDLABEL
#define TYPE binary
#define TYPEbinary 1
#define ARCH $ARCH
#define ARCH$ARCH 1
#define DISKNUM 1
#define DISKNUM1 1
#define TOTALNUM 0
#define TOTALNUM0 1
FOO
cp $WORKDIR/ISOTMP/README.diskdefines $WORKDIR/ISOTMP/casper/README.diskdefines
sleep 1
# Step 4 - Make the filesystem.manifest and filesystem.manifest-desktop
echo "Creating filesystem.manifest and filesystem.manifest-desktop"
dpkg-query -W --showformat='${Package} ${Version}\\n'
> $WORKDIR/ISOTMP/casper/filesystem.manifest
cp $WORKDIR/ISOTMP/casper/filesystem.manifest $WORKDIR/ISOTMP/casper/filesystem.manifest-desktop
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
Revise this Paste