Please leave the two posts open, until you can write a good answer to cover both.
The layout of my current disk is:
In gparted, when I select a partition, and click "Partition->resize/move", is it correct that I can only move the partition if there is unallocated region immediately behind or before it? For example, is it correct that I can move sda4 anywhere into the 93G unallocated region, but I can't move sda3 at all?
If yes, does that imply that the relative order between partitions can't be changed?
What is the command which gparted uses to perform partition moving?