Actually, I was running 3.0.0-16 when the power failure occurred. I upgraded to 3.2.8 shortly after the corruption occurred to see if it would fix the corruption. I really do not care about completely repairing or being able to mount the filesystem since I would just like to get my data off the array. I plan on completely rebuilding the filesystem once I get my data back, which may eliminate some recovery steps. I know that btrfs is not completely ready yet, and I understand that it may be necessary to use it to fix my problem, but is there a way to currently recover the data using the tools available using something such as btrfs-restore? I am also willing to wait a little while longer for btrfsck to be completed if it will be able to fix my type of corruption when it is. I just do not want to wait for something that will not fix my problem.
On Fri, Apr 13, 2012 at 8:54 AM, Stefan Behrens <sbehr...@giantdisaster.de> wrote: > On 4/12/2012 11:25 PM, Travis Shivers wrote: >> A few months ago, my btrfs storage array became corrupted because of a >> power failure. A while ago, I made this thread to try and resolve the >> problem. (http://www.digipedia.pl/usenet/thread/11904/15955/) You can >> find detailed information about the problem in the previous thread, >> but I am happy to provide any other details. It didn't really go >> anywhere in the way of solving my problem. The thread ended in me >> waiting for a patch that would allow me to mount my corrupted array >> which was around 2 months ago. > > You were running 3.2.8, that shouldn't corrupt filesystems anymore on > power failure. This is unexpected. > >> >> While I have been waiting, I have tried several things. One of the >> things that I tried was installing the latest Linux kernel (3.4 RC1) >> with the btrfs integrity checking enabled. I read about this module >> here: (http://lwn.net/Articles/466493/) With the option compiled in, I >> have had severe mounting problems. I can only try to mount the array >> once before it does some strange things. The first time I try and >> mount it, it fails, but logs this in dmesg: >> (http://pastebin.com/YwAsdjhs) It looks like there is a bug in this >> integrity checking code. After I try to mount the drive after the >> first time, it just hangs and doesn't return anything or log anything >> in dmesg. Even trying to mount the drive without the integrity >> checking problem hangs and has the same problems. > > [ 43.809870] parent transid verify failed on 5568194412544 wanted > 43477 found 43151 > [ 43.809875] failed mirror was 0 > [ 43.826531] ------------[ cut here ]------------ > [ 43.826573] kernel BUG at fs/btrfs/extent_io.c:1890! > > This is not related to the integrity check code. > > The same issue is reported in the thread "Re: kernel BUG at > fs/btrfs/extent_io.c:1890!". You might want to monitor that thread to > get the fix for it as early as possible. > >> >> I have also grabbed the latest version of btrfs-progs since I saw that >> btrfsck could now repair some corruptions. I built the utilities and >> executed btrfsck. This is the result of the command: >> (http://pastebin.com/CEyvy17r) I saw that there was an error occurring >> in the code at line 1864, so I commented out that line which had the >> text: BUG_ON(rec->is_root); >> I then recompiled the utilities and executed btrfsck again and got >> this: (http://pastebin.com/ihYmuCAm) I also tried btrfsck with the >> repair option with these results: (http://pastebin.com/gnrStyqh) >> >> Another thing that I have experimented with is btrfs-restore. I have >> been somewhat successful in using this tool to restore the files. The >> main problem that I have is that it cannot restore over half of the >> files on the array and just puts an empty file with a size of 0. It >> does restore the other half of the array perfectly. On the files that >> it cannot restore, it returns a return code of -3. For example, here >> is an example of a file which is unable to be restored by this tool: >> (http://pastebin.com/Rg5a0xdG) I read more about this tool here >> (http://btrfs.ipv5.de/index.php?title=Restore) I tried this tool with >> '-u 1' and '-u 2' flags, which did not help anything. I do not think >> that half of my array is corrupted since it was just a power failure >> and the drive is also mirrored, which should provide some redundancy. > > And btrfsck is not 100% finished yet, as far as I understood it. There > is always room for improvement. To wait some more time might be a good idea. -- 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