
On 30/06/14 23:24, Russell Coker wrote:
On Mon, 30 Jun 2014 22:28:52 Anthony Shipman wrote:
On Mon, 30 Jun 2014 08:12:45 pm Russell Coker wrote:
BTRFS in a default configuration will use "dup" for metadata. So a bad metadatablock can be corrected. But a bad data block causes data loss -
at least you know you have data loss (as opposed to silent data corruption on older filesystems).
What does data loss look like? Does the whole file become unavailable or are there just error codes delivered along with the data?
If only data blocks are corrupted and you read from a part of the file that doesn't contain those blocks then the kernel won't know that some other part of the file is corrupted. So it's possible to get some data back from a corrupted file.
You can "easily" recover the rest of the data on any file system if you are prepared to go low level unless the sector in question is a hard write error, and even then I think it will work if the drive's firmware does a bad sector remap. Use dd with the noerror flag to read the physical sector (I have had a case where a one of the eight logical sectors was dud) then write it back, and hey presto the file can be read. Actually in the case above it was in a fat32 partition directory block and we got a lot of files back. Glory to bootable linux sticks.