In Praise of PhotoRec


As I mentioned on Google+, I destroyed my laptop’s filesystem. This was entirely due to my own carelessness. As I sat there looking at an unhelpful GRUB error message, I reviewed my options. I knew that I had destroyed the partition table on my laptop, and created two new partitions: one 1GB ext4 partition and one 512MB Linux swap partition. Both had been formatted, meaning that I wouldn’t be able to easily get my old partitions back, and even if I could the filesystem would be pretty corrupt.

I could spend some time using other computers in my house to research recovery options. This was a crap shoot at best, and I didn’t really expect to be able to get back to a reliable state. I could cut my losses and install a fresh copy of Ubuntu atop a new partition table. Or I could try to tell my wife that the computer was beyond repair and that I’d need to purchase a brand new system.

After several deep breaths, I chose the second option. I quickly started the Ubuntu installation, and sat down to watch some television while waiting for the process to complete. I had performed a mental inventory of the data on my laptop, and felt reasonably comfortable with losing most of what was on there. After a couple of moments, though, I realized that I was losing all of the digital photos of my family. We’ve taken a lot of photos in the last two years, and only a small portion of those get published to Flickr. I had a tremendous sinking feeling in my gut as I realized the enormity of my loss.

The next day I made an effort to put a good face on things. It’s just data. Just pictures. I still had my family, of course, and we could take new pictures. No big deal.

When relating all of the above to Mike, he shared his own digital loss experiences, and mentioned in passing PhotoRec, a “file data recovery software designed to recover lost files including video, documents and archives from hard disks, CD-ROMs, and lost pictures from digital camera memory.” It’s part of the TestDisk suite, which I saw in passing while briefly investigating my recovery options prior to re-installing Ubuntu. I thought to myself, what the heck: if it can recover some of the files, that’s better than nothing.

So last night I booted the Ubuntu live CD, edited /etc/apt/sources.list to ensure that the Universe repository was enabled, and then executed sudo apt-get install testdisk. I installed an empty USB thumb drive, and then invoked sudo photorec /dev/sda, instructing PhotoRec to look at my laptop’s entire hard drive.

The entire process was alarmingly simple. By default, PhotoRec finds and recovers a whole lot of file types: tarballs, executables, text files, and more. My first pass with the default options quickly filled the USB stick because it was recovering a lot more than just the JPG files I wanted.

I purged the USB stick and ran PhotoRec again, this time instructing it to only recover JPG files. Again the USB stick quickly filled up! I inserted another stick with twice the capacity and that was filled to capacity. I attached a 500GB USB drive, carved out a 10GB partition – thinking that that would be more than enough to finish the job – and even that was filled! So I made a second partition on the USB drive for ~490 GB and let PhotoRec run over night.

This morning, several thousand JPG files had been recovered. PhotoRec can’t restore the original file names, but a quick skim through the various directories it creates shows that my photos – and a lot more – have been salvaged. Now I can go through the recovered files at my leisure and organize them as necessary for import back into Shotwell on my laptop, or archive to DVD.

A few quick thoughts:

I can’t praise PhotoRec highly enough.

home / about / posts / notes / RSS