On 9/19/2011 2:50 PM, David C. Rankin wrote:
On 09/19/2011 01:16 PM, jdd wrote:
Le 19/09/2011 20:10, David C. Rankin a écrit :
error, but still have garbage inside. Something like a cross-linked file on the card causing the garbage in the files. Leave it to the DOS filesystem on the card to mess things up :)
when you write (or read) a flash card, a large part of the operation is buffered
I sometime (too often) notice that one can umount the reader *before* all the reading/writing operations are completely done. Look at the blinking diode if you have one, it keep blinking
so one have to *wait* (30s, one minutes) before unplugging
few weeks ago I copied VirtualBox images from my computer to copy them to a computer 16 km away
when I tryed to copy, the files where present but unreadable. This special usb key do not have led :-(
I beg that the copy program first create the files, then, copy the data
jdd
Here, the data was written to the SD card by the camera, then the SD card was put into a memory card "reader" on my laptop. The files were then copied from the card to the hard drive using a script that basically did:
PICFILES=$(find /media/disk -type f -iname '*.jpg') cp -ur $PICFILES ~/img/photo
It worked well. Then I began experiencing the corruption issues.
I don't see how the command line copy operation could have not waited for the buffer to write to disk before copying the next image from the SD card??
Even after the copy operation was finished, I would then rsync the files to a local server before removing the SD card from the reader. This would have allowed at least 1-5 minutes before card removal. I would have expected an rsync error if it was trying to transfer a file that still had some type of buffer open?? (I could be wrong there.. I just don't know)
Anybody see how the multi-copy of files from the SD card via the script snippets above could have induced the corruption? To me, (at least as of now) the culprit still looks like a bad filesystem on the SD card. The card was reformatted shortly after this corruption issue, but given the corruption, I just went back to a digikam download direct from the camera rather than a copy from the SD card itself. I haven't had a problem since. Perhaps another test is in order.
Thoughts? Guidance?
If you unmounted before you removed, then you're fine. If you didn't unmount, then no amount of waiting is really garanteed, although usually dbflush will have flushed everything every 30 seconds. But no there are no timing related problems or fixes. If it's mounted, the kernel handles all flow control (serialization/blocking/waiting), and when you unmount, when the umount command returns then umount and the kernel have promised everyone that they are all done and the sd card itself has acknowledged the last write as completed, and the sd card does not have a ram buffer cache in it that will lose data when you unplug the card. That sample "garbage" looked tantalizingly image related. SVGFEConvolveMatrix googles up as an image manipulation function, which as far as I can tell, shouldn;t exist actually inside an image, but certainly exists in image manipulation software. Have you tried running an image recovery util that scans a raw drive or drive image and recovers files by recognizing headers and other known image data structures in the raw data, not, or at least not exclusively, by looking at the filesystem. They recover several kinds of files but don't pretend to know their names. You end up with a bunch of numbered files. You have to open them to decide what they are and rename or discard them. The point would be this kind of util would not let the filesystem metadat tell it where files start and stop. It would read every byte of the disk or disk image from zero to end, trying to recognize jpg and other data structures and it would output 1.jpg, 2.png, etc... based only on it's own parsing of the raw data, not by consulting the FAT etc. I did this to recover a lot of deleted images from my girlfriends iphone after it crashed and the only fix was to factory reset, which involved a format. I did the factory reset to get the phone alive again then immediately jailbroke it and captured a dd image over the network and was able to recover thousands of images and other common files from the 8G image. Most were junk of course, browser cache and images and sound clips that were parts of apps, but also were many of the camera images. Of course some stuff was lost for good since the new OS install and the jailbreaking process did overwrite some of the drive just to get to the point where it was even possible to get a dd image. Of course I don't remember the name of that app. It's not on this machine. I think it was a stand-alone app, not requiring install, and it's probably at home on an external drive along with the dd image and the recovered files. -- bkw -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org