Is it possible to change mount points of internal storage? I have an off-brand rooted tablet built on MT8389 with 8GB internal memory. The problem is that manufacturer partitioned this in some weird way making /data folder mounted to a partition that is only 1GB large. Basically I have approximately 4GB of free space mounted as /storage/sdcard0 but it sits unused while all installed apps occupy /data making the device close to useless as only core apps after updates eats over 60% of available space.

After all Android is just another Linux flavour, so I would expect I could run console and do this:


Copy /data to /storage/sdcard0.
Umount /storage/sdcard0.
Mount /data to the partition that was mounted as /storage/sdcard0.
Mount that 1GB partition as /storage/sdcard0 instead.


Is it possible? How to do it "safely"?

Note that I don't want to change partition sizes - I only want to swap mount points or create symlink to make /data point to a larger partition. In theory this should be pretty straightforward ;)
You probably want to install a script like int2ext or Mounts2SD. Note that these use a second partition on your SD card (generally ext2/3/4 formatted) rather than the main SD card partition.

You can also move apps to the SD card (Settings -> Apps -> "On SD card").