C
Cataleptic
I'm getting intermittent read errors when reading large files from a
160G SATA drive hooked up to my P4P800 motherboard. They don't happen at
the same location on any given file, and the happen relatively
infrequently. I've tried swapping cables and updating drives, and I've
got to the point where I'm almost certain that it's the drive itself.
To verify this, I wrote a small program that reads in 2MB chunks from a
given file, and stores a checksum for that chunk. Then it re-reads those
chunks and compares the new checksum with the old one. Unforuntately, I
have 1GB of RAM, which means the OS seems to maintain a read-buffer a
good 200MB or more, so the target file has to be at least twice that to
ensure that the data being checked has not been cached. On a 1G test
file, checksums mismatch about once every 4 or 5 passes.
Obviously, I need to be able to reliably recover the data on the faulty
drive before I return it. To do that, I need one (or more) of the following:
1. An App or some API calls that allow me to bypass or clear the read-cache.
2. An App or some API calls that let me set the size of the read-cache
to something nice and small, say 4MB or less. I've tried CacheManXP and
CacheSet
3. A data recovery app that can bypass the cache and
double/triple/quadruple check the data it reads before saving it.
If anyone could help me, I'd be most grateful.
160G SATA drive hooked up to my P4P800 motherboard. They don't happen at
the same location on any given file, and the happen relatively
infrequently. I've tried swapping cables and updating drives, and I've
got to the point where I'm almost certain that it's the drive itself.
To verify this, I wrote a small program that reads in 2MB chunks from a
given file, and stores a checksum for that chunk. Then it re-reads those
chunks and compares the new checksum with the old one. Unforuntately, I
have 1GB of RAM, which means the OS seems to maintain a read-buffer a
good 200MB or more, so the target file has to be at least twice that to
ensure that the data being checked has not been cached. On a 1G test
file, checksums mismatch about once every 4 or 5 passes.
Obviously, I need to be able to reliably recover the data on the faulty
drive before I return it. To do that, I need one (or more) of the following:
1. An App or some API calls that allow me to bypass or clear the read-cache.
2. An App or some API calls that let me set the size of the read-cache
to something nice and small, say 4MB or less. I've tried CacheManXP and
CacheSet
3. A data recovery app that can bypass the cache and
double/triple/quadruple check the data it reads before saving it.
If anyone could help me, I'd be most grateful.