Copying a CF card written in a special format
October 15, 2009 9:57 AM   Subscribe

Cloning a CF card written in a proprietary format. Seeking suggestions for USB card reader, software, etc.

I want to make one backup copy of a valuble compact flash card that is written in a proprietary format. I can access the CF card under Windows XP using proprietary software, but only using an (out-of-production) ImageMate SDDR 31 that has been modified with special firmware. This PDF has a few details but is probably not very helpful.

Needless to say the proprietary software isn't set up to let me make my backup. Under Windows Explorer the card doesn't appear to have any contents.

I don't know the capacity of the CF card off hand but it's not very large, 512 MB or less. I plan on finding this out and getting the a matching blank CF card.

I have Ubuntu installed and reckon that linux will probably be the way to go. I am semi-comfortable with the OS. I also have access to a newish Mac Mini.

I'm currently thinking about trying ddrescue possibly together with a second CF card reader. But I'm not sure if my modified CF card reader (1) is absolutely required to read and write the special CF card, or if (2) linux will like the modified CF card reader. I haven't done much experimentation, partly out of fear of trashing the expensive card and/or card reader.

I'd like any recommendations for well-supported CF card readers that might be able to ensure I can get the data off all the nooks and crannies of the CF card. I'd also appreciate advice on software for cloning the disc, etc.

To preempt our resident copyright police, the backup is legal under 17 USC 117.
posted by exogenous to Computers & Internet (6 answers total) 1 user marked this as a favorite
You don't need a second card reader. Use dd (you don't really need ddrescue, dd_rescue, or dd_rhelp if you're not dealing with something with bad blocks) to write the card to an image file, and use it to write the image file to a new card. Bonus: you now have an image file to make as many cards as you want.
The following steps will do what you want, with /dev/sdX being the device corresponding to the card reader, amd card.img being the image file being created.
dd if=/dev/sdX of=card.img
[swap disks]
dd if=card.img of=/dev/sdX
posted by zsazsa at 10:09 AM on October 15, 2009

You ought to be able to read all the data from the CF card with your common or garden variety $11 USB reader from Fry's. My guess is that the data is simply encrypted in some simple way, but this won't affect the cloning -- you will still need the modified CF reader (or the GPS device) to read the clone, but I assume you're doing this to have a backup, so this won't be an issue.

If I'm right about it being encrypted, the filesystem won't be recognized, so you really have very little to lose -- Linux won't mount it and therefore there is no chance that you will accidentally modify something on the card. dd would be the tool you want to use to make the copy. You can either copy it to an image file on your hard disk and then make the clone from that, or you can use a second USB CF reader to make the copy without the intermediate image. (The former is probably safer, since there's no possibility you'd get the source and target mixed up.)

Another possibility is that the card reports something weird about itself (i.e., it says it's much smaller than it really is) and the modified CF reader ignores this and "knows" how big it really is. Naturally the data required by the application would be stored in the part of the card that isn't visible to an unmodified CF reader. But I think encryption (probably simple XOR with a constant) is more likely.

If you can't get the exact size CF card, I imagine one that's larger would work fine.
posted by kindall at 10:16 AM on October 15, 2009

What zsazsa said.
posted by Setec Astronomy at 10:19 AM on October 15, 2009

You may not be able to even read the contents of the card if it's protected. There are some SanDisk CF cards that use a special reader to access the cards. They cannot be read by a regular CF card reader. Navionics does this for their nautical chart cards.
posted by wkearney99 at 3:00 PM on October 15, 2009

The "dd" command gave the following error with the special CF card:
dd: reading `/dev/sdb': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.0819404 s, 0.0 kB/s
However the command did seem to work with the new blank CF card I have.

FWIW, I used my modified SanDisk card reader. I had bought a cheap USB card reader on ebay but one of the pins promptly bent, so I didn't really get to use it.
posted by exogenous at 4:54 PM on October 24, 2009

I straightened out the pin on the cheap generic CF card reader. Same result, but slower. Using "conv=noerror" didn't help either.
posted by exogenous at 5:14 PM on October 24, 2009

« Older I need to kill one pest while protecting another.   |   Being Sued by a Debt Collection Firm Newer »
This thread is closed to new comments.