So I got my new pi and the only free SD I had was 2GB. I couldn't hold off playing with it so it had to do for the time being. I loaded raspbmc and then spent time loading repositories, add-ons and customizing to my liking.

I now I have a 16GB class 10 in the mail and am wondering how to go about copying my current setup to that SD. My first thought is use Win32 Disk Imager to read from the 2GB and then write to the 16GB. However this would then leave only 2GB available to the pi on the 16GB correct? Essentially I am wondering how one would go about re-sizing the partition to use all of the available space on the 16GB SD.

Looking here I see that the ext4 partition at /dev/mmcblk0p3 is the one that would need re-sizing. Is this possible without deleting the contents of that partition?

The problem is, I only have windows PC's available to me. I suppose I could load raspbian on the 2GB after I copy the image to the 16GB to get a more functional linux box but hopefully that's more work then necessary... Im open to any suggestions, just would rather not have to start from scratch with a fresh raspbmc install.


I think you should look into doing this so you can take and restore backups of your card from time to time. Once you get a second card and as long as you don't destroy the original one, it should be easy to experiment. And yes, it should work.

Some instructions on how to set up a card image can be found on the RPI wiki "easy SD card setup". There's also a page on resizing partitions on rpi. Raspi-config can apparently also do this automatically.

Essentially you should be able to use parted, fdisk, cfdisk or other tool to resize the root partition and use resize2fs to make the filesystem use the extra space.

This should all work from the running Linux system on the PI, so as long as you can get the image on the card correctly in windows, it shouldn't be a problem anymore.

Note that depending on your distribution of choice and version, the card may be set up in different ways and the instructions might not be correct to the letter. But the idea is the same. Find the root, stretch it, resize the filesystem and enjoy your new space (and a 16GB image you need to back up).


dd if=/dev/sdc of=/dev/sdd bs=1m

I don't see how you can do this on the pi as it has only one SD card slot.

  • 3
    I do not think this would help the OP much. As you point out the RPi only has one SD card slot - though it might be possible to add another one to the SPI pins on the GPIO port, or via a Card Reader/Writer plugged into a powered Hub attached to the USB bus. Using dd to read/write from/to the storage medium is best done on inactive media which requires mounting the SD Card in say a Linux PC - but as the OP is talking about using Win32 Disk Imager it is reasonable to believe that they have (only) a Windows PC! – SlySven Jan 19 '16 at 4:07
  • Think outside of the box, guys (literally): take old small SD card of of the Pi, insert into laptop, run dd if=/dev/sdc of=/tmp/image.bin bs=1m, take out old small SD card out of laptop and put in new big SD card, run dd if=/tmp/image.bin of=/dev/hdc bs=1m, take new big SD card from laptop and put it into the Pi. – Tomislav Nakic-Alfirevic Dec 9 '16 at 14:25

In your case, where your original card is smaller, and the target is bigger you can go straight with:

dd if=/dev/sdc of=/dev/sdd bs=1m

This will make a byte level clone from sdc to sdd, but beware those might be different in your specific case.

After that, you just boot & run raspi-config on the new card and let it resize the partition, voila!.


There is an app called sdcrad copier (piclone) available now. Use that app to make a complete backup of your OS and you can use that later.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.