もともとシリコングラフィックスによって作成された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システムを監視する方法