わかりました、このTrelloリンクの助けを借りてそれを理解しました.他の誰かがこれを行いたい場合は、次の手順を実行してください。
手順
2 つのディスクの RAID1 アレイから、1 つの /dev/sda
これは欠陥があり、別の /dev/sdc
です 良品:
/etc/fstab
でこのアレイの自動マウントを無効にする 、再起動 .基本的に、ドライブの 1 つが取り外された場合でも使用しようとするバグがあるため、btrfs にこのアレイの存在を忘れさせたいと考えています。アレイがアンマウントされたので、次を実行します:
echo 1 | sudo tee /sys/block/sda/device/delete
sda
を置き換える 障害のあるデバイス名で。これにより、ディスクがスピンダウンし (これは dmesg で確認する必要があります)、カーネルにアクセスできなくなります。
または :起動する前に、コンピュータからドライブを取り出してください!上記の方法で問題なく動作するため、この方法は選択しませんでした。
-o degraded
でアレイをマウントします モード。sudo btrfs balance start -f -mconvert=single -dconvert=single /mountpoint
でリバランス操作を開始します .これにより、正常なドライブのエクステントが再編成され、single
に変換されます。 (非 RAID)。 ドライブの速度とアレイのサイズにもよりますが、完了するまでにほぼ 1 日かかります。 (私のものは ~700 GiB で、1 分あたり 1 GiB チャンクの速度で再調整されました) 幸いなことに、この操作は一時停止することができ、実行中はアレイをオンラインに保ちます。sudo btrfs device remove missing /mountpoint
を発行できます 「見つからない」障害のあるデバイスを削除します。sudo btrfs balance start -mconvert=dup /mountpoint
で 2 回目のリバランスを開始する メタデータの冗長性を復元します。私のシステムでは数分かかります。single
になりました モード、すべての冗長性が削除されます。トラブルシューティング
- 助けて、btrfs が私の故障したディスクに書き込もうとしたところ、エラーになり、強制的に読み取り専用にされました!
- 手順 1 に従い、続行する前に再起動しましたか? btrfs は、スピンダウンしたドライブがまだ存在すると考えている可能性があります。再起動すると、btrfs はすべてのエラーを忘れて、続行できるようになります。
ご投稿ありがとうございます。 RAID をテストし、ホットスワップ ベイからドライブを取り出し、別のドライブを使用してから、RAID ドライブを再び挿入できるという考えがありました。振り返ってみると、これは悪い考えであり、今ではホットスワップ ベイが必要です。
これが私が見つけたものです。ルートとして:
# sudo btrfs fi show
Label: 'disk' uuid: 12817aeb-d303-4815-8bba-a3440e36c62c
Total devices 2 FS bytes used 803.10GiB
devid 1 size 931.51GiB used 805.03GiB path /dev/sda1
devid 2 size 931.51GiB used 805.03GiB path /dev/sdb1
各ドライブの一覧にある devid に注意してください。 man for brtrfs balance は私を devid オプションに導いてくれました。したがって、最初の試みは次のようになります。
# btrfs balance start -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt
エラーが発生しました。
ERROR: error during balancing '/media/.media': Invalid argument
There may be more info in syslog - try dmesg | tail
dmesg からのエラーは次のとおりです:
BTRFS error (device sdb1): balance will reduce metadata integrity, use force if you want this
したがって、これは機能した最終的なものです:
# btrfs balance start -f -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt
うまくいけば、これは他の誰かを助けるでしょう。