On Mon, Mar 25, 2019 at 10:26:29PM +0000, berodual_xyz wrote:
> Dear all,
> 
> on a large btrfs based filesystem (multi-device raid0 - all devices okay, 
> nodatacow,nodatasum...) 

   Ouch. I think the only thing you could have done to make the FS
more fragile is mounting with nobarrier(*). Frankly, anything you're
getting off it is a bonus. RAID-0 gives you no duplicate copy,
nodatacow implies nodatasum, and nodatasum doesn't even give you the
ability to *detect* data corruption, let alone fix it.

   With that configuration, I'd say pretty much by definition the
contents of the FS are considered to be discardable.

   Restoring from backups is the recommended approach with transid
failures.

(*) Don't do that.

> I experienced severe filesystem corruption, most likely due to a hard reset 
> with inflight data.
> The system cannot mount (also not with "ro,nologreplay" / "nospace_cache" 
> etc.).

   Given how close the transids are, have you tried
"ro,usebackuproot"? That's about your only other option at this
point. But, if btrfs restore isn't working, then usebacuproot probably
won't either.

> Running "btrfs restore" I got a reasonable amount of data backed up, but a 
> large chunk is missing.
> 
> "btrfs check" gives the following error:
> 
> ##
> $ btrfs check -b /dev/sdd
> Opening filesystem to check...
> parent transid verify failed on 1048576 wanted 60234 found 60230
> parent transid verify failed on 1048576 wanted 60234 found 60230
> Ignoring transid failure
> parent transid verify failed on 55432763981824 wanted 60233 found 60235
> parent transid verify failed on 55432763981824 wanted 60233 found 60235
> Ignoring transid failure
> parent transid verify failed on 55432753725440 wanted 60232 found 60235
> parent transid verify failed on 55432753725440 wanted 60232 found 60235
> Ignoring transid failure
> parent transid verify failed on 55432764063744 wanted 60233 found 60235
> parent transid verify failed on 55432764063744 wanted 60233 found 60235
> Ignoring transid failure
> Checking filesystem on /dev/sdd
> UUID: 8b19ff46-3f42-4f51-be6b-5fc8a7d8f2cd
> [1/7] checking root items
> Error: could not find extent items for root 268
> ERROR: failed to repair root items: No such file or directory
> ##
> 
> I have a complete "dump tree" zip but its a couple of GB.
> 
> Some sources on the net say to run "btrfs check --init-extent-tree" but I 
> would like to reach out first.

   Probably not wise. "Sources on the net" are frequently wrong when
it comes to btrfs recovery.

> btrfs progs version is 4.20.2 and kernel is 4.20.17

   At least those aren't out of date. The only positive thing here...

   Hugo.

-- 
Hugo Mills             | I gave up smoking, drinking and sex once. It was the
hugo@... carfax.org.uk | scariest 20 minutes of my life.
http://carfax.org.uk/  |
PGP: E2AB1DE4          |

Attachment: signature.asc
Description: Digital signature

Reply via email to