Another possibility here may be to mount with the mount option usebackuproot
in readonly:
mount -t btrfs -o ro,usebackuproot /dev/<btrfs-device> /mnt2
If that works, try again without the readonly command:
mount -t btrfs -o usebackuproot /dev/<btrfs-device>
If this works, your filesystem is likely still screwed, this doesn’t fix anything, but it should allow you a clean mount hopefully before the transactions that have errored.
In that event, if possible, backup what you’ve currently got by dumping the filesystem again:
btrfs restore /dev/<btrfs-device> <mounted-location-larger-than-btrfs-fs>
Then Try running a check without repair:
btrfs check /mnt2
If the only reported errors are something along the lines of errors 400, nbytes wrong
, you may be able to get a clean filesystem by using:
btrfs check --repair /mnt2
Do not attempt a check in repair mode before verifying this, as you’ll likely cause more harm than good.