I have a Runbo X5-King phone which is manufactured by a small Chinese company. I need to shrink /system and expand /data. All tutorials I can find online say to run fdisk in recovery, but the problem is that /system doesn't seem to mount, and "adb shell" results in an error message saying that it cannot find /system/bin/sh. However after booting into Android everything works perfectly, and /system is mounted successfully as well. I'm able to enter fastboot and let my computer interact with the phone, but fastboot doesn't have the ability to resize partitions or enter the shell. Since the phone is not famous, no custom recoveries could be found for it. So how can I resize partitions under this situation?
To use fdisk without recovery, i.e. while Android is running, you need to root your phone, install a terminal emulator, and install BusyBox (the fdisk command won't be available without BusyBox, which provides a bundle of common Linux tools that aren't included in Android). Note that to install BusyBox, it's not sufficient just to install the app. You need to launch the app and click the Install button in order to install the tools.
The process of rooting is device-dependent, and I don't know specifically how to do it on your device, but you could try Towelroot, which works on a wide variety of Android devices and is incredibly simple to use.