Don’t Forget to Backup! Archiving your Raspberry Pi boot SD card to your Macintosh
You’ve got the Raspberry Pi computer running smoothly. It does exactly what you want it to do with timed
cron jobs and crafty
python code. You’ve installed countless new apps via
apt-get, and now you’re admiring your work as it hums along using a mere trickle of power compared to your aging desktop.
You think that SD card is gonna survive a million reboots? Even pulling the power plug once is enough to mess up your image with poorly stored processes.
It’s time to make a backup of your SD card, so you can reboot in an instant with a backup!
Just like I went over in my Raspberry pi bootstrap, it’ll take a bit of command-line fiddling to make perfect backups of your hard configurations!
Shutdown your Pi gracefully using this command (delivered either via an attached keyboard, or by SSHing into the Pi.
sudo shutdown now
Pop the SD Card, and stick it in your Mac; either the built-in port on newer macs, or simply through the use of a USB adapter. If it shows up on your desktop as a disk named ‘boot’, you’re good so far.
First, we need to determine the disk name of the SD card (it’s not ‘boot’). Open the Terminal app in your Utilities folder and type the following command:
It’ll list all of the disks attached to your computer, including the SD card. It will be named /dev/diskn, where n will be a number from 0 on up. In my case, I have a lot of hard drives attached to my computer, so my SD card showed up as disk4.
Making the Backup
Now that we have all the info we need, we can make a disk image suitable for copying back to a new SD card by using the following command. Note the r before the disk4 in my command. This gives much faster copies – trust me.
sudo dd if=/dev/rdisk4 of=~/Desktop/RaspiOS.img bs=1m
You’ll be asked for your admin password, and then it’ll silently make a backup of the disk image. This left me with a massive 8GB image on my desktop named
RaspiOS.img. It’s a perfect copy, ready for burning back to a new SD card, via a little switching of the previous command. You can also backup the
.img file for easy recovery at a later date.
Making the Backup
.img Even Smaller
If you want to store compressed versions of the disk image (I do, I need revision control), I use the unix pipe to gzip the disk image for considerable savings.
sudo dd if=/dev/rdisk4 bs=1m | gzip > ~/Desktop/RaspiOS.gz
In my case, my gzipped image weighed in at only 1.2Gb, and that’s much easier to copy and store.
Copying the Backup
Alright, you should probably keep a mirrored backup of your SD card with your Raspberry Pi in case of disaster. We’ll now make exact duplicates of your Raspberry Pi boot disk. You’ll have to eject your master SD card, and put in a new blank SD card first.
Then you can quickly make a copy of your boot disk by running the following command:
sudo dd if=~/Desktop/RaspiOS.img of=/dev/rdisk4 bs=1m
Did you store a gzipped version of your OS? There’s no need to uncompress the image before you copy it back to a SD card, as using the same pipe can decompress the file and copy it to a new SD Card.
gzip -dc ~/Desktop/RaspiOS.gz | sudo dd of=/dev/rdisk4 bs=1m
How’s Your Raspberry Pi project coming along?
Leave a comment – we’re working on 3 or 4 new projects with a Raspberry Pi at the heart of each project. We’ll post more later, but let me hear your personal projects and let’s see some links!