破損したXFSファイルシステムに対処する適切な方法


18

私は最近、停電のためにXFSファイルシステムが破損するようになりました。(CentOS 7システム)。システムは正常に起動しません。

私はレスキューCDから起動し、試しxfs_repairましたが、ログを処理するためにパーティションをマウントするように指示されました。

私はパーティションをマウントし、lsはい、そこにあるように見えることを確認しました。パーティションをアンマウントし、xfs_repair再試行して同じメッセージが表示されました。

この状況で私は何をすべきでしょうか?レスキューCD(System Rescue CD、バージョン4.7.1)に何か問題がありますか?他に使用すべき手順はありますか?

結局、バックアップからシステムを単純に復元することになりました(この場合は迅速かつ簡単でした)が、今後何をすべきか知りたいのです。

回答:


19

xfs_repairを実行しようとして、ログを再生するためにファイルシステムをマウントすることを示唆するエラーメッセージを取得し、マウントしても同じエラーメッセージが表示される場合、強制修復を実行する必要があります(の-Lフラグを使用xfs_repair)。このオプションは最後の手段でなければなりません。

たとえば、CentOS 7インストールで破損したルートパーティションがあった場合を使用します。パーティションをマウントしようとすると、次のエラーメッセージが継続的に表示されます。

マウント:/ dev / mapper / centos-rootを/ mnt / centos-rootにマウントできませんでした:構造のクリーニングが必要です

残念ながら、修復を強制するには、修復を試みる前にログをゼロにする(破壊する)必要があります。この方法を使用する場合、最初に予想されていたよりも多くの破損データで終わる可能性があります。ただし、適切なxfsツールを使用して、永続的な変更を行う前にどのような損害が発生する可能性があるかを確認できます。

xfs_metadumpおよびxfs_mdrestoreを使用して、影響を受けるパーティションのメタデータイメージを作成し、パーティション自体ではなくイメージで強制修復を実行できます。これの利点は、パーティションで実行する前に強制修復に伴う損傷を確認できることです。

これを行うには、まともなサイズのUSBまたは外付けハードドライブが必要です。USBドライブをマウントすることから始めます-私のUSBはにありますが/dev/sdb1、あなたの名前は違うかもしれません。

mkdir -p /mnt/usb
mount /dev/sdb1 /mnt/usb

マウントしたら、実行xfs_metadumpしてパーティションメタデータのコピーをUSBに作成します-再度、影響を受けるパーティションは異なる場合があります。この場合、次の場所に破損したルートパーティションがありました/dev/mapper/centos-root

xfs_metadump /dev/mapper/centos-root /mnt/usb/centos-root.metadump

次に、修復を実行して損傷を測定できるように、メタデータをイメージに復元します。

xfs_mdrestore /mnt/usb/centos-root.metadump /mnt/usb/centos-root.img

レスキューモードxfs_mdrestoreでは使用できないことがわかりました。代わりに、ライブCentOS CDのレスキューモードにする必要があります。

最後に、イメージの修復を実行できます。

xfs_repair -L /mnt/usb/centos-root.img

修復が完了し、出力と潜在的な損傷を評価したら、パーティションに対して修復を実行するかどうかを決定できます。

パーティションに対して修復を実行するには、単に次を実行します:

xfs_repair -L /dev/mapper/centos-root

他のパーティションの破損もチェックすることを忘れないでください。修復後、システムを再起動すると、正常に起動できるはずです。

ことを忘れないでください-Lフラグは、修理には他の可能な選択肢が存在しない最後の手段として使用する必要があります。

これらのオンライン記事が助けになったことがわかりました:


わかりました。したがって、-Lは最後の手段であり、これらは-Lを使用した場合の悪影響を確認するための優れた指示です。-Lを使用する以外のオプションはありますか?
マイケルコーン

1
@MichaelKohneもちろん、バックアップからの復元。バックアップを取得していない限り、このレベルの地獄に近づかないでください。
マイケルハンプトン

1
@MichaelHampton-OK、結構です。しかし、powerfailでext4エラーが発生すると、このようなファイルシステムを失ったことはないと思います。xfsの復元力は低下しますか?それとも今回は本当に運が悪かったのでしょうか?
マイケルコーン

@MichaelKohneあなたはとてつもなく不運になったと思う。XFSは非常に信頼性の高いファイルシステムです。
マイケルハンプトン

3
以前は単にinitrdからそれを行うことができました。素晴らしい「進歩」を遂げました。
フロリアンハイグル

1

kvm仮想マシン内でcentos 7が正しく停止しないというエラーが発生しました。

xfsでメタデータの破損が検出されました...

「journalctl -xe」でログを使用すると、マウントエラーが見つかりました。

/ dev / mapper / root / sysroot

私はそれを使用して解決します:

xfs_repair / dev / mapper / root

次に、システムは7つのフェーズを完了してから、次を使用して再起動します。

。/シャットダウン

そして、仮想マシンcentos 7はうまく機能します…

よろしく

注:多分あなたは/ dev / mapper / rootに別の名前があるので、journalctl -xeでエラーログを見て、マウントされていないユニットの名前を見つけてください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.