BTRFSパーティションが破損し、
mount -o usebackuproot ...
動作しません:
[ 9252.141767] BTRFS info (device dm-1): trying to use backup root at mount time
[ 9252.141779] BTRFS info (device dm-1): disabling disk space caching
[ 9252.141784] BTRFS info (device dm-1): has skinny extents
[ 9252.184586] BTRFS error (device dm-1): parent transid verify failed on 7777276116992 wanted 100336 found 89751
[ 9252.186302] BTRFS error (device dm-1): parent transid verify failed on 7777276116992 wanted 100336 found 89751
[ 9252.186306] BTRFS warning (device dm-1): failed to read tree root
[ 9252.186729] BTRFS error (device dm-1): parent transid verify failed on 7777276116992 wanted 100336 found 89751
[ 9252.187091] BTRFS error (device dm-1): parent transid verify failed on 7777276116992 wanted 100336 found 89751
[ 9252.187094] BTRFS warning (device dm-1): failed to read tree root
[ 9252.187372] BTRFS error (device dm-1): parent transid verify failed on 7777213923328 wanted 100335 found 89750
[ 9252.187589] BTRFS error (device dm-1): parent transid verify failed on 7777213923328 wanted 100335 found 89750
[ 9252.187592] BTRFS warning (device dm-1): failed to read tree root
[ 9252.187948] BTRFS error (device dm-1): parent transid verify failed on 7777188921344 wanted 100334 found 100336
[ 9252.188281] BTRFS error (device dm-1): parent transid verify failed on 7777188921344 wanted 100334 found 100336
[ 9252.188284] BTRFS warning (device dm-1): failed to read tree root
[ 9252.188661] BTRFS error (device dm-1): parent transid verify failed on 7260661022720 wanted 100333 found 96460
[ 9252.189025] BTRFS error (device dm-1): parent transid verify failed on 7260661022720 wanted 100333 found 96460
[ 9252.189029] BTRFS warning (device dm-1): failed to read tree root
[ 9252.236361] BTRFS: open_ctree failed
btrfs checkも機能しません:
btrfs check /dev/mapper/media
parent transid verify failed on 7777276116992 wanted 100336 found 89751
parent transid verify failed on 7777276116992 wanted 100336 found 89751
parent transid verify failed on 7777276116992 wanted 100336 found 89751
parent transid verify failed on 7777276116992 wanted 100336 found 89751
Ignoring transid failure
Couldn't setup extent tree
Couldn't open file system
"btrfs restore"で使用できるツリールートブロックがいくつか見つかりました:
btrfs restore -t 8889016483840 -D -i -v /dev/mapper/media /dev/null | wc -l
2264442
しかし、私はここで問題を抱えています。私のbtrfsストレージは非常に大きく、20 TBを超えており、バックアップと復元を行うためのそのようなサイズのスペアディスクはありません。再フォーマットせずに、そのようなファイルシステムを修復したり、特定のツリールートブロックに「インプレース」で切り替えたりすることは可能ですか?
まず、有効なスーパーブロックがあることを確認します。
_btrfs rescue super-recover -v <device>
_
使用する:
_btrfs find-root <device>
_
- ルートノードは最高レベルである必要があります
- 世代が高いほど、そのルートを使用してfsを回復できる可能性が高くなります。
注:エラーメッセージでは、wanted
はログ内の世代であり、found
はツリールートに基づく世代です。
次のコマンドから最もクリーンな出力を見つけます。
_btrfs check --tree-root <block> --super <sup>
_
どこ:
<sup>
_は、_0
_、_1
_、または_2
_のいずれかです。<block>
_は_btrfs find-root
_で与えられます(注:しないでくださいマニュアルには_<bytenr>
_)次に、次のようにファイルシステムを修復します。
_btrfs check --repair --tree-root <block> --super <sup>
_
実際にファイルシステムを変更するには、_--repair
_が追加されていることに注意してください。