[Galaxy S I9000 Themes and Apps] mengsuan:
I did several tries. Converting from ext2 to RFS then original kernel. Also, directly changing kernel without RFS conversion. Let me give you a full log. (messy because there's many re-tries).

To keep the problem short, everytime the kernel is back to original, there must be data loss even with proper conversion back to RFS.

+ busybox cat
+ busybox date
###############################################################################
#
# Starting z4mod-0.12 'ext2' convert on /data (/dev/block/mmcblk0p2)
# Sat Nov 20 14:05:07 UTC 2010
#
###############################################################################
+ [ ! -f /z4mod/z4version ]
+ partition=data
+ devblock=/dev/block/mmcblk0p2
+ filesystem=ext2
+ [ ext == ext ]
+ busybox grep ext2 /proc/filesystems
+ [ ext2 ]
+ format_cmd=mkfs.ext2
+ echo /z4mod/bin:/:/sbin:/system/xbin:/system/bin:/z4mod/bin:/:/sbin:/system/xbin:/system/bin:/sbin:/usr/sbin:/bin:/usr/bin
/z4mod/bin:/:/sbin:/system/xbin:/system/bin:/z4mod/bin:/:/sbin:/system/xbin:/system/bin:/sbin:/usr/sbin:/bin:/usr/bin
+ [ mkfs.ext2 == ]
+ busybox which mkfs.ext2
+ [ /z4mod/bin/mkfs.ext2 ]
+ busybox mount -o remount,rw /
+ busybox mount -o remount,rw /system
+ busybox ln -s /proc/mounts /etc/mtab
+ [ data == system ]
+ busybox awk {print $3}
+ busybox grep /data /etc/fstab
grep: /etc/fstab: No such file or directory
+ currentfs=
+ [ == ext2 ]
+ [ == ]
+ currentfs=rfs
+ busybox umount /data
umount: can't umount /data: Invalid argument
+ [ rfs == rfs ]
+ busybox mount -t rfs /dev/block/mmcblk0p2 /data -o nosuid,nodev,check=no
+ busybox rm -f /sdcard/data.z4mod.tar
+ busybox awk {print $3}
+ busybox sed s|/[^ ]*||g
+ busybox tail -n1
+ busybox df /dev/block/mmcblk0p1
+ free_space=11008800
+ busybox awk {print $2}
+ busybox sed s|/[^ ]*||g
+ busybox tail -n1
+ busybox df /dev/block/mmcblk0p2
+ backup_size=100384
+ [ 100384 -ge 11008800 ]
+ busybox rm /sdcard/data.z4mod.tar
rm: can't remove '/sdcard/data.z4mod.tar': No such file or directory
+ busybox rm /data/rfs.log
rm: can't remove '/data/rfs.log': No such file or directory
+ busybox tar cf /sdcard/data.z4mod.tar /data
tar: removing leading '/' from member names
tar: /data/gps/lcs.socket: socket ignored
tar: /data/misc/wifi/sockets/wpa_ctrl_3092-4: socket ignored
tar: /data/misc/wifi/sockets/wpa_ctrl_3092-5: socket ignored
tar: /data/misc/wifi/eth0: socket ignored
tar: /data/.pcsync_stream: socket ignored
tar: /data/.usb_stream: socket ignored
+ busybox echo 0
0
+ busybox umount /data
+ [ data == data ]
+ [ ext2 == rfs ]
+ busybox dd of=/dev/block/mmcblk0 seek=466
+ echo -en \x83
0+1 records in
0+1 records out
1 bytes (1B) copied, 0.010608 seconds, 94B/s
+ [ ext2 == rfs ]
+ [ ext2 == jfs ]
+ [ ext2 == ext2 ]
+ mountopt=nosuid,nodev,noatime,nodiratime,errors=continue,nobh
+ mkfs.ext2 -q -L data -b 4096 -m 0 -F /dev/block/mmcblk0p2
+ tune2fs -c 100 -i 30d -m 0 /dev/block/mmcblk0p2
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to 100
Setting interval between checks to 2592000 seconds
Setting reserved blocks percentage to 0% (0 blocks)
+ busybox mount -t ext2 /dev/block/mmcblk0p2 /data -o nosuid,nodev,noatime,nodiratime,errors=continue,nobh
+ busybox grep /dev/block/mmcblk0p2
+ busybox mount
/dev/block/mmcblk0p2 on /data type ext2 (rw,nosuid,nodev,noatime,nodiratime,errors=continue,nobh)
+ busybox tar xf /sdcard/data.z4mod.tar -C /
+ ret=0
+ [ 0 == 0 ]
+ busybox rm /sdcard/data.z4mod.tar
+ busybox touch /system/etc/fstab
+ busybox sed -i \,/dev/block/mmcblk0p2,d /system/etc/fstab
+ echo /dev/block/mmcblk0p2 /data ext2 nosuid,nodev,noatime,nodiratime,errors=continue,nobh
+ busybox mount -o remount,ro /system
+ busybox umount /dev/block/mmcblk0p2
+ [ == ]
+ busybox umount /sdcard
umount: can't umount /sdcard: Device or resource busy
+ exit 0
+ busybox cat
+ busybox date
###############################################################################
#
# Starting z4mod-0.12 'rfs' convert on /data (/dev/block/mmcblk0p2)
# Sun Nov 21 01:46:52 UTC 2010
#
###############################################################################
+ [ ! -f /z4mod/z4version ]
+ partition=data
+ devblock=/dev/block/mmcblk0p2
+ filesystem=rfs
+ [ rfs == ext ]
+ [ rfs == jfs ]
+ [ rfs == rfs ]
+ format_cmd=mkfs.vfat
+ echo /z4mod/bin:/:/sbin:/system/xbin:/system/bin:/z4mod/bin:/:/sbin:/system/xbin:/system/bin:/sbin:/usr/sbin:/bin:/usr/bin
/z4mod/bin:/:/sbin:/system/xbin:/system/bin:/z4mod/bin:/:/sbin:/system/xbin:/system/bin:/sbin:/usr/sbin:/bin:/usr/bin
+ [ mkfs.vfat == ]
+ busybox which mkfs.vfat
+ [ /z4mod/bin/mkfs.vfat ]
+ busybox mount -o remount,rw /
+ busybox mount -o remount,rw /system
+ busybox ln -s /proc/mounts /etc/mtab
ln: /etc/mtab: File exists
+ [ data == system ]
+ busybox awk {print $3}
+ busybox grep /data /etc/fstab
+ currentfs=ext2
+ [ ext2 == rfs ]
+ [ ext2 == ]
+ busybox umount /data
umount: can't umount /data: Invalid argument
+ [ ext2 == rfs ]
+ busybox mount -t ext2 /dev/block/mmcblk0p2 /data -o nosuid,nodev,noatime,nodiratime,errors=continue
+ busybox rm -f /sdcard/data.z4mod.tar
+ busybox awk {print $3}
+ busybox sed s|/[^ ]*||g
+ busybox tail -n1
+ busybox df /dev/block/mmcblk0p1
+ free_space=10274496
+ busybox awk {print $2}
+ busybox sed s|/[^ ]*||g
+ busybox tail -n1
+ busybox df /dev/block/mmcblk0p2
+ backup_size=97320
+ [ 97320 -ge 10274496 ]
+ busybox rm /sdcard/data.z4mod.tar
rm: can't remove '/sdcard/data.z4mod.tar': No such file or directory
+ busybox rm /data/rfs.log
rm: can't remove '/data/rfs.log': No such file or directory
+ busybox tar cf /sdcard/data.z4mod.tar /data
tar: removing leading '/' from member names
tar: /data/gps/lcs.socket: socket ignored
tar: /data/misc/wifi/sockets/wpa_ctrl_3093-3: socket ignored
tar: /data/misc/wifi/sockets/wpa_ctrl_3093-4: socket ignored
tar: /data/misc/wifi/eth0: socket ignored
tar: /data/.pcsync_stream: socket ignored
tar: /data/.usb_stream: socket ignored
+ busybox echo 0
0
+ busybox umount /data
+ [ data == data ]
+ [ rfs == rfs ]
+ busybox dd of=/dev/block/mmcblk0 seek=466
+ echo -en \x0C
0+1 records in
0+1 records out
1 bytes (1B) copied, 0.121244 seconds, 8B/s
+ [ rfs == rfs ]
+ mountopt=llw,check=no,nosuid,nodev
+ mkfs.vfat /dev/block/mmcblk0p2
+ busybox mount -t rfs /dev/block/mmcblk0p2 /data -o llw,check=no,nosuid,nodev
+ busybox grep /dev/block/mmcblk0p2
+ busybox mount
/dev/block/mmcblk0p2 on /data type rfs (rw,nosuid,nodev,relatime,vfat,llw,check=no,gid/uid/rwx,iocharset=utf8)
+ busybox tar xf /sdcard/data.z4mod.tar -C /
+ ret=0
+ [ 0 == 0 ]
+ busybox rm /sdcard/data.z4mod.tar
+ busybox touch /system/etc/fstab
+ busybox sed -i \,/dev/block/mmcblk0p2,d /system/etc/fstab
+ echo /dev/block/mmcblk0p2 /data rfs llw,check=no,nosuid,nodev
+ busybox mount -o remount,ro /system
+ busybox umount /dev/block/mmcblk0p2
+ [ == ]
+ busybox umount /sdcard
umount: can't umount /sdcard: Device or resource busy
+ exit 0
+ busybox cat
+ busybox date
###############################################################################
#
# Starting z4mod-0.12 'ext2' convert on /data (/dev/block/mmcblk0p2)
# Sun Nov 21 10:11:41 UTC 2010
#
###############################################################################
+ [ ! -f /z4mod/z4version ]
+ partition=data
+ devblock=/dev/block/mmcblk0p2
+ filesystem=ext2
+ [ ext == ext ]
+ busybox grep ext2 /proc/filesystems
+ [ ext2 ]
+ format_cmd=mkfs.ext2
+ echo /z4mod/bin:/:/sbin:/system/xbin:/system/bin:/z4mod/bin:/:/sbin:/system/xbin:/system/bin:/sbin:/usr/sbin:/bin:/usr/bin
/z4mod/bin:/:/sbin:/system/xbin:/system/bin:/z4mod/bin:/:/sbin:/system/xbin:/system/bin:/sbin:/usr/sbin:/bin:/usr/bin
+ [ mkfs.ext2 == ]
+ busybox which mkfs.ext2
+ [ /z4mod/bin/mkfs.ext2 ]
+ busybox mount -o remount,rw /
+ busybox mount -o remount,rw /system
+ busybox ln -s /proc/mounts /etc/mtab
ln: /etc/mtab: File exists
+ [ data == system ]
+ busybox awk {print $3}
+ busybox grep /data /etc/fstab
+ currentfs=rfs
+ [ rfs == ext2 ]
+ [ rfs == ]
+ busybox umount /data
umount: can't umount /data: Invalid argument
+ [ rfs == rfs ]
+ busybox mount -t rfs /dev/block/mmcblk0p2 /data -o nosuid,nodev,check=no
+ busybox rm -f /sdcard/data.z4mod.tar
+ busybox awk {print $3}
+ busybox sed s|/[^ ]*||g
+ busybox tail -n1
+ busybox df /dev/block/mmcblk0p1
+ free_space=10274400
+ busybox awk {print $2}
+ busybox sed s|/[^ ]*||g
+ busybox tail -n1
+ busybox df /dev/block/mmcblk0p2
+ backup_size=47776
+ [ 47776 -ge 10274400 ]
+ busybox rm /sdcard/data.z4mod.tar
rm: can't remove '/sdcard/data.z4mod.tar': No such file or directory
+ busybox rm /data/rfs.log
rm: can't remove '/data/rfs.log': No such file or directory
+ busybox tar cf /sdcard/data.z4mod.tar /data
tar: removing leading '/' from member names
tar: /data/gps/lcs.socket: socket ignored
tar: /data/.pcsync_stream: socket ignored
tar: /data/.usb_stream: socket ignored
+ busybox echo 0
0
+ busybox umount /data
+ [ data == data ]
+ [ ext2 == rfs ]
+ busybox dd of=/dev/block/mmcblk0 seek=466
+ echo -en \x83
0+1 records in
0+1 records out
1 bytes (1B) copied, 0.035998 seconds, 27B/s
+ [ ext2 == rfs ]
+ [ ext2 == jfs ]
+ [ ext2 == ext2 ]
+ mountopt=nosuid,nodev,noatime,nodiratime,errors=continue,nobh
+ mkfs.ext2 -q -L data -b 4096 -m 0 -F /dev/block/mmcblk0p2
+ tune2fs -c 100 -i 30d -m 0 /dev/block/mmcblk0p2
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to 100
Setting interval between checks to 2592000 seconds
Setting reserved blocks percentage to 0% (0 blocks)
+ busybox mount -t ext2 /dev/block/mmcblk0p2 /data -o nosuid,nodev,noatime,nodiratime,errors=continue,nobh
+ busybox grep /dev/block/mmcblk0p2
+ busybox mount
/dev/block/mmcblk0p2 on /data type ext2 (rw,nosuid,nodev,noatime,nodiratime,errors=continue,nobh)
+ busybox tar xf /sdcard/data.z4mod.tar -C /
+ ret=0
+ [ 0 == 0 ]
+ busybox rm /sdcard/data.z4mod.tar
+ busybox touch /system/etc/fstab
+ busybox sed -i \,/dev/block/mmcblk0p2,d /system/etc/fstab
+ echo /dev/block/mmcblk0p2 /data ext2 nosuid,nodev,noatime,nodiratime,errors=continue,nobh
+ busybox mount -o remount,ro /system
+ busybox umount /dev/block/mmcblk0p2
+ [ == ]
+ busybox umount /sdcard
umount: can't umount /sdcard: Device or resource busy
+ exit 0