#!/bin/sh

# Set up variables

dir_rw=/rw
dir_ro=/ro

# Source functions

source /etc/rc.d/init.d/functions

case "$1" in
  start)
          
# Mount temporary files on $dir_rw

    echo "Mounting tmpfs on $dir_rw..."
    mount -t tmpfs tmpfs $dir_rw
    evaluate_retval
    sleep 1
    
# Create essential dirs in dir_rw

    mkdir -v $dir_rw/{dev,etc,home,media,mnt}
    mkdir -v $dir_rw/{opt,root,srv,tmp,usr,var}
# If you have some other dirs in $LIVECD/ like sources
# Add them to that list, eg: mkdir -v $dir_rw/sources
    
mount -n -t squashfs root.sqsh ro -o loop
mount -t unionfs -o dirs=$dir_rw/etc=rw:$dir_ro/etc=ro unionfs etc
mount -t unionfs -o dirs=$dir_rw/usr=rw:$dir_ro/usr=ro unionfs usr
mount -t unionfs -o dirs=$dir_rw/tmp=rw:$dir_ro/tmp=ro unionfs tmp
mount -t unionfs -o dirs=$dir_rw/var=rw:$dir_ro/var=ro unionfs var
mount -t unionfs -o dirs=$dir_rw/dev=rw:$dir_ro/dev=ro unionfs dev
mount -t unionfs -o dirs=$dir_rw/home=rw:$dir_ro/home=ro unionfs home
mount -t unionfs -o dirs=$dir_rw/media=rw:$dir_ro/media=ro unionfs media
mount -t unionfs -o dirs=$dir_rw/mnt=rw:$dir_ro/mnt=ro unionfs mnt
mount -t unionfs -o dirs=$dir_rw/opt=rw:$dir_ro/opt=ro unionfs opt
mount -t unionfs -o dirs=$dir_rw/root=rw:$dir_ro/root=ro unionfs root
mount -t unionfs -o dirs=$dir_rw/srv=rw:$dir_ro/srv=ro unionfs srv
chmod 1777 /tmp
         
  ;;
  *)
    echo "Usage: $0 {start}"
    exit 1
  ;;
esac
