[Galaxy S I9000 Themes and Apps] fire314:
ubuntu.sh below:

#!/bin/sh

##################################################################

# Ubuntu/LXDE bootscript for Samsung Galaxy S (and others) #

##################################################################

# by Martin Rhodes (fire314)- martin.rhodes@gmail.com #

# compiled with trial and error and help from a number of blogs. #

# credits: coralic, David Jensen, debdroid, blog commenters, XDA #

# Tested on Ultimate 7.0 and Darky 9.3	#

###########################################################################

# to re-enable error output, remove the " > /dev/null 2>&1" from commands #

###########################################################################

echo "WARNING: If you have more than 255 apps installed on the SDCard, then mounting the ubuntu.img will fail!"

echo

echo "Apps on the SDCard associate with an encrypted loop device, and there are only 256 available to the system."

echo

echo "You have to go to Settings -> Manage Applications -> On SDCard, and move some apps back to phone storage in order to free up a loop device for ubuntu. Make sure you reboot the phone after doing this, then try again."

echo

echo "Please wait while booting ubuntu.img.. This can take some time..."

echo

###################################################################################

# export environment variables	#

###################################################################################

export HOME=/root

export USER=root

export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:$PATH

export TERM=vt100

###################################################################################

########################################################

# make directories required by the chroot environment #

########################################################

busybox mkdir /data/local/mnt > /dev/null 2>&1

busybox mkdir /data/local/mnt/proc > /dev/null 2>&1

busybox mkdir /data/local/mnt/sys > /dev/null 2>&1

busybox mkdir /data/local/mnt/dev > /dev/null 2>&1

busybox mkdir /data/local/mnt/dev/pts > /dev/null 2>&1

busybox mkdir /data/local/mnt/sdcard > /dev/null 2>&1

busybox mkdir /data/local/mnt/external_sd > /dev/null 2>&1

########################################################

###########################################################

# create a loop far, far away and mount ubuntu.img on it #

###########################################################

busybox mknod /dev/block/loop255 b 7 255 > /dev/null 2>&1

busybox losetup /dev/block/loop255 ./ubuntu.img > /dev/null 2>&1

busybox mount -o noatime /dev/block/loop255 /data/local/mnt > /dev/null 2>&1

###########################################################

######################################################################

# mount the phone's sdcard storage so it's accessible from ubuntu #

######################################################################

busybox mount -o bind /sdcard /data/local/mnt/sdcard > /dev/null 2>&1

busybox mount -o bind /sdcard/external_sd /data/local/mnt/external_sd > /dev/null 2>&1

#######################################################################

#################################################################

# mount linux system on our chroot environment and chroot to it #

#################################################################

busybox mount -t proc proc /data/local/mnt/proc > /dev/null 2>&1

busybox mount -t devpts devpts /data/local/mnt/dev/pts > /dev/null 2>&1

busybox mount -t sysfs sysfs /data/local/mnt/sys > /dev/null 2>&1

busybox chroot /data/local/mnt /root/init.sh > /dev/null 2>&1

#################################################################

#########################################

# chroot exited: umount everything #

#########################################

echo

echo "Exiting chroot environment and sync'ing memory to storage.."

echo "DO NOT EXIT until finished - doing so may corrupt the ubuntu.img!"

echo

busybox sync

busybox umount -f /data/local/mnt/sys > /dev/null 2>&1

busybox umount -f /data/local/mnt/dev/pts > /dev/null 2>&1

busybox umount -f /data/local/mnt/proc > /dev/null 2>&1

busybox umount -f /data/local/mnt/sdcard > /dev/null 2>&1

busybox umount -f /data/local/mnt/external_sd > /dev/null 2>&1

##########################################