How to Clone and Backup Your Raspbian SD Card for Easy Deployment

Raspberry Pi

If you have spent time setting up a Raspberry Pi with your preferred applications, configurations, and settings, it makes sense to create a backup of your SD card. This is especially useful if you need to deploy the same setup to multiple Raspberry Pi devices or if you want a quick way to restore your system in case of failure.

By creating an image of your pre-configured Raspbian SD card, you can easily clone it onto other SD cards, saving time and effort. This guide will walk you through the process of making a full backup of your SD card and restoring it when needed.


Prerequisites

Before you begin, make sure you have:

  • A Linux system (or a computer with a Linux-based OS like Debian, Ubuntu, or Raspberry Pi OS).
  • A properly set up Raspberry Pi SD card that you want to clone.
  • A second SD card for cloning.
  • An SD card reader.

Step 1: Identify the SD Card Device

First, insert your Raspberry Pi SD card into your computer and identify its device name using the following command:

lsblk

You should see a list of storage devices. Look for the one corresponding to your SD card (e.g., /dev/mmcblk0 or /dev/sdb).

Important: Ensure you select the correct device, as using the wrong one may overwrite your system disk!


Step 2: Create an Image of the SD Card

Once you’ve identified the SD card, create an image file using the dd command:

sudo dd if=/dev/sdX of=~/raspbian_backup.img bs=4M status=progress

Replace /dev/sdX with your actual SD card device (e.g., /dev/mmcblk0). This command copies the entire SD card into a single .img file.


Step 3: Compress the Image (Optional)

Since SD card images can be large, you may want to compress them to save space:

xz -z -9 ~/raspbian_backup.img

This will create raspbian_backup.img.xz, which takes up significantly less space.


Step 4: Restore the Image to Another SD Card

To clone the image onto another SD card, insert a new SD card and use the following command:

sudo dd if=~/raspbian_backup.img of=/dev/sdX bs=4M status=progress

If you compressed the image, use:

xzcat ~/raspbian_backup.img.xz | sudo dd of=/dev/sdX bs=4M status=progress

Again, replace /dev/sdX with the correct device name.


Step 5: Expand the Filesystem (If Needed)

If the new SD card has more storage than the original, you may need to expand the filesystem to use the full capacity. Boot up the Raspberry Pi and run:

sudo raspi-config

Then go to Advanced Options > Expand Filesystem, and reboot when prompted.


By following these steps, you can easily back up and clone your Raspbian setup, ensuring you never lose your custom configurations. This method is perfect for setting up multiple Raspberry Pi devices quickly or having a ready-to-use backup for future use.

Whether you’re a developer, system administrator, or Raspberry Pi hobbyist, creating SD card images will save you time and effort in managing your devices.

2 comments

comments user
Nils

Thanks for the instructions. I have one clarification question. I am attempting to clone one identical Raspberry Pi MicroSD card to another one. The other one is not a “new” empty card, but is the card from my second Raspberry Pi with the OS installed. I want to essentially overwrite, or “restore” the cloned copy onto this card. Are there any extra steps I need to do, or do the steps above effectively overwrite the existing OS/data etc.? Please clarify. Thank you!

    comments user
    9M2PJU

    I usually use dd command on linux with 2 SD card reader. You can try with balena etcher.

Post Comment

You May Have Missed