I'm tearing my hair out trying to figure this out.
I've recently built myself a home server to store and save all my media. I installed Ubuntu server 12.04LTS and setup a bunch of stuff on a 64gb SD card i had spare. I've since bought a 16gb USB3 stick to take over the OS so i can use the SD card again. I had assumed moving the OS from drive to drive would be a fairly easy process...
First i learned that you can't easily clone from a large drive to a small one. The total OS is only taking up 5gb of space at present, and even with a 3gb swap partition there's still more than enough raw space on the 16gb drive.
I tried using dd which just filled the usb with a 16gb EXT4 partition then failed. I resized the EXT4 partition on the SD card to 9gb and left the remaining space unpartitioned. Tried dd again which just created another 16gb EXT4 partition before complaining the drive was full. Clonezilla also failed, i forget the exact error message but it was still complaining that it doesn't have enough space on the destination drive (this was after it had been formatted and was only copying the 9gb EXT4 partition.
So, suggestions please!