[Android Software/Hacking General [Developers Only]] CosmicDan:
New update to my modded script if anyone is interested.

I did end up going back to ext4 because I started getting errors on ext2, even after formatting it I'd still have filesystem errors. Strange.

#!/sbin/sh
#
# CSDX (Cosmic SD-EXT) script
# ==================================================
#
# v1.1
# - Switched back to ext4 because ext2 was unreliable
# - Maybe other minor stuff, can't remember
#
#
# v1.0
# - Initial version
# - Based on AD2SDX Alpha 2 by amarullz, ALL CREDIT
# GOES TO HIM!
# - Doesn't swap /data and /sd-ext mounts (solves race
# condition with dalvik-cache on fresh boot)
# - Moves more system data back to internal (MIUI, Sony
# framework, Google apps)
# - Mounts in ext2 instead of ext4 because it's faster
# - Filesystem check on every boot (safer)
#
#

# Verbose shell output for debugging purposes
# set -xv

LOG=/data/csdx.log

echo "[CSDX] Begin!"
echo "[C2DX] Script started - $(date)" > $LOG

EXT_SDCARD=/sd-ext

if [ ! -d $EXT_SDCARD ];
then
echo "[C2DX] $EXT_SDCARD does not exist, creating..." >> $LOG
mount -o rw,remount -t rootfs rootfs /
rm -r -f $EXT_SDCARD
mkdir -p $EXT_SDCARD
chmod -R 775 $EXT_SDCARD
chown -R 0:0 $EXT_SDCARD
mount -o ro,remount -t rootfs rootfs /
fi

chmod 775 $EXT_SDCARD
chown 0:0 $EXT_SDCARD
mount /data

echo "[C2DX] Setting read_ahead_kb..." >> $LOG
echo "4096" > /sys/devices/virtual/bdi/179:0/read_ahead_kb 1>>$LOG 2>>$LOG

echo "[C2DX] Unmounting (if needed)..." >> $LOG
umount /sd-ext 1>>$LOG 2>>$LOG
umount $EXT_SDCARD 1>>$LOG 2>>$LOG
umount /dev/block/mmcblk0p2 1>>$LOG 2>>$LOG
umount /dev/block/vold/179:2 1>>$LOG 2>>$LOG
#echo "[C2DX] Checking for errors (and fixing if necessary)..." >> $LOG
#e2fsck -p /dev/block/mmcblk0p2 1>>$LOG 2>>$LOG
echo "[C2DX] Mounting..." >> $LOG
#mount -t ext2 -o rw,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/block/vold/179:2 $EXT_SDCARD 1>>$LOG 2>>$LOG
#mount -t ext2 -o rw,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/block/mmcblk0p2 $EXT_SDCARD 1>>$LOG 2>>$LOG
mount -t ext4 -o noauto_da_alloc,data=ordered,commit=15,barrier=1,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/block/mmcblk0p2 $EXT_SDCARD 1>>$LOG 2>>$LOG
mount -t ext4 -o noauto_da_alloc,data=ordered,commit=15,barrier=1,nouser_xattr,errors=continue,noatime,nodiratime,nosuid,nodev /dev/block/vold/179:2 $EXT_SDCARD 1>>$LOG 2>>$LOG

mount >> $LOG

for i in app app_s app-private data framework_s lib_s ;
do
if [ -h $EXT_SDCARD/$i ]
then
echo "[C2DX] Removing incorrect symlink '$i' on sd-ext..." >> $LOG
rm $EXT_SDCARD/$i 1>>$LOG 2>>$LOG
fi;

if [ -d /data/$i ]
then
# Check if already linked
if [ ! -d $EXT_SDCARD/$i ]
then
echo "[C2DX] Moving '$i' to sd-ext..." >> $LOG
mv /data/$i $EXT_SDCARD/ 1>>$LOG 2>>$LOG
fi;
fi;

if [ ! -d /data/$i ]
then
echo "[C2DX] Creating '$i' on sd-ext (just in case)..." >> $LOG
mkdir $EXT_SDCARD/$i 1>>$LOG 2>>$LOG
chmod 0777 $EXT_SDCARD/$i 1>>$LOG 2>>$LOG
fi;

if [ ! -h $EXT_SDCARD/$i ]
then
# Check if already linked
echo "[C2DX] Linking '$i' to sd-ext..." >> $LOG
ln -s $EXT_SDCARD/$i /data/$i 1>>$LOG 2>>$LOG
fi;
done;

###

if [ ! -d /data/data_system ]
then
echo "[C2DX] Creating system data folder..." >> $LOG
mkdir /data/data_system 1>>$LOG 2>>$LOG
chmod 0777 /data/data_system 1>>$LOG 2>>$LOG
fi;

cd $EXT_SDCARD/data/;
for i in `ls -d com.htc* com.android* com.google* com.ijinshan.mguard.provider com.lbe.security.miui com.miui* com.sonyericsson* com.svox.pico com.wali.miui.networkassistant com.xiaomi.xmsf miui`;
do
if [ ! -h $EXT_SDCARD/data/$i ]
then
echo "[C2DX] Moving '$i' back to internal data..." >> $LOG
mv $EXT_SDCARD/data/$i /data/data_system/ 1>>$LOG 2>>$LOG
fi;
done;

cd /data/data_system/
for i in `ls -d *`;
do
if [ ! -h $EXT_SDCARD/data/$i ]
then
echo "[C2DX] Linking '$i' back to internal data..." >> $LOG
ln -s /data/data_system/$i $EXT_SDCARD/data/$i 1>>$LOG 2>>$LOG
fi;
done;

echo "[C2DX] Finished! See $LOG for details."
echo "[C2DX] Script finished - $(date)" >> $LOG