[Galaxy S I9000 Android Development] Tayutama:
You don't lose the 1GB space that the file takes as all new data (mind you not those that save data on /sdcard) from programs gets moved into that file. Only thing atm that doesn't get moved is the apk's from the applications you install.

1. The only difference between them is that in the sl4a scripts are checks at each stage now to see if stuff has been done before like it checks if the file already exists and if it does it skips that step. Also the scripts has been cleaned up abit. There is also a change in the RemoveFix.sh part where is makes a small 10MB file and reboots where the userinit.sh then removes the fix on boot which ofc gives a delay in boot time that one time.

2. When you have done this fix you can remove the update.zip if you want. Regarding doing nandroid backups you can still do that though ClockworkMod Recovery but it takes more them then normal because it makes a backup of the 1GB/512MB file the fix made.

This is what the new LagFix1024.sh has which is included with sl4a:

#!/system/bin/sh
LOOPBACK=/dev/loop0;
IMAGE_FILE=/data/image.ex2;
IMAGE_SIZE=1048576;
MOUNTPOINT=/data/data-ext2;
BACKUP_DIR=/data;

if [ "$(/system/xbin/busybox id -u)" == "0" ]; then
echo "Creating image. This can take up to 5 minutes...";
if [ ! -e $IMAGE_FILE ]; then
busybox dd if=/dev/zero of=$IMAGE_FILE bs=1024 count=$IMAGE_SIZE;
else
echo "Skipping. Image already exists.";
fi;

echo "Linking loopback device.";
if [ ! -e $LOOPBACK ]; then
busybox mknod $LOOPBACK b 7 0;
else
echo "Skipping. Loopback device already linked.";
fi;

echo "Setting up loopback with image file.";
busybox losetup -d $LOOPBACK;
busybox losetup $LOOPBACK $IMAGE_FILE;

echo "Formatting image through loopback.";
busybox mkfs.ext2 -b 4096 $LOOPBACK;

echo "Creating mountpoint for files.";
if [ ! -d $MOUNTPOINT ]; then
mkdir $MOUNTPOINT;
else
echo "Skipping. Mountpoint already exists.";
fi;

echo "Mounting loopback to mountpoint.";
mount -t ext2 -o noatime,nodiratime,errors=continue $LOOPBACK $MOUNTPOINT;

if [ ! -d $BACKUP_DIR ]; then
mkdir $BACKUP_DIR;
fi;

for i in data system dalvik-cache; do
echo "Copying $i to mountpoint...";
busybox cp -rpf /data/$i $MOUNTPOINT/;

echo "Removing old files..."
if [ -d $BACKUP_DIR/$i.bak ]; then
busybox rm -rf $BACKUP_DIR/$i.bak
fi;

echo "Backing up old files...";
busybox mv /data/$i $BACKUP_DIR/$i.bak;

echo "Mounting $i to loopback device";
if [ ! -d /data/data-ext2/$i ]; then
busybox cp -rpf /data/$i $MOUNTPOINT/;
fi;
if [ ! -d /data/$i ]; then
busybox mkdir /data/$i;
busybox chown 1000:1000 /data/$i;
busybox chmod 771 /data/$i;
fi;
busybox mount -o bind $MOUNTPOINT/$i /data/$i;
done;

echo "Installing userinit script...";

if [ ! -e /system/bin/playlogosnow ]; then
busybox mv /system/bin/playlogos1 /system/bin/playlogosnow;
busybox cp /sdcard/sl4a/resources/playlogos1 /system/bin/playlogos1;
busybox chmod 755 /system/bin/playlogos1;
else
echo "Skipping playlogos1. File already exists.";
fi;

if [ ! -e /system/bin/userinit.sh ]; then
busybox cp /sdcard/sl4a/resources/userinit.sh /system/bin/userinit.sh;
busybox chmod 755 /system/bin/userinit.sh;
else
echo "Skipping userinit.sh. File already exists.";
fi;

echo "Supreme Lagfix successfully installed!";
else
echo -e "Getting root privileges\n"
su<$0
fi

What do you mean with move playlogos1 and userinit.sh? Those are there to make the fix stick through reboots.

The reason i'm using "count=1048576" instead of what RyanZA is using is because it was easier for me that way to make the file the right size.

The way RyanZA does it doesn't make the file exacly what computers understand as 1GB aka 1024MB but 1000MB which turns out to be 976 MB, where mine does make it 1024MB.

If i did the same way as RyanZA for my 512MB fix it would make the file have a size of 500MB instead of 512MB