web-dev-qa-db-ja.com

BTRFS不良ツリーブロックの開始

まず、セットアップの背景を説明します。 RAID 5(私は知っている、RAID 6に移動するが、ここでは問題ではない)アレイに7台のハードドライブがあります。その上で、btrfs用のパーティションを使用してLVMを実行します。 BTRFSはバージョン3.1245です。カーネルは3.13.0-53-genericです。 Ubuntu 14.04.2 LTSを実行しています

Ext4からbtrfsパーティションへの一連のlvextend/reduceを介して、ext4からのデータの移行を完了しました。 LVMの一時ドライブを使用して、2つのパーティション間で大きなチャンクでデータを移動するスペースを確保していました。

週末にようやく終了し、EXT4パーティションを削除して一時ドライブを削除する準備が整いました。

コマンドを2回使用してbtrfsのサイズを縮小しました(最後に十分な空きスペースがあることを確認するため)。

btrfs filesystem resize -950G

私の急いで(速攻はたくさんの無駄をした...)私はコマンドをタイプしました:

lvreduce -L 950G /dev/bigdisk/btrfs

の代わりに

lvreduce -L -950G /dev/bigdisk/btrfs

ファイルシステムをマウントしようとすると、次のようになりました。

wrong fs type, bad option, bad superblock on /dev/mapper/bigdisk-btrfs...

dmesgは私に与えた:

btrfs bad tree block start 12460867831478107890 3823471755264
btrfs bad tree block start 13567085538622844823 3823471755264
btrfs bad tree block start 12460867831478107890 3823471755264
btrfs bad tree block start 13567085538622844823 3823471755264
btrfs: failed to recover balance
btrfs: open_ctree failed

私がパニックに陥り、マウントしないことに気付いたとき、私は走りました:

lvextend -l +100%FREE /dev/bigdisk/btrfs

何も修正しませんでした。グーグル(最初にそれを行うべきだった)、私が実行したvgcfgrestoreコマンドに私を導き、950Gのねじ込みと復元の前からバックアップを見つけました:

vgcfgrestore -f [Filename here] -v /dev/bigdisk

まだ愛はない、同じエラーメッセージ。

私は回復オプションでマウントしようとしました:

mount -orecovery,ro /dev/bigdisk/btrfs

同じエラー

私が走った:

btrfs rescue super-recover -v /dev/bigdisk/btrfs

良いことも悪いこともありません。 「すべてのスーパーは有効であり、回復する必要はありません」

昨夜チャンクリカバリを実行しましたが、このメッセージの準備中に画面からクリアしただけです:終了したらすぐに出力をここに投稿します。btrfs rescue chunk-recover -v/dev/bigdisk/btrfs

他にできることはありますか?私は重要なファイルのバックアップを持っていますが、このアレイにはDVD/Blurayのリッピングが含まれていました。これらを再リッピングするという考えは、私を非常に悲しくさせています。数ヶ月かかるでしょう。ディスクアレイがかなり大きいため、ディスク全体のバックアップを作成することは実用的ではありません(パーティションサイズは〜12TBです)

1
Ben

後でこれを見つけた人にとっては、カーネルを3.19にアップグレードするとすべてが修正されたことがわかりました。アップグレードし、再起動し、ブート時にディスクをエラーなしでマウントしました。スクラブと同様に、BTRFSチェックは正常に戻りました。

2
Ben