On Mon, Mar 26, 2018 at 10:00:04AM -0500, Ashu Tiwary wrote: > It appears my system may have hit the issue reverted here ( > https://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg74621.html > ) ( [PATCH] Revert "btrfs: use proper endianness accessors for > super_copy" ); system is an IBM OpenPower 720 (Big Endian) running > Fedora 27; kernel was at 4.15.9; attempting to reboot after updating > system (including kernel to 4.15.10) caused system to not be able to > boot: > > ===== > Mounting /sysroot... > [ 34.644721] BTRFS warning (device dm-3): suspicious: generation < > chunk_root_generation: 15959351903540740096 < 17261735521269317632 > [ 34.644761] BTRFS info (device dm-3): disk space caching is enabled > [ 34.644771] BTRFS info (device dm-3): has skinny extents > [ 34.645925] BTRFS critical (device dm-3): unable to find logical > 71472550772736 length 65536 > [ 34.645941] BTRFS critical (device dm-3): unable to find logical > 71472550772736 length 65536 > [ 34.645952] BTRFS error (device dm-3): failed to read chunk root > [ 34.807156] BTRFS error (device dm-3): open_ctree failed > [FAILED] Failed to mount /sysroot. > ===== > > It appears there is a manual method available to repair the corrupted > superblock: can that be made available?
Yes, details below. Quick check from your logs: chunk_root_generation: 15959351903540740096 = 0xdd7b020000000000 should be: 162781 = 0x0x27bdd tree root block pointer: 71472550772736 = 0x410100000000 should be: 21037056 = 0x1410000 The tool is available in the branch devel in my repos. Setup repository unless you already have one: $ git clone git://github.com/kdave/btrfs-progs $ cd btrfs-progs $ git checkout devel $ ./autogen.sh $ ./configure Build the tool: $ make btrfs-sb-mod Use it (replace the path with the real one) and save the output in case something goes unexpectedly wrong: device=/path/to/the/device ./btrfs-sb-mod $device root @0 ./btrfs-sb-mod $device generation @0 ./btrfs-sb-mod $device chunk_root @0 ./btrfs-sb-mod $device chunk_root_generation @0 ./btrfs-sb-mod $device cache_generation @0 ./btrfs-sb-mod $device uuid_tree_generation @0 It prints the current and new values so it's reversible, besides that the byteswap can be run twice to get back to the starting point. Then the filesystem should be mountable again. -- 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