btrfsを修正するには? [閉鎖]

btrfsを修正するには? [閉鎖]

メーリングリストは全部遅れていましたが、ついに完了しました。Ubuntubtrfsページ、私は感じるbtrfs まだ完全な回復ユーティリティはありません(上記の図を参照)。ホームページ)。数ヶ月前にOracle Linuxのデフォルトになり、多くのディストリビューションに含まれています。

それでは、代わりにトラブルシューティング方法のトラブルシューティングガイドがありますかbtrfs

失敗した場合、バックアップをFSにコピーすると問題は解決しますか? (スペースが必要な場合はスナップショットを削除しますか、破損したファイルを削除しますか?)古いスナップショットに戻してから、バックアップから失われたファイルを復元する必要がありますか?または、@および@homeスナップショットから失われたファイルを回復しますか?

ノート:これは一般的な問題です。現時点では、正確なFS問題を意図的に省略しています。一般/標準ワークフローとトラブルシューティングガイドを見つけたいです。

(わかりました。詳しくはこちらをご覧ください。)):

シャットダウン中に電源が切れるため、システムが不安定になります。十分なデータが記録され停止されるまで、システムはしばらく起動して実行されます。前回はThunderbirdを開きました。より多くのハードリセットが必要で、より多くの損傷が必要な場合があります。 sudo btrfsck /dev/sda1いくつかのエラーの間に発生する - 通常、フォームで最初に発生

root 338 inode 7861227 errors 1000
root 338 inode 7904568 errors 1000
root 338 inode 7955174 errors 400
found 46242054144 bytes used err is 1
total csum bytes: 43112400
total tree bytes: 2074640384
total fs tree bytes: 1889853440
btree space waste bytes: 547680627
file data blocks allocated: 110756974592
 referenced 68393684992
Btrfs Btrfs v0.19

parent transid verify failedおお、今はとても美味しいです(ここで見たいのですが…)

parent transid verify failed on 14266105856 wanted 464223 found 464221
parent transid verify failed on 14266105856 wanted 464223 found 464221
Extent back ref already exists for 14261530624 parent 0 root 256 
leaf parent key incorrect 14261751808
bad block 14261751808
Extent back ref already exists for 66455355392 parent 0 root 2 
Extent back ref already exists for 66455257088 parent 0 root 2 
Extent back ref already exists for 14257274880 parent 0 root 2 
block 14262571008 rec extent_item_refs 2, passed 2
block 14262575104 rec extent_item_refs 1, passed 1
block 14262579200 rec extent_item_refs 1, passed 1
Extent back ref already exists for 14262579200 parent 0 root 257 
leaf 14263906304 items 50 free space 132 generation 464224 owner 2
fs uuid 7d049403-cf6e-4b52-a624-32051e1f5b2a
chunk uuid be6f8f93-320c-4465-85d6-f53907698c32
item 0 key (14263341056 EXTENT_ITEM 4096) itemoff 3944 itemsize 51
    extent refs 1 gen 464168 flags 2
    tree block key (8332576 1 0) level 0
    tree block backref root 257
item 1 key (14263345152 EXTENT_ITEM 4096) itemoff 3893 itemsize 51
    extent refs 1 gen 464168 flags 2
    tree block key (8332586 c 8332543) level 0
    tree block backref root 257
failed to find block number 14263525376

(もちろん、すべての内容が詳細にまとめられています。詳細はあなたを圧倒したくありません。:)

これで、最後の実行で次のようなおなじみの結果が得られました。

parent transid verify failed on 14265458688 wanted 464230 found 464221
parent transid verify failed on 14265458688 wanted 464230 found 464221
parent transid verify failed on 14265458688 wanted 464230 found 464223
btrfsck: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed.

、最後にオプションのランダムエラーが含まれます。幸せです。verify failedデータがドライブに書き込まれると、これらの内容が変わります。

別のランダムエラー:

btrfsck: disk-io.c:412: find_and_setup_root: Assertion `!(!root->node)' failed.

ベストアンサー1

答えを助けてください:

親トランIDの確認に失敗しました14265458688検索464230

この問題は次の方法で解決できます。

$ btrfs-zero-log DEVICE

メモ:データが失われる可能性があります!まずインストールしてみてください。

$ mount -t btrfs -o recovery,nospace_cache,clear_cache DEVICE MOUNTPOINT

「bad fs」などのデータをマウントできない場合:

$ btrfs restore DEVICE DIRECTORY_TO_DUMP_DATA_TO

これは私が送った実際の電子メールです。理解するのは難しいですが、彼の解決策を明確にすることでした。この不思議な説明を理解してください。

抜粋Eメール

Re:質問:このパーティションを回復する方法は? (論理的な$hugenum len 4096が見つかりません)

Hugo Mills carfax.org.uk>による投稿:

2013年8月26日月曜日午後1時10分54秒-0600にChris Murphyが次のように書きました。

2013年8月26日午前11時41分、Nick Lee nickle.es>は次のように書きました。

数日前、IRCでは、ツリールートのブロッコ問題がディスク自体の問題である可能性があり、ブロックツリー/論理マップの問題が原因である可能性があるという議論がありました。ブロック回復を実行し、見つかったエラーを確認し、[書き込み]をクリックします。 (失敗すると写真撮影が少なくなり、副作用で組織が失われます。)

必要に応じて、明日の飛行機が着陸した後、より明確に書くことができます。

-o リカバリ、btrfsck、チャンクリカバリ、ゼロログなど、さまざまなスキルをいつ使用すべきか疑問に思います。

物理デバイスエラーがないとします(他のツールセット - mount -degraded、btrfs dev del がありません)。

最初にすべきことは、ファイルシステム-c9 -t4のbtrfsイメージを取得し、josefを表示するための出力コピーを保持することです。 :)

その後、-orecoveryと-oro、recoveryを起動すると、ほぼすべてを回復できます。

これが失敗した場合は、dmesgでログツリー関連のエラーを見つけます。ログツリーが破損して読み取れない場合や競合が発生した場合は、btrfs-zero-logを使用してください。

ブロックツリーに問題がある場合(最近「アドレスをマッピングできません」などのレポートを見た唯一の場合)、ブロックの回復が役に立ちます。

その後、btrfsckはおそらく次の試みです。オプション-s1、-s2、-s3が成功した場合、btrfs-select-superはスーパーブロックを利用可能なスーパーブロックに置き換えることによって役立ちます。これが役に立たない場合は、btrfsck --repairに戻ります。

最後に、エクステントツリーが破損している場合は、btrfsck --repair --init-extent-tree が必要な場合があります。最後に、チェックサムが破損している場合は、--init-csum-treeを使用できます。

ヒューゴ。

おすすめ記事