Even without changing any of the rcS/sd/... scripts that do the mounting, it's possible to change both the internal and external storage to ext4.
I noticed that mount and dosfsck are located in /bin/, but PATH is /sbin:/usr/sbin:/bin:/usr/bin. Thus you can replace the mount and dosfsck commands with shell scripts in either /sbin/ or /usr/sbin/.
Example for /sbin/mount:
Code:
#!/bin/busybox sh
echo mount "$@" >> /mount.log
exec /bin/mount "$@"
So all this does is log the call and then execute the original binary in /bin/.
Here's the log:
Code:
mount -o remount,noatime,nodiratime /dev/mmcblk0p1 /
mount -t vfat -o noatime,nodiratime,shortname=mixed,utf8 /dev/mmcblk0p3 /mnt/onboard
mount -t devpts devpts /dev/pts
mount -r -t vfat -o noatime,nodiratime,shortname=mixed,utf8 /dev/mmcblk1p1 /mnt/sd
mount -o remount,rw /mnt/sd
mount -o remount,ro /mnt/sd
mount -o remount,rw /mnt/sd
mount -o remount,ro /mnt/sd
mount -r -t vfat -o noatime,nodiratime,shortname=mixed,utf8 /dev/mmcblk1p1 /mnt/sd
mount -o remount,rw /mnt/sd
mount -o remount,ro /mnt/sd
Note the various proc, tmpfs, etc. mounts are missing from this log, since rcS for some reason calls mount with full path for those, so the PATH trick does not catch them. If there were any such calls for the vfat, you'd have to replace /bin/mount and exec /bin/busybox mount instead.
And the dosfsck log:
Code:
dosfsck -a -w /dev/mmcblk0p3
dosfsck -a -w /dev/mmcblk1p1
dosfsck -a -w /dev/mmcblk1p1
So you can hook into those calls and mangle the parameters any way you like. And it should even survive firmware updates.
Getting those scripts onto the reader is easy enough using KoboRoot.tgz. This method seems to be lacking an uninstall facility though. My iriver Story HD was nice enough to execute a shell script for every update, but if Kobo has something like it, I haven't found it yet. Naturally you could just use the same trick with a self-destructive script, hmmm...