posted Jul 3, 2016, 11:11 PM by Javad Taghia
If you've ever turned a Raspberry Pi into a media center or retro gaming station, you know how frustrating it can be when it crashes and corrupts your SD card. Here's a little trick to making that a little less painful.
The best home theater PCs are small, quiet, and inexpensive—so the bite-size, $35 Raspberry Pi is…Read more
The Raspberry Pi is a finicky little device. There was a period of time where my Raspberry Pi media center had a lot of trouble—every once in awhile, it would freeze or crash, requiring me to unplug it to get it going again, which would corrupt the SD card. While the problem was caused by a bad power supply, it took me awhile to diagnose, and it was really annoying to have to set up the Pi from scratch every time this happened.
So, I came up with an idea: After installing XBMC and getting everything set up just the way I want it, I'd clone my SD card. That way, if and when it crashed next, I could just copy my all-set-up image back to the SD card, put it in the Pi, and be up and running again in minutes instead of hours. I highly recommend everyone do this to the SD card for their Pi, no matter what you're using it for. It'll make your life a lot easier.
XBMC is a fantastic and free cross-platform media center application we're nuts for. If…Read more
Cloning the SD card is simple. Just follow these steps:
- Get everything set up just the way you want it on your Raspberry Pi, whatever you're using it for. Then shut down the Pi and remove the SD card. Insert the SD card into your computer.
- Start up Win32DiskImager, a program that you probably have from when you first set up your Pi. (If you're on OS X or Linux, you'll have to use the dd command as described here instead of these steps).
- In the "Image File" box, enter the path of your soon-to-be image file. For example, I put mine in
- Under the "Device" box, select your SD card.
- Click the "Read" button to create the image file from your card.
- When it's done creating the image file, you can eject your SD card and put it back in your Raspberry Pi. Keep that IMG file in a safe place.
Now, if anything ever goes wrong with your Pi, you can restore your fully-set-up image using the reverse instructions:
- Insert the SD card back into your computer.
- Head to the start menu or screen and type "disk management." Open the disk management program and find your SD card in the list.
- Right-click and delete all the partitions on your SD card. When it's empty, right-click on it and format it (it doesn't matter what filesystem you format it to, your computer just needs to recognize it).
- Open Win32DiskImager again and browse for your image file. Select your device from the Device dropdown just as you did before.
- This time, click "Write" to write the image to the SD card.
- When it finishes, eject the SD card and re-insert it into your Raspberry Pi. When you boot it up, it should be in the exact same state it was in when you first cloned the SD card.
Once you've done this, setting up your Pi from scratch will be a whole lot simpler!
Photo by derkamener1984.
Helpful, but this only works on the same Pi, right? I think I once tried this method thinking I would help out my friends with a freshly updated and configured XBMC build, but the serial of the Pi itself prohibited it from fully functioning (e.g. codecs)
Yeah, I think it depends. Like akshay said, maybe certain things like licensed codecs may not work, but if you haven't registered something that's connected to your serial number, in theory it should work. I heard some people say you could do this to set up multiple Pis in the same HOUSE as long as you remembered to change their hostnames first.
What prevents it from working on different Pi's? Is it a part of the install? The OS? I clone Wheezy SD cards with some software I wrote and have distributed to over 10 different Pi's without a problem.
For anyone who has OS with Terminal (OSX users, this is for you) something like this:
dd if=/dev/sdb of=sd.img bs=4M
dd if=sd.img of=/dev/sdb bs=4M
Great way to do it, but a couple notes.
1) Make sure you know which device the SD card is, or you can mess up our hard drive. Do this by typing "df" and it should show you the SD card and how big it is. Also can be done in Disk Utility
2) After doing the above, unmount the SD card prior to running "dd". This can be done at the command line or in Disk Utility.
Want Lifehacker’s email newsletter?
Want Lifehacker’s email newsletter?