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

破損したXFSファイルシステムをxfs_repairで修復する方法

もともとシリコングラフィックスによって作成されたXFSファイルシステムは、2001年にLinuxカーネルに最初に組み込まれた堅牢で高性能なジャーナリングファイルシステムです。それ以来、ファイルシステムの人気は飛躍的に高まり、2014年までにXFSファイルシステムが見つかりました。主要なLinuxディストリビューションへの道。実際のところ、XFSは、RHEL、CentOS、RockyLinuxなどのRedHatベースのディストリビューションのデフォルトのファイルシステムです。ファイルシステムは巨大なファイルで非常にうまく機能し、その速度と堅牢性で広く知られています。

XFSファイルシステムは堅牢ですが、ファイルシステムの破損の影響を受けません。ファイルシステムエラーまたは破損の一般的な原因には、非手続き型または不正なシャットダウン、NFS書き込みエラー、突然の停電、ドライブの不良ブロックなどのハードウェア障害が含まれます。ファイルシステムの破損は、通常のファイルの破損などの重大な問題を引き起こす可能性があり、ブートファイルが影響を受けたときにシステムを起動できなくなる可能性さえあります。

ファイルシステムエラーのチェックには、いくつかのツールが役立ちます。それらの1つは、fsckコマンド(ファイルシステムチェック)です。 fsckシステムユーティリティツールは、ファイルシステムの全体的な状態を確認します。ファイルシステムで潜在的および既存のエラーをチェックし、レポートの生成とともにそれらを修復します。 fsckコマンドはほとんどのLinuxディストリビューションにプリインストールされており、インストールは必要ありません。ファイルシステムのエラーを修正するために使用されるもう1つの便利なシステムユーティリティは、xfs_repairユーティリティです。このユーティリティは非常にスケーラブルであり、可能な限り最高の効率で複数のiノードを備えた巨大なファイルシステムをスキャンおよび修復するように調整されています。

このガイドでは、xfs_repairユーティリティを使用して破損したXFSファイルシステムを修復する方法について説明します。

ステップ1)ファイルの破損をシミュレートする

このチュートリアルを最大限に活用するために、XFSファイルシステムのファイルシステムの破損をシミュレートします。ここでは、ブロックボリュームとして8GBの外付けUSBドライブを使用します。これは、以下のコマンドに示すように/ dev/sdb1として示されます。

$ lsblk | grep sd

最初のステップは、mkfsコマンドを使用してxfsファイルシステムにフォーマットすることです。

$ sudo mkfs.xfs -f /dev/sdb1

表示された出力が表示されます

次のステップは、後でブロックボリュームをマウントするために使用するマウントポイントを作成することです。

$ sudo mkdir /mnt/data

次に、mountコマンドを使用してパーティションをマウントします。

$ sudo mount /dev/sdb1  /mnt/data

図のように、パーティションが正しくマウントされているかどうかを確認できます。

$ sudo mount | grep /dev/sdb1

これで、パーティションがxfsパーティションとして正常にマウントされました。次に、xfs_dbコマンドを使用してランダムなファイルシステムメタデータブロックを破棄することにより、ファイルシステムの破損をシミュレートします。

ただし、その前に、パーティションをアンマウントする必要があります。

$ sudo umount /dev/sdb1

次に、以下のコマンドを実行してファイルシステムを破壊し、ランダムなファイルシステムメタデータブロックを破棄します。

$ sudo xfs_db -x -c blockget -c "blocktrash -s 512109 -n 1000" /dev/sdb1

ステップ2)xfs_repairを使用してXFSファイルシステムを修復します

コマンドを使用してファイルシステムを修復するには、次の構文を使用します。

$ sudo xfs_repair / dev / device

ただし、ファイルシステムの修復に着手する前に、図のように-nフラグを使用してドライランを実行できます。ドライランは、コマンドが実行されたときにコマンドによって実行されるアクションをのぞき見します。

$ sudo xfs_repair -n / dev / device

私たちの場合、これは次のように解釈されます:

$ sudo xfs_repair -n /dev/sdb1

出力から、いくつかのメタデータエラーとiノードの不整合を確認できます。コマンドは、実際のコマンドが実行したであろうステップの簡単な要約で終了します。手順6と7で適用されたはずの修正措置はスキップされました。

XFSファイルシステムの実際の修復を実行するには、-nオプションを指定せずにxfs_repairコマンドを実行します

$ sudo xfs_repair /dev/sdb1

このコマンドは、ファイルシステムのエラーと不整合を検出します。

また、iノードの修復手段を実行し、その他のエラーを修正します。提供される出力は、コマンドがタスクを正常に完了したことを示しています。

その他のxfs_repairオプションについては、manページにアクセスしてください。

$ man xfs_repair

結論

これは、xfs_repairコマンドを使用して破損したxfsファイルシステムを修復する方法のデモンストレーションでした。 Linuxで破損したxfsファイルシステムを修正することに自信を持っていただければ幸いです。

また読むGlanceコマンドでLinuxシステムを監視する方法


Linux
  1. 例でethtoolコマンドを使用する方法

  2. findコマンドを使用して権限を監査する方法

  3. Linuxのfsckコマンドでファイルシステムエラーをチェックして修復する

  1. zpool コマンドの例を使用して Linux で ZFS ファイルシステムをセットアップする方法

  2. 「xfs_admin」コマンドを使用して XFS ファイルシステムのパラメーターを変更する方法

  3. mkfs.xfs:コマンドが見つかりません

  1. fsckコマンドを使用してファイルシステムをチェックおよび修復する方法

  2. 例を使用してLinuxでIPコマンドを使用する方法

  3. Linuxエイリアスコマンド:例で使用する方法