Need help - Will Pay $ - Someone Familiar with Repairing CR2 files?


Recommended Posts

Had a hard drive go south prior to backup of a wedding. Am in desperate need. Recovered from original media card the CR2 files I shot; was near 800 in all. All but 100 of them are corrupted as recovered from the CF card. They are all recognized as CR2 files in Explorer and even have the correct file sizes. But neither Lightroom, Canon Photo Utility, Photoshop or any other editors will open them. I've tried ExiftTool to extract JPGs, got file format errors. I have a Hex Editor but can't make heads or tails of what I'm looking at. I'm out of options and don't want to have to tell this couple I have lost their photos. Anyone out there have experience with repairing this type of file corruption that can do the work or have suggestions? PLEASE. Need help!!!!

CR2Repair prompts me to download Stellar Photo Repair, which is the program I used to recover the CR2 files from the CF Card. But although it says in the description that the software can repair corrupted headers, I can't for the life of me figure out how to do that. 

you can use PhotoInfo to recover the JPEG from the EXIF, if the header is still OK or has minor damage; if the header is very damaged than even if the data is still OK (doubt it), you can't access it. Please post the EXIFTool result here, so we can see if it's still possible to recover something. Also did you try PhotoInfo? There's also Quick JPEG from CR2, but i haven't tried it: http://www.gdzid.com/QJFC.htm

_MG_8767.CR2

Main Info

 

Filename

_MG_8767.CR2

Directory

H:

Image type

Canon Raw File

Width

0 pixels

Height

0 pixels

File size

23.1Mb

File created date

11/25/2013 12:17:38 PM

File modified date

9/7/2013 5:30:30 PM

Bits Per Plane

8

Planes

3

Dpi

72 pixels

tada

 

or8tV1x.png

 

edit:zhangm beat me to it.

 

anyways, just mangled headers. the header is in the middle of the file. to fix the image, start at the header, cut from there till the end of the file, this will include the header and some image data, and paste this back at the top of the file, so whatever you pasted is the header+some image data,then the rest of the data will follow. save and you have your image. its tedious if you have many images. i might be able to write you a program to automate it. i cant do it now though.

I'm using XVI32 to view the files, find the second instance of FF E0 in each one, and delete up to that point.

http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm

http://www.mikekunz.com/image_file_header.html

XVI32 is scriptable, so check out the documentation on their site.

This is greek to me. Any help in salvaging these images would be so appreciated. Let me look over the post, get the program and take a stab. Worst case scenario I get nowhere and hire you :-)

There are 800 images. Need to salvage as many as I can. 
 

turns out, this is just the lossless jpeg image that is stored as grayscale. there is still plenty of info in the file such as color that needs to be parsed. i'll definitely parse the file further hoping to demangle it so it displays correctly.

ok heres the deal. it looks like in each of the 2 files you provided, there is the complete grayscale image, and some color data, about 1/4 color of the image. there is other data in the file, but this looks like color data of a different file. i tried replacing the 3/4 color data in one file from the other one you gave me, but it isnt the right one. the problem is that parts of different files are mangled in between and they may not be in order.

 

you provided image files 8767,and 8768. if you could upload 5 images before 8767 and 5 images after 8768, i could then try using the color information from those files into the 2 images i currently have. if the correct color exists in these for the 2 files i have, then hopefully there is a pattern where we could see for example 3 filename numbers back has the correct color information for us to complete the current numbered image.

If you want to get a raw byte-by-byte image of the entire memory card to me, perhaps from that I could attempt to repair the filesystem and see if we can get the entire set of files restored.

Instructions for doing the above (so you can get on with some of it if I've gone to bed):

 

Capturing the device image:

 

We're going to use the Linux dd command with a 'Live' Linux CD. (I'm presuming you're not using Linux as your main operating system right now, else some of this is redundant).

 

Note, in regards to storage space for saving this device image; The image file is going to be slightly larger than the total volume size of the memory card you're copying. Whether though you actually need this amount of space to store it depends on whether the file system of the device you're storing it on uses compression and if so how much space can be saved. FAT does not use compression, but NTFS does. If you're going to save it to a hard drive, it's perhaps unecessary to point this out, but if you're saving to a pen drive or another memory card, this fact may be important!

 

Also note, I'm generally presuming you're using a Windows computer and therefore NTFS; Ubuntu may 'mount' your NTFS partitions automatically, if not, the following instructions may help: http://superuser.com/questions/352157/mount-ntfs-windows-partition-on-ubuntu-live-cd

 

1) Download a Linux live CD (E.g the standard desktop Ubuntu install disk)

2) Burn it to disk

3) Reboot your computer and boot this (I presume you need no instructions here, ask if you do). At some point during booting it, it'll give you an option to "try ubuntu without making changes to your computer", that's the one you want.

4) Connect the memory card if you haven't already

5) Connect the device/card you're going to save the image file to, if necessary

6) Load a terminal (command prompt)

7) Enter the following, modifying the references to the devices as necessary:

sudo dd if=/dev/hda of=/dev/hdb/image.dd bs=512 conv=noerror,sync

Where /dev/hda is the device to copy from and /dev/hdb is the device to save the file to.

8) When it's completed, you can shutdown and boot your normal OS

 

Getting it to me:

 

We'll use torrents as an efficient mechanism if you're happy with that.

 

1) Download and install utorrent (or other client of choice)

2) File > create new torrent

3) Point it to the image file (image.dd) created above

4) Leave all other options as defaults, i.e. leave the public trackers, leave 'start seeding' checked, leave 'private torrent' UNchecked

5) Click 'create' and save the small torrent file somewhere

6) Email me that little torrent file (I can give you my email via PM)

7) I'll open the torrent file in my torrent client which will start copying the file over to my computer, we just need to leave our computers on until I've got it, then I can start to work on it

Oh, something I forgot when writing the above instructions, when sending it to me, stick the image file in a zip file to compress it, then make the torrent with the zip file. That may reduce the size of the file to be transfered. I presume you need no instructions for this, but just ask if you do.

How large is this file going to be? Just thinking that using a service like http://ge.tt might be easier, if you are not a torrent user already.

 

 

What is the maximum/largest file size?

We do not limit the file size you can upload, but your account may not have enough storage space for the file. If that's the case you can upgrade your account to get more space.

Some browsers may limit you to 2GB per file. If this is a problem, then you can use a newer browser. Chrome is always a good choice.

 

What is the storage limit without an account?
You have 250MB of storage space without creating an account. If you create a free account you will receive 2GB space.
 
  • 2 weeks later...
This topic is now closed to further replies.
  • Posts

    • Simple answer is yes, you will still get the Windows updates and as long as browser is up to date, you will be good. Only thing secure boot does is protect you against boot level threats and make it harder to install other OS's. I've been looking into this pretty thoroughly lately myself as wifes computer has secure boot disabled plus my other, older computers that run Linux, don't have secure boot enabled. Have seen all kinds of questions about this on the Linux Mint and MX Linux forums. Just don't suddenly enable secure boot now.
    • How many other companies will follow Ford's lead? Or, have they already gotten lazy and become enslaved to AI--and now can't figure out how to get out of that mess.
    • Why would any self-respecting intelligent person follow any recommendation by Donald's GOP administration? With almost two years of fabrications, deceit, and blatantly illegal behavior, why believe them now? They had best be gone after the November 2026 election, so we'll wait and see.
    • AltSendme 0.4.1 by Razvan Serea AltSendme is a minimal, cross-platform application designed for fast, secure, and private peer-to-peer file transfers. It allows users to send files or entire directories directly between devices without relying on cloud servers, accounts, or any personal information. Everything is encrypted end-to-end using modern protocols like QUIC and TLS 1.3, ensuring both strong security and low-latency performance. Transfers are verified with BLAKE3 for data integrity, and interrupted downloads automatically resume, making the experience reliable even on unstable connections. You can transfer anything—images, videos, documents, and more. Integrity checks are performed on both ends, so your files are automatically verified for correctness during both sending and receiving. AltSendme works seamlessly across local networks or long-distance links, capable of saturating multi-gigabit connections for extremely fast delivery. With built-in NAT traversal and encrypted relay fallback, it connects devices almost anywhere. The app integrates with the Sendme CLI and will soon support mobile and web platforms. Fully free and open-source, AltSendme offers a lightweight, privacy-first alternative to traditional cloud-based services, removing size limits, upload costs, and unnecessary data exposure. AltSendme 0.4.1 changelog: Release Highlights Self-hosted relays: Run your own iroh relay so transfers don't rely on public infrastructure. Includes a full deployment template in deploy/relay/ with Docker Compose for a VPS and configuration examples for production use. Fly.io support: One-click deploy template for Fly.io, including a quick-start config (fly.dev.toml) for testing without a custom domain, plus production setup with Let's Encrypt and your own hostname. Relay settings UI: New Settings → Network panel to choose how AltSendme connects: automatic public relays, custom self-hosted URLs (with optional auth token), or disabled. Test connections, verify latency, and see live relay status in the footer. Disable relays: Turn off relay servers entirely when you only need same-network transfers (e.g. LAN). Direct connections only. No relay hop required when devices can reach each other. Android graduates from beta: Android is now part of the regular release cycle alongside desktop. APKs ship with each version (universal, arm64, and armv7). Other improvements Private relay access control via shared auth token Relay fallback notifications when a custom relay is unreachable Broadcast mode toggle in sharing settings Android release build fixes (split-per-ABI APKs, universal APK preservation) UI polish: mobile safe-area insets, dropzone layout, transfer progress animation Bug fixes for minification-related serialization issues and system tray icon loading What's Changed feat(relay): add relay status functionality and settings UI (a120cdf) feat(relay): implement custom relay server configuration and verification (51276c7) feat(relay): add configuration for private relay access and enhance observability features (48fbabf) feat(relay): enhance relay URL validation, display connection status (d4fffa0) feat(relay): add RelayChangeGuard component and enhance relay-related translations (16ba514) feat(broadcast): add toggle setting for broadcast mode in sharing UI (ca6d977) fix(relay): correct QUIC discovery port, pin image, templatize fly.dev (52a2ba5) fix: More broken serialization due to minification (67491a9) fix(android): preserve true universal APK across per-ABI builds (e9f256f) fix(ui): conditional safe-area insets padding on mobile (1182f0e) refactor(transfer): CircularRing component animation fix (944572b) chore(android): drop x86 and x86_64 release APKs, keep universal+arm64+armv7 (34ada0b) Download: AltSendme 0.4.1 | ARM64 | ~9.0 MB (Open Source) Download: AltSendme for MacOS | Android Links: AltSendme Home Page | GitHub | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • You are mostly right about the ephemeral nature of it. As I mention in the article, if you dont add a second device or take a backup of your account before uninstalling it, then yes you will lose access to your account. That said, in terms of actual user experience when you sync multiple devices your message history carries across and there's also a Saved Messages chat like there is on Telegram to send messages and attachments between your installs. But yh, what you point out are correct and its not trying to emulate Messenger or Telegram.
  • Recent Achievements

    • Week One Done
      flexorcist earned a badge
      Week One Done
    • One Month Later
      Woland13 earned a badge
      One Month Later
    • Week One Done
      Woland13 earned a badge
      Week One Done
    • One Year In
      bernmeister earned a badge
      One Year In
    • Week One Done
      Scoobystu earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      495
    2. 2
      +Edouard
      225
    3. 3
      PsYcHoKiLLa
      149
    4. 4
      Steven P.
      75
    5. 5
      FloatingFatMan
      71
  • Tell a friend

    Love Neowin? Tell a friend!