I found myself in a dire situation where, after flashing an Energy ROM with Android onto my HTC HD2, there was no place left for videos and other stuff I wanted to put on the SD-card and take it away with me.
The system was installed onto a 4GB SD-card and I wondered how to replace it with a 32GB SD-card, without having to install the system and make all the customisations that took me hours.
A brief search on the Internet showed that was quasi-impossible on Windows without an ext4 file system driver, which was defective while writing.
The following is a comprehensive step-by-step procedure on how to copy those partitions and files from one SD card to another.
1. install a Linux virtual machine on top of your Windows (VMWare will do just fine) and mount an external card reader.
2. put the original SD card into the reader and mount the card into the virtual machine.
3. open a terminal and you should also install midnight commander as a handy tool.
4. compress everything on /media/sd-ext (the Linux ext4 partition on the card) with
tar czvf /files/sd-ext.tar.gz /media/sd-ext
5. copy all other files from the FAT32 partition (showed as /media/NO_NAME or /media/disk1) into an other folder.
6. insert the new sd-card into the phone and start Magldr by keeping the power key pressed, navigat with the volume buttons to “8. AD Recovery” then to “advanced”, “Partition SD Card”, create a 2GB ext4 partition and a 256MB swap partition, and turn off the phone after the card partitioning is done.
7. reinsert the new SD-card into the reader, mount the card into the virtual Linux machine and copy with mc (it keeps all users/permissions on folders) back to the /media/sd-ext partition (mount), after decompressing them locally with
tar zxvf /files/sd-ext.tar.gz
8. copy back all the other files back to /media/NO_NAME partition (mount).
9. Take the new SD card out of the reader, insert it into the phone, and…voilà! You get the same Android OS with all customizations in place, applications etc without too much fuss.
Hope it helps!