Am Freitag, 8. März 2013 schrieb Frédéric COIFFIER: > Hi, Hi Frédéric,
> I'm using a Linux 3.7.6 (Gentoo Linux) with btrfs-progs-0.20_rc1_p56 and > since few days, I have some uncorrectable errors : > > # btrfs scrub status / > scrub status for 6b6ea99b-edee-498d-bf07-f3a3f1cba2f3 > scrub started at Thu Mar 7 20:12:31 2013 and finished after 515 > seconds > total bytes scrubbed: 31.02GB with 6 errors > error details: csum=6 > corrected errors: 0, uncorrectable errors: 6, unverified errors: 0 > > I don't know what has produced this error (maybe an hard reset or a power > cut) but I use an old not-SSD hard-disk. This disk is still fine? Is smartctl -a happy with it? > I have discovered this problem thanks to several errors in dmesg when I try > to access to a file : > > [ 2985.163718] btrfs: sda2 checksum verify failed on 26326409216 wanted > 59A31CB1 found DFB0FE7F level 0 > [ 2985.169191] btrfs: sda2 checksum verify failed on 26326409216 wanted > 59A31CB1 found DFB0FE7F level 0 […] > If I restart a btrfs scrub, I get these messages : > > [ 3047.835131] btrfs: checksum error at logical 272228352 on dev /dev/sda2, > sector 548080: metadata leaf (level 0) in tree 5 > [ 3047.835134] btrfs: checksum error at logical 272228352 on dev /dev/sda2, > sector 548080: metadata leaf (level 0) in tree 5 > [ 3047.835137] btrfs: bdev /dev/sda2 errs: wr 0, rd 0, flush 0, corrupt 20, > gen 0 > [ 3047.953751] btrfs: unable to fixup (regular) error at logical 272228352 on > dev /dev/sda2 […] > I tried a LiveCD to make a btrfsck [I have to check its version] but it > segfaults during the test. > > Today, I can't remove the file (and I can't delete its directory), updatedb > runs during hours when it tries to read this file. > So, what is the best way to recover these errors (as I think that some files > are definitely lost) ? > I would like to identify the corrupted files and to delete them. I thought that with recent kernels BTRFS would report the file which is affected, but here it doesn´t seem so. I think its also possibe to find out the file from the block number. But I do not remember the direct way to do it. I only know the other way around with filefrag -v or hdparm --fibmap - well actually file thinking on it, vice versa needs to have knowledge of filesystem structure… Maybe its possible to map something in the output in btrfs-debug-tree to above output. But I really think BTRFS displays the filename affected meanwhile. So maybe if it does not, its some metadata being affected? So output of btrfsck hints at that and that you can´t remove the file does as well. What happens if you try to remove the file? Do you get an input/output error or something like that? Maybe someone else can help with that. Aside from that: Thats uncorrectable errors for a reason :) Thanks, -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html