Re: BTRFS not mountable, recover won't work

2017-04-13 Thread Qu Wenruo



At 04/13/2017 07:45 PM, Malte Eggers wrote:

On Mon, 2017-04-10 at 16:53 +0800, Qu Wenruo wrote:


At 04/10/2017 04:37 PM, Malte Eggers wrote:

On Mon, 2017-04-10 at 16:18 +0800, Qu Wenruo wrote:


At 04/10/2017 01:17 AM, Malte Eggers wrote:

Hi,

After suspending and waking up my laptop with the external hard
drive
connected, I could no longer access the files on it. So I
unmounted
and
remounted it, only to discover that I could no longer mount it.


This is the error (mounting with usebackuproot, same error
without):

[891667.002861] BTRFS info (device dm-0): trying to use backup
root
at
mount time
[891667.002870] BTRFS info (device dm-0): disk space caching is
enabled
[891667.002876] BTRFS info (device dm-0): has skinny extents
[891667.016395] BTRFS error (device dm-0): parent transid
verify
failed
on 108855296 wanted 32139 found 32104
[891667.017181] BTRFS error (device dm-0): parent transid
verify
failed
on 108855296 wanted 32139 found 32104
[891667.017194] BTRFS error (device dm-0): failed to recover
balance:
-5


What about trying skip_balance mount option to skip balance


Tried that, same error



[891667.078829] BTRFS error (device dm-0): open_ctree failed


btrfs restore and btrfs-find-root fail like this (on both
debian
sid
and fedora 25):

parent transid verify failed on 108806144 wanted 32139 found
32104
parent transid verify failed on 108806144 wanted 32139 found
32104
parent transid verify failed on 108806144 wanted 32139 found
32104
parent transid verify failed on 108806144 wanted 32139 found
32104
Ignoring transid failure


Would you please paste the output of "btrfs-debug-tree -b
108806144
/dev/dm-0" ?


volumes.c:1645: btrfs_chunk_readonly: BUG_ON `!ce` triggered,
value
1


This BUG_ON() means we can't find a corresponding chunk for given
offset.

"btrfs-debug-tree -t chunk" would help, if it executes without
problem.


btrfs-debug-tree produces the same error


If "btrfs-debug-tree" can't even open the fs, then "btrfs
inspect-internal dump-super -f /dev/dm-0" would help them.


dump-super finishes as it appears without error: https://pastebin.c
om/t
i8xuuR5
How would I proceed from here?


The obvious problem I found is that, system chunk at bytenr 0 seems
invalid.
The physical address of that chunk is devid 1 offset 0, which is not
possible as 0~1M is reserved.

According to the backtrace of btrfs-progs, it seems to be related to
chunk tree corruption.
Which btrfs chunk recovery may help.

It's recommended to backup your system chunks and superblocks first.
--
# Backup sys chunks
   dd if=/dev/dm-0 of=sys_chunk1_stripe_0 bs=1 count=8388608
skip=20971520
   dd if=/dev/dm-0 of=sys_chunk1_stripe_1 bs=1 count=8388608
skip=29360128
   dd if=/dev/dm-0 of=sys_chunk0_stripe_0 bs=1 count=4194304 skip=0
# Backup first superblock
   dd if=/dev/dm-0 of=superblock0 bs=1 count=4k skip=64k
--

Then try chunk recovery
--
   btrfs rescue chunk-recover /dev/dm-0
--

It can be very slow since it may scan the full device.

Thanks,
Qu


Thanks,
Qu


Thank you





Is there any way to just rescue whatever can still be reconstructed?
Cheers,
Malte


The problem is that, btrfs fails to build its chunk maps.

Unlike traditional fs, btrfs uses dynamically allocated chunk maps, so 
if btrfs fails to build its maps, nothing can be read out.


That's why we have special purposed chunk recover command, due to the 
importance of chunk maps.

(Although it doesn't work as expected sometimes)

Thanks,
Qu


--
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





--
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


Re: BTRFS not mountable, recover won't work

2017-04-13 Thread Malte Eggers
On Mon, 2017-04-10 at 16:53 +0800, Qu Wenruo wrote:
> 
> At 04/10/2017 04:37 PM, Malte Eggers wrote:
> > On Mon, 2017-04-10 at 16:18 +0800, Qu Wenruo wrote:
> > > 
> > > At 04/10/2017 01:17 AM, Malte Eggers wrote:
> > > > Hi,
> > > > 
> > > > After suspending and waking up my laptop with the external hard
> > > > drive
> > > > connected, I could no longer access the files on it. So I
> > > > unmounted
> > > > and
> > > > remounted it, only to discover that I could no longer mount it.
> > > > 
> > > > 
> > > > This is the error (mounting with usebackuproot, same error
> > > > without):
> > > > 
> > > > [891667.002861] BTRFS info (device dm-0): trying to use backup
> > > > root
> > > > at
> > > > mount time
> > > > [891667.002870] BTRFS info (device dm-0): disk space caching is
> > > > enabled
> > > > [891667.002876] BTRFS info (device dm-0): has skinny extents
> > > > [891667.016395] BTRFS error (device dm-0): parent transid
> > > > verify
> > > > failed
> > > > on 108855296 wanted 32139 found 32104
> > > > [891667.017181] BTRFS error (device dm-0): parent transid
> > > > verify
> > > > failed
> > > > on 108855296 wanted 32139 found 32104
> > > > [891667.017194] BTRFS error (device dm-0): failed to recover
> > > > balance:
> > > > -5
> > > 
> > > What about trying skip_balance mount option to skip balance
> > 
> > Tried that, same error
> > > 
> > > > [891667.078829] BTRFS error (device dm-0): open_ctree failed
> > > > 
> > > > 
> > > > btrfs restore and btrfs-find-root fail like this (on both
> > > > debian
> > > > sid
> > > > and fedora 25):
> > > > 
> > > > parent transid verify failed on 108806144 wanted 32139 found
> > > > 32104
> > > > parent transid verify failed on 108806144 wanted 32139 found
> > > > 32104
> > > > parent transid verify failed on 108806144 wanted 32139 found
> > > > 32104
> > > > parent transid verify failed on 108806144 wanted 32139 found
> > > > 32104
> > > > Ignoring transid failure
> > > 
> > > Would you please paste the output of "btrfs-debug-tree -b
> > > 108806144
> > > /dev/dm-0" ?
> > > 
> > > > volumes.c:1645: btrfs_chunk_readonly: BUG_ON `!ce` triggered,
> > > > value
> > > > 1
> > > 
> > > This BUG_ON() means we can't find a corresponding chunk for given
> > > offset.
> > > 
> > > "btrfs-debug-tree -t chunk" would help, if it executes without
> > > problem.
> > 
> > btrfs-debug-tree produces the same error
> > > 
> > > If "btrfs-debug-tree" can't even open the fs, then "btrfs
> > > inspect-internal dump-super -f /dev/dm-0" would help them.
> > 
> > dump-super finishes as it appears without error: https://pastebin.c
> > om/t
> > i8xuuR5
> > How would I proceed from here?
> 
> The obvious problem I found is that, system chunk at bytenr 0 seems
> invalid.
> The physical address of that chunk is devid 1 offset 0, which is not 
> possible as 0~1M is reserved.
> 
> According to the backtrace of btrfs-progs, it seems to be related to 
> chunk tree corruption.
> Which btrfs chunk recovery may help.
> 
> It's recommended to backup your system chunks and superblocks first.
> --
> # Backup sys chunks
>   dd if=/dev/dm-0 of=sys_chunk1_stripe_0 bs=1 count=8388608
> skip=20971520
>   dd if=/dev/dm-0 of=sys_chunk1_stripe_1 bs=1 count=8388608
> skip=29360128
>   dd if=/dev/dm-0 of=sys_chunk0_stripe_0 bs=1 count=4194304 skip=0
> # Backup first superblock
>   dd if=/dev/dm-0 of=superblock0 bs=1 count=4k skip=64k
> --
> 
> Then try chunk recovery
> --
>   btrfs rescue chunk-recover /dev/dm-0
> --
> 
> It can be very slow since it may scan the full device.
> 
> Thanks,
> Qu
> 
> > > Thanks,
> > > Qu
> > 
> > Thank you
> > 
> > 
> 
Is there any way to just rescue whatever can still be reconstructed?
Cheers,
Malte
--
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


Re: BTRFS not mountable, recover won't work

2017-04-10 Thread Malte Eggers
On Mon, 2017-04-10 at 16:53 +0800, Qu Wenruo wrote:
> 
> Then try chunk recovery
> --
>   btrfs rescue chunk-recover /dev/dm-0
> --
> 
> It can be very slow since it may scan the full device.
> 
> Thanks,
> Qu
> 
> > > Thanks,
> > > Qu
> > 
> > Thank you
> > 
Thank you for your help this far
After some two hours, it finally finished, but not with the result that
I was hoping for:
~# btrfs rescue chunk-recover /dev/dm-0
Scanning: DONE in dev0
No valid btrfs found
open with broken chunk error
Chunk tree recovery failed
--
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


Re: BTRFS not mountable, recover won't work

2017-04-10 Thread Qu Wenruo



At 04/10/2017 04:37 PM, Malte Eggers wrote:

On Mon, 2017-04-10 at 16:18 +0800, Qu Wenruo wrote:


At 04/10/2017 01:17 AM, Malte Eggers wrote:

Hi,

After suspending and waking up my laptop with the external hard
drive
connected, I could no longer access the files on it. So I unmounted
and
remounted it, only to discover that I could no longer mount it.


This is the error (mounting with usebackuproot, same error
without):

[891667.002861] BTRFS info (device dm-0): trying to use backup root
at
mount time
[891667.002870] BTRFS info (device dm-0): disk space caching is
enabled
[891667.002876] BTRFS info (device dm-0): has skinny extents
[891667.016395] BTRFS error (device dm-0): parent transid verify
failed
on 108855296 wanted 32139 found 32104
[891667.017181] BTRFS error (device dm-0): parent transid verify
failed
on 108855296 wanted 32139 found 32104
[891667.017194] BTRFS error (device dm-0): failed to recover
balance:
-5


What about trying skip_balance mount option to skip balance

Tried that, same error



[891667.078829] BTRFS error (device dm-0): open_ctree failed


btrfs restore and btrfs-find-root fail like this (on both debian
sid
and fedora 25):

parent transid verify failed on 108806144 wanted 32139 found 32104
parent transid verify failed on 108806144 wanted 32139 found 32104
parent transid verify failed on 108806144 wanted 32139 found 32104
parent transid verify failed on 108806144 wanted 32139 found 32104
Ignoring transid failure


Would you please paste the output of "btrfs-debug-tree -b 108806144
/dev/dm-0" ?


volumes.c:1645: btrfs_chunk_readonly: BUG_ON `!ce` triggered, value
1


This BUG_ON() means we can't find a corresponding chunk for given
offset.

"btrfs-debug-tree -t chunk" would help, if it executes without
problem.

btrfs-debug-tree produces the same error


If "btrfs-debug-tree" can't even open the fs, then "btrfs
inspect-internal dump-super -f /dev/dm-0" would help them.

dump-super finishes as it appears without error: https://pastebin.com/t
i8xuuR5
How would I proceed from here?


The obvious problem I found is that, system chunk at bytenr 0 seems invalid.
The physical address of that chunk is devid 1 offset 0, which is not 
possible as 0~1M is reserved.


According to the backtrace of btrfs-progs, it seems to be related to 
chunk tree corruption.

Which btrfs chunk recovery may help.

It's recommended to backup your system chunks and superblocks first.
--
# Backup sys chunks
 dd if=/dev/dm-0 of=sys_chunk1_stripe_0 bs=1 count=8388608 skip=20971520
 dd if=/dev/dm-0 of=sys_chunk1_stripe_1 bs=1 count=8388608 skip=29360128
 dd if=/dev/dm-0 of=sys_chunk0_stripe_0 bs=1 count=4194304 skip=0
# Backup first superblock
 dd if=/dev/dm-0 of=superblock0 bs=1 count=4k skip=64k
--

Then try chunk recovery
--
 btrfs rescue chunk-recover /dev/dm-0
--

It can be very slow since it may scan the full device.

Thanks,
Qu


Thanks,
Qu

Thank you





--
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


Re: BTRFS not mountable, recover won't work

2017-04-10 Thread Malte Eggers
On Mon, 2017-04-10 at 16:18 +0800, Qu Wenruo wrote:
> 
> At 04/10/2017 01:17 AM, Malte Eggers wrote:
> > Hi,
> > 
> > After suspending and waking up my laptop with the external hard
> > drive
> > connected, I could no longer access the files on it. So I unmounted
> > and
> > remounted it, only to discover that I could no longer mount it.
> > 
> > 
> > This is the error (mounting with usebackuproot, same error
> > without):
> > 
> > [891667.002861] BTRFS info (device dm-0): trying to use backup root
> > at
> > mount time
> > [891667.002870] BTRFS info (device dm-0): disk space caching is
> > enabled
> > [891667.002876] BTRFS info (device dm-0): has skinny extents
> > [891667.016395] BTRFS error (device dm-0): parent transid verify
> > failed
> > on 108855296 wanted 32139 found 32104
> > [891667.017181] BTRFS error (device dm-0): parent transid verify
> > failed
> > on 108855296 wanted 32139 found 32104
> > [891667.017194] BTRFS error (device dm-0): failed to recover
> > balance:
> > -5
> 
> What about trying skip_balance mount option to skip balance
Tried that, same error
> 
> > [891667.078829] BTRFS error (device dm-0): open_ctree failed
> > 
> > 
> > btrfs restore and btrfs-find-root fail like this (on both debian
> > sid
> > and fedora 25):
> > 
> > parent transid verify failed on 108806144 wanted 32139 found 32104
> > parent transid verify failed on 108806144 wanted 32139 found 32104
> > parent transid verify failed on 108806144 wanted 32139 found 32104
> > parent transid verify failed on 108806144 wanted 32139 found 32104
> > Ignoring transid failure
> 
> Would you please paste the output of "btrfs-debug-tree -b 108806144 
> /dev/dm-0" ?
> 
> > volumes.c:1645: btrfs_chunk_readonly: BUG_ON `!ce` triggered, value
> > 1
> 
> This BUG_ON() means we can't find a corresponding chunk for given
> offset.
> 
> "btrfs-debug-tree -t chunk" would help, if it executes without
> problem.
btrfs-debug-tree produces the same error
> 
> If "btrfs-debug-tree" can't even open the fs, then "btrfs 
> inspect-internal dump-super -f /dev/dm-0" would help them.
dump-super finishes as it appears without error: https://pastebin.com/t
i8xuuR5
How would I proceed from here?
> Thanks,
> Qu
Thank you
--
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


Re: BTRFS not mountable, recover won't work

2017-04-10 Thread Qu Wenruo



At 04/10/2017 01:17 AM, Malte Eggers wrote:

Hi,

After suspending and waking up my laptop with the external hard drive
connected, I could no longer access the files on it. So I unmounted and
remounted it, only to discover that I could no longer mount it.


This is the error (mounting with usebackuproot, same error without):

[891667.002861] BTRFS info (device dm-0): trying to use backup root at
mount time
[891667.002870] BTRFS info (device dm-0): disk space caching is enabled
[891667.002876] BTRFS info (device dm-0): has skinny extents
[891667.016395] BTRFS error (device dm-0): parent transid verify failed
on 108855296 wanted 32139 found 32104
[891667.017181] BTRFS error (device dm-0): parent transid verify failed
on 108855296 wanted 32139 found 32104
[891667.017194] BTRFS error (device dm-0): failed to recover balance:
-5


What about trying skip_balance mount option to skip balance?


[891667.078829] BTRFS error (device dm-0): open_ctree failed


btrfs restore and btrfs-find-root fail like this (on both debian sid
and fedora 25):

parent transid verify failed on 108806144 wanted 32139 found 32104
parent transid verify failed on 108806144 wanted 32139 found 32104
parent transid verify failed on 108806144 wanted 32139 found 32104
parent transid verify failed on 108806144 wanted 32139 found 32104
Ignoring transid failure


Would you please paste the output of "btrfs-debug-tree -b 108806144 
/dev/dm-0" ?



volumes.c:1645: btrfs_chunk_readonly: BUG_ON `!ce` triggered, value 1


This BUG_ON() means we can't find a corresponding chunk for given offset.

"btrfs-debug-tree -t chunk" would help, if it executes without problem.

If "btrfs-debug-tree" can't even open the fs, then "btrfs 
inspect-internal dump-super -f /dev/dm-0" would help them.


Thanks,
Qu


btrfs(+0x530d5)[0x5634cfb180d5]
btrfs(btrfs_chunk_readonly+0x5a)[0x5634cfb1a3b3]
btrfs(btrfs_read_block_groups+0x1dc)[0x5634cfb0fb0c]
btrfs(btrfs_setup_all_roots+0x336)[0x5634cfb0b158]
btrfs(+0x4654c)[0x5634cfb0b54c]
btrfs(open_ctree_fs_info+0xd7)[0x5634cfb0b673]
btrfs(cmd_restore+0x339)[0x5634cfaf93dc]
btrfs(main+0x12f)[0x5634cfadca6b]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7f3f7161f2b1]
btrfs(_start+0x2a)[0x5634cfadcaaa]
Aborted


How would I go about recovering my Data?

Thanks,
Malte
--
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





--
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


Re: BTRFS not mountable, recover won't work

2017-04-10 Thread Malte Eggers
On Sun, 2017-04-09 at 15:25 -0600, Chris Murphy wrote:
> On Sun, Apr 9, 2017 at 11:17 AM, Malte Eggers
>  wrote:
> > Hi,
> > 
> > After suspending and waking up my laptop with the external hard
> > drive
> > connected, I could no longer access the files on it. So I unmounted
> > and
> > remounted it, only to discover that I could no longer mount it.
> 
> What kernel and btrfs-progs version? Anything older than 4.9 of
> either
> and I'd try something newer as a first step. This sounds to me like
> something dropped the ball: either fs freeze didn't happen (unlikely)
> or the drive lied about fsync succeeding, or FUA if supported, and
> dropped the data once power was cut to the drive. I'd check if there
> are firmware updates for the drive.
> 
> Curious about:
> 
> btrfs rescue super -v 
> btrfs check 
> 

Kernel version: 4.9.0-2-amd64
BTRFS version: v4.9.1

btrfs rescue super -v  and btrfs check  both result in the
same error:
parent transid verify failed on 108806144 wanted 32139 found 32104
parent transid verify failed on 108806144 wanted 32139 found 32104
parent transid verify failed on 108806144 wanted 32139 found 32104
parent transid verify failed on 108806144 wanted 32139 found 32104
Ignoring transid failure
volumes.c:1645: btrfs_chunk_readonly: BUG_ON `!ce` triggered, value 1
btrfs(+0x530d5)[0x560ede5090d5]
btrfs(btrfs_chunk_readonly+0x5a)[0x560ede50b3b3]
btrfs(btrfs_read_block_groups+0x1dc)[0x560ede500b0c]
btrfs(btrfs_setup_all_roots+0x336)[0x560ede4fc158]
btrfs(+0x4654c)[0x560ede4fc54c]
btrfs(open_ctree_fs_info+0xd7)[0x560ede4fc673]
btrfs(open_ctree+0x47)[0x560ede4fc6f2]
btrfs(btrfs_recover_superblocks+0x325)[0x560ede4ef051]
btrfs(main+0x12f)[0x560ede4cda6b]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7f5e9f69f2b1]
btrfs(_start+0x2a)[0x560ede4cdaaa]
Aborted

I tried using the hard drive on my raspberry pi with raspbian and
kernel version 4.4, it doesn't give me a backtrace, but instead this:
https://pastebin.com/tUxSdysM

Which doesn't look like what is described in https://btrfs.wiki.kernel.
org/index.php/Restore and restoring specifying any of the blocks
doesn't work either.
--
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


Re: BTRFS not mountable, recover won't work

2017-04-09 Thread Duncan
Chris Murphy posted on Sun, 09 Apr 2017 15:25:18 -0600 as excerpted:

> On Sun, Apr 9, 2017 at 11:17 AM, Malte Eggers
>  wrote:
>> Hi,
>>
>> After suspending and waking up my laptop with the external hard drive
>> connected, I could no longer access the files on it. So I unmounted and
>> remounted it, only to discover that I could no longer mount it.

This is the only message from the thread I'm seeing ATM, so I'll reply 
here.  Agreed with C Murphy on the btrfs stuff, but my reply is on a 
different tangent.

If your external hard drive is USB (not ESATA or other non-USB, couldn't 
tell from the context CM quoted, which may or may not have been the 
entire post), you are likely running into a known issue... with an 
available solution. =:^)

FWIW I found out about this when I had a laptop with two USB-connected 
CompactFlash slots, one of which was designed for effectively permanent 
installation (the CF didn't stick out when inserted), the other for 
temporary use (it stuck out and was thus easier to remove, but also easy 
to damage either it or the slot if it was left inserted during 
transport).  But the permanent one wouldn't stay mounted over suspend... 
until I found out about this and changed the kernel option.  Looks like 
you might be hitting the same issue.

The official Linux kernel documentation describing the problem and 
optional solution is:

$KERNEL_DIR/Documentation/usb/persist.txt 

Read that first.  But that only explains the problem and gives you a way 
to deal with it on a per-USB-device basis by writing to the appropriate 
sysfs file.  There's also a kernel option that lets you change the 
default:

CONFIG_USB_DEFAULT_PERSIST

In the kernel config that's found under:

Device Drivers
USB support
Support for Host-side USB
Enable USB persist by default

If you use a distro-built kernel, you may want to at least check whether 
they enabled that option or not.

If you build your own kernel, you may of course set that option as you 
wish. =:^)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

--
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


Re: BTRFS not mountable, recover won't work

2017-04-09 Thread Chris Murphy
On Sun, Apr 9, 2017 at 11:17 AM, Malte Eggers
 wrote:
> Hi,
>
> After suspending and waking up my laptop with the external hard drive
> connected, I could no longer access the files on it. So I unmounted and
> remounted it, only to discover that I could no longer mount it.

What kernel and btrfs-progs version? Anything older than 4.9 of either
and I'd try something newer as a first step. This sounds to me like
something dropped the ball: either fs freeze didn't happen (unlikely)
or the drive lied about fsync succeeding, or FUA if supported, and
dropped the data once power was cut to the drive. I'd check if there
are firmware updates for the drive.

Curious about:

btrfs rescue super -v 
btrfs check 




-- 
Chris Murphy
--
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