In case this helps someone...
I cloned my 2GB microSD card to a 4GB card, but the Touch just refused to start up, no matter what type of reset I tried. However, as soon as I plugged the USB cable into it, and into my computer, it booted up normally. Note, the battery was not flat - I had charged it fully before starting this and it's still showing full now. Seems the startup on seeing a USB cable is slightly different somehow.
For what it's worth my procedure was
1. Put the original card in a card reader (as drive 'd') and used
Code:
sudo dd if=/dev/sdd of=test.img
to copy it.
2. Replaced the original card with new 4GB card and reversed the copy
Code:
sudo dd if=test.img of=/dev/sdd
3. Ran gparted and resized the last partition to fill the card.
I noted that the 3 partitions on it were root, recovery, and a data partition with all the books and stuff in it. root and recovery partitions are both 256MB.