Tag: cf

  • CF Card Undelete for Linux

    I hope you never need this. But this worked for me.

    I accidentally deleted a bunch of files from the CF card that was in my card reader. I recovered them all perfectly.

    First, before you do anything else, unmount the card’s file system. This will stop any additional changes being made to the card.

    You’ll need to know:

    1. the device name of the card’s file system. It could be something as simple as /dev/sda1, or it could be something complex, like /dev/scsi/host1/bus0/target0/lun0/part1 (as it is with me).
    2. the names of the files you accidentally deleted. For example, if you deleted dsc_1017.jpg and dsc_1018.jpg in the dcim/100ncd70 directory, you’ll specify these as /dcim/100ncd70/dsc_1017.jpg and /dcim/100ncd70/dsc_1018.jpg.

    First, check that the files can be undeleted:

    # fsck.vfat -u /dcim/100ncd70/dsc_1017.jpg -u /dcim/100ncd70/dsc_1018.jpg /dev/scsi/host1/bus0/target0/lun0/part1

    If you get the message Warning: did not undelete file ..., that’s a file that has been overwritten, perhaps in your camera. It’s gone; only the name remains. You won’t get it back.

    Then, you can actually restore the files:

    # fsck.vfat -r -u /dcim/100ncd70/dsc_1017.jpg -u /dcim/100ncd70/dsc_1018.jpg /dev/scsi/host1/bus0/target0/lun0/part1

    If all goes well, your files will be back. Makes backups, and don’t do it again.

  • simple cheapo CF card adaptor and Linux

    As I’m about to go (almost) entirely digital, I’m looking for ways of reading CF cards on my Linux-based ThinkPad. I was in Henry’s clearance store yesterday, and they had PCMCIA CF card readers for $10. I’ve found that it works well, though it took me a while to get it going. Here’s what I did:

    You will need to install Card Services for Linux, if you haven’t already. After that’s done, you can check which cards are installed with cardctl ident:

    Socket 0:
      product info: "Wireless Network CardBus PC Card", "Global", "", ""
      manfid: 0x0097, 0x8402
    Socket 1:
      product info: "LEXAR ATA FLASH CARD     ", "STORM  ", "ST BM"
      manfid: 0x4e01, 0x0200
      function: 4 (fixed disk)
    

    Ignore the Socket 0 output — it’s my wireless network card. The adaptor in socket 1 does contain a Lexar CF card; you’ll get a different message if yours is a different manufacturer.

    If you don’t get this, it’s likely that (somehow) your system isn’t preloading the ide-cs module; check the /etc/pcmcia/config file, and read the various pcmcia-cs manual pages.

    If you check the output of the kernel messages (with dmesg, or your tool of choice), you should see:

    hde: LEXAR ATA FLASH, CFA DISK drive
    

    You’ll want to make a mount point for this disk, so mkdir -m777 /mnt/flash. Then you can edit /etc/fstab, and add:

    /dev/hde1 /mnt/flash auto noauto,user,rw 0 0
    

    From now on, you can access your camera’s CF card from /mnt/flash. No messing around with USB required!