GNU/Linux >> Linux の 問題 >  >> Linux

Linux BTRFS - ドライブが故障したシングルに変換

わかりました、この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
    

    うまくいけば、これは他の誰かを助けるでしょう。


    Linux
    1. Linux Mint / LinuxMint12のシングルユーザーモードでシステムを回復する

    2. Linux でハード ドライブをゼロで上書き:速くて簡単!

    3. Swapon に失敗しました:Btrfs ファイルシステムを使用する Linux システムで引数が無効です

    1. LinuxでGNUPartedを使用してドライブをパーティション分割する

    2. この用途の広いLinuxコマンドでオーディオファイルを変換する

    3. 1つのコマンドでKaliLinuxを更新する方法

    1. SoundConverterを使用してLinuxでオーディオをバッチで変換する

    2. このLinux暗号化システムで外部ストレージを保護する

    3. 暗号化を使用したデュアル ブート Windows + Linux