Migrate / Mirror Existing SD Card Installation to PiDrive

Hello . . . I’m looking for a simple way to migrate / mirror my existing Raspberry Pi installation (Raspbian) that resides on my SD card to my new PiDrive 314GB. I do not want to start over and recreate everything from scratch with Berryboot and the operating systems it offers. Is there a way to do this? I created the DMG file of my SD card to then hopefully migrate to the PiDrive. Then I assume there’s a boot config file that would need to be on an SD card so it would then boot to the PiDrive.

I do not want to use the PiDrive as a simple external drive buried in the /pi/media folder of my existing installation, and I do not want to start over from scratch.

Any insight on this would be appreciated.

Thank you,


Hello justinline :slight_smile: Welcome to the community!

This is a rather complicated operation to do, especially if you want a safe transfer of all data, settings and the installation itself.
It is recommended, for data safety, to do a fresh installation with Berryboot, but since you don’t want to go through this here are some tips on how you can proceed:

  • Make sure the power supply can easily deliver enough power to both the Pi and the external drive in all cases so you don’t encounter shut-downs in case the Pi hits 100% load.

Verify the partition size that you want to transfer by using:
fdisk -l your partition

Make sure that all partitions are unmounted. Create an empty partition that is big enough on your WD PiDrive then move the system disk by using:
dd bs=4M conv=noerror if=your initial partition of=created partition on the WD PiDrive

Use gparted to correct any disk errors from te original SD card partition and then resize the partition to fit its new size with resize2fs. Mind that every disk UUID must be unique and you must set a new UUID. Once done simply quit the gparted utility.

Getting the new UUID can be done as follows:
Assign a new partition name by using e2label partition in the WD PiDrive partition name
Then obtain the new UUID by using this example:
partition on the WD PiDrive: UUID=“11ed1dc5-0507-48f1-b1c6-d5926df1ee88” TYPE=“ext4” LABEL=“name of the new partition name

You need to prepare the new mount command:
vi /etc/fstab

Old SD Card partition / ext4 defaults,noatime 0 1

New UUID / ext4 defaults 0 1

Now you need to set a new root device:
vi /boot/cmdline.txt
[before] dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=old SD card partition rootfstype=ext4 elevator=deadline rootwait

[after] dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=New WD PiDrive partition rootfstype=ext4 elevator=deadline rootwait

You should be good and should be able to reboot by using reboot or shutdown -r now

You could also check this guide.

Again, mind that his involves a high risk of data corruption and damage to the file system and the partitions so it is recommended to simply do a fresh install and use the Berryboot.

Hope this works! Feel free to ask any questions you may have. :slight_smile:


sounds easier to start from scratch :scream:


It seems so. Nevertheless you may try this by setting up a fresh install on a thumb drive and try these steps (or other steps that you may find online) and see what would work for you while storing safely your primary install on the SD card. :slight_smile:

Feel free to ask if there are any other questions or share your experience if you attempt something . :slight_smile:


Thank you Captain_WD . . . right now I may take the advice to just go with the regular Berryboot install, but I appreciate the insight and instructions, of course.


You are most welcome :slight_smile: There are a couple of other ways that can be found online but none of them is less complicated than this. Whatever you decide to do make sure you have a solid backup of the data that you don’t want to lose in the process.

Let me know if I can be of any other assistance.


One of the reasons I’m not crazy about the traditional BerryBoot is the lack of updating operating systems. Is it true that you can’t just do a “apt get-update”? New versions appear in the operating system BerryBoot menu options, but do I have to install a new one every time there’s an update and remove the old one? I’m a little confused on this.

Thanks again,


100% Agree

I remember installing Kodi Media Center via Berryboot … and placing an update *.tar file in the .update folder and upon reboot it went through the motions of “updating” and upon reboot … it did not update Kodi.

Personally speaking, i have several SD Cards which i swap around when running different OS’s (eg. Kodi, Ubuntu Mate, Android 7.0 Nougat) sure … it’s not as easy as selecting from a Boot-Up Menu, but at least each one can be updated without a complete re-install

Thank you for the shared feedback!

You can check out this topic and see if you can find some useful info for you. I will do some more research and will post back. :slight_smile:


Maybe I’m missing the point of the PiDrive and BerryBoot. The OS updates are not possible, you can’t put an existing install on the PiDrive (without the aforementioned discouraged effort), RetroPie is not working correctly (my controller that worked with my original SD card install doesn’t work / who knows where to put ROMs?). I think I’ll just stick with my original installs on my original SD card and use the PiDrive as an external storage space through the /media/pi/berryboot folder. Not as elegant or exciting as advertised when I bought this on Pi Day. Oh well.

The idea behind BerryBoot is to have multiple OSs and applications to be downloaded on your HDD and omit the need for a SD card with a lot of storage space.

Thank you for your feedback!


One utility that would be very useful would be one to reload the OS to just one project space. I’m surprised that it doesn’t exist or at least I can’t find it.

I have “used up” the 3 project spaces I created on my PiDrive and I now need to reload the OS to just one of them but I only have the option to reinstall all of them and will lose all the work put into setting up the other 2 spaces.

This seems to me to be a major omission that this facility does not exist, or have I missed something?

Sorry to resurrect an old thread here, but I was wondering why the above statement “…high risk of data corruption…”? These steps are straightforward and typical Linux admin stuff. I’ve done similar things many times in the past, just not on a Raspberry Pi. The only thing that would be new is the bootloader the RPi uses, that “commandline.txt” stuff. But although a new syntax to me, the concept is identical to other bootloaders that I am more familiar with.

Captain_WD: May I ask where the risk of “data corruption” is? Obviously, someone who is not familiar with dd could confuse if= and of= with disastrous results, but ignoring user error like that, what’s dangerous? resize2fs is a solid command that has been around forever (maybe not in the Raspbian implementation though?) Other than potential for user error, or not understanding how Linux boots therefore not being able to diagnose/repair a problem, is there really any danger? I was just getting ready to do a procedure just like this myself. I already have a saved dd of my MicroSD for backup - I did that as a first step after getting things configured into a working and stable state, before even considering a move to HDD. Just a normal backup that (hopefully!) everyone does as a routine matter.