Creating a Live GIS DISC from scratch

== By hand ==
* See also the LISAsoft-LiveCD process
=== How to make a Live GIS Disc from scratch ===
This document describes step by step how to generate an iso-image from an existing Ubuntu/Xubuntu installation.
Instead of entering each single step by hand, you can also download scripts here, that execute the commands.
Please note, that you probably have to adjust the scripts a bit to get them to work on your system.
This document and the scripts are based on:
* http://ubuntuforums.org/showthread.php?t=688872
* https://help.ubuntu.com/community/LiveCDCustomizationFromScratch
==== Steps to create the Live DVD ====
1. Install the current version of the Live DVD on your system or virtual machine or, in case you want to start from scratch, install a clean Ubuntu/Xubuntu.
2. Remove any applications your don't want to have on your Live DVD.
3. Install and configure all applications, data, examples, documentation you want to have on your Live DVD
4. Configure the system as you wish. (Please note, that existing user won't be used on the Live DVD. However, you can copy later everything you want in the Live DVD's user's home-directory from your current user's home.)
5. Adjust script iso.sh to your needs and execute it in your home-directory. Especially, add everything to the CONFIG variable, you want to have in the standard user's home-directory. Or run the following commands:
 
 export WORK=$HOME/work
 export CD=$HOME/cd
 export FORMAT=squashfs
 export FS_DIR=casper
 
 sudo mkdir -p ${CD}/${FS_DIR} ${CD}/boot/grub ${WORK}/rootfs
 sudo apt-get update
 sudo apt-get install mkisofs grub squashfs-tools
 sudo apt-get install linux-ubuntu-modules-$(uname -r)
 sudo apt-get clean
 
 sudo rsync -av --one-file-system --exclude=/proc/* --exclude=/dev/* \
 --exclude=/sys/* --exclude=/tmp/* --exclude=/home/* \
 --exclude=/lost+found --exclude=/mnt/* --exclude=/var/www/tmp/* \
 / ${WORK}/rootfs
 
 sudo cp -av /boot/* ${WORK}/rootfs/boot
 
 CONFIG='.config .bashrc'
 
 cd $HOME && for i in $CONFIG
 do
 sudo cp -rpv --parents $i ${WORK}/rootfs/etc/skel
 done
 
 sudo cp $HOME/scripts/inchroot.sh $WORK//rootfs/tmp/
 
 sudo mount -o bind /dev/ ${WORK}/rootfs/dev
 sudo mount -t proc proc ${WORK}/rootfs/proc
 sudo chroot ${WORK}/rootfs /bin/bash
	
You should be now in a chroot-environment.
	
6. Adjust and execute now the sript 'inchroot.sh', which should be located in '/tmp' of the chroot environment. Or execute the following commands:
 LANG=
 apt-get update
 apt-get install casper xresprobe 
 #apt-get ubiquity #optinal. Installs ubiquity
 depmod -a $(uname -r)
 update-initramfs -u -k $(uname -r)
 
 for i in /etc/hosts /etc/hostname /etc/resolv.conf /etc/timezone /etc/fstab /etc/mtab /etc/shadow /etc/shadow- /etc/gshadow /etc/gshadow- /etc/gdm/gdm-cdd.conf /etc/gdm/gdm.conf-custom /etc/X11/xorg.conf /boot/grub/menu.lst /boot/grub/device.map
 do
 rm $i
 done 2>/dev/null
 
 apt-get clean
 rm -r /tmp/* /root/* 2>/dev/null
 rm /boot/*.bak 2>/dev/null
 
 for i in `cat /etc/passwd | awk -F":" '{print $1}'`
 do
 uid=`cat /etc/passwd | grep "^${i}:" | awk -F":" '{print $3}'`
 [ "$uid" -gt "999" -a "$uid" -ne "65534" ] && userdel --force ${i} 2>/dev/null
 done
 
 find /var/run /var/log /var/mail /var/spool /var/lock \
 /var/backups /var/tmp -type f -exec rm {} \;
 
 [ -f "/etc/gdm/factory-gdm.conf" ] && \
 cp -f /etc/gdm/factory-gdm.conf /etc/gdm/gdm.conf 2>/dev/null
 
 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 /var/log/${i}
 done
7. Exit the chroot environment by entering 'exit'.
8. Adjust and execute the script 'iso2.sh'. Or enter the following commands:
 cd $HOME
 export WORK=$HOME/work
 export CD=$HOME/cd
 export FORMAT=squashfs
 export FS_DIR=casper
 export IMAGE_VERSION=1.0Beta1
 
 sudo cp -vp ${WORK}/rootfs/boot/vmlinuz-$(uname -r) ${CD}/casper/vmlinuz
 sudo cp -vp ${WORK}/rootfs/boot/initrd.img-$(uname -r) ${CD}/casper/initrd.gz
 
 # The following steps are only required, if ubiquity will be installed.
 #sudo chroot ${WORK}/rootfs dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee ${CD}/${FS_DIR}/filesystem.manifest
 #sudo cp -v ${CD}/${FS_DIR}/filesystem.manifest ${CD}/${FS_DIR}/filesystem.manifest-desktop
 #REMOVE='ubiquity casper user-setup discover1 xresprobe os-prober libdebian-installer4'
 #for i in $REMOVE 
 #do
 #	sudo sed -i "/${i}/d" ${CD}/${FS_DIR}/filesystem.manifest-desktop
 #done
 
 sudo umount ${WORK}/rootfs/proc
 sudo umount ${WORK}/rootfs/sys
 sudo umount ${WORK}/rootfs/dev
 
 sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT} -noappend -no-duplicates
 
 sudo cp -rf /mnt/ralph/save/add2cd/* ${CD}/
 sudo rm -rf ${CD}/boot
 
 cd $CD && find . -type f -print0 | xargs -0 sudo md5sum | sudo tee ${CD}/md5sum.txt
 sudo mkisofs -r -V "Arramagong_v$IMAGE_VERSION" -cache-inodes \
 -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
 -boot-load-size 4 -boot-info-table -o $HOME/Arramagong_v$IMAGE_VERSION.iso .
	
9. Run the script "test.sh", or enter the following commands:
 cd $HOME
 export WORK=$HOME/work
 export CD=$HOME/cd
 export FORMAT=squashfs
 export FS_DIR=casper
 export IMAGE_VERSION=1.0Beta1
 
 sudo mkdir /tmp/livecd
 sudo mount -o loop ~/Arramagong_v$IMAGE_VERSION.iso /tmp/livecd
 cd /tmp/livecd
 sudo md5sum -c md5sum.txt
	
If the sript finds any errors, adjust and run the script 'repair.sh' or the following commands:
	
 cd $HOME
 export WORK=$HOME/work
 export CD=$HOME/cd
 export FORMAT=squashfs
 export FS_DIR=casper
 export IMAGE_VERSION=1.0Beta1
 
 sudo rm cd/md5sum.txt
 cd $CD && find . -type f -print0 | xargs -0 sudo md5sum | sudo tee ${CD}/md5sum.txt
 sudo mkisofs -r -V "Arramagong_v$IMAGE_VERSION" -cache-inodes \
 -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
 -boot-load-size 4 -boot-info-table -o $HOME/Arramagong_v$IMAGE_VERSION.iso .
== Using Remastersys ==
* see http://www.howtoforge.com/ubuntu-linux-mint-livecd-with-remastersys
== Using live-helper ==
* see http://wiki.debian.org/DebianLive
* and http://wiki.debian.org/DebianGis/LiveImages
* and http://lists.osgeo.org/pipermail/live-demo/2009-April/000088.html
Category: Live-demo