Linuxファイルシステムエラーを修復するための「fsck」の使用方法

Linuxファイルシステムは、データの格納および回収方法を管理します。ある時点で、ファイルシステムが破損し、それにアクセスできない部分がある可能性があります。ファイルシステムにこのような不整合が発生した場合、その整合性を検証することが推奨されます。

これは、fsckファイルシステム整合性チェック)というシステムユーティリティを使用して行われます。fsckは、ブート時に自動的にルートファイルシステムをチェックするか、手動で実行することができます。

この記事では、fsckコマンドおよびその使用方法について説明します。これにより、Linuxディスクエラーを修復するのに役立ちます。

Linuxでfsckコマンドを使用するタイミング

fsckを実行したいシナリオが異なります。いくつかの例を以下に示します:

  • システムが起動しない場合
  • システム上のファイルが壊れている場合(しばしば入出力エラーが発生することがあります)
  • 接続されたドライブ(フラッシュドライブ/SDカードを含む)が期待通りに動作しない場合

fsckコマンドのオプション

fsckコマンドはスーパーユーザー権限またはrootとして実行する必要があります。異なる引数で使用できます。使用方法は特定のケースに依存します。以下に、より重要なオプションのいくつかを示します:

  • -A – すべてのファイルシステムをチェックするために使用されます。リストは/etc/fstabから取得されます。
  • -C – 進行状況バーを表示します。
  • -l – チェック中に他のプログラムがパーティションを使用しようとしないようにデバイスをロックします。
  • -M – マウントされたファイルシステムをチェックしません。
  • -N – 実際の変更は行わず、行うべきことだけを表示します。
  • -P – ルートを含むファイルシステムを並行してチェックする場合は、これを使用します。
  • -R – ルートファイルシステムをチェックしません。これは ‘ -A ‘ とのみ使用できます。
  • -r – チェックされている各デバイスの統計を提供します。
  • -T – タイトルを表示しません。
  • -t – チェックされるLinuxファイルシステムのタイプを排他的に指定します。タイプはコンマ区切りのリストにすることができます。
  • -V – 実行されている処理の説明を提供します。

Linuxファイルシステムエラーを修復するためにfsckコマンドを実行する

fsckを実行するには、チェックするパーティションがマウントされていないことを確認する必要があります。この記事では、/dev/sdbにマウントされた2番目のドライブを使用します。

パーティションがマウントされている場合にfsckを実行しようとすると何が起こるかを以下に示します。

# fsck /dev/sdb
Run fsck on Mounted Partition

これを避けるためにパーティションをアンマウントしてください。

# umount /dev/sdb

その後、fsckを安全に実行できます。

# fsck /dev/sdb
Run fsck on Linux Partition

fsckの終了コードの理解

fsckを実行した後、終了コードが返されます。これらのコードは、fsckのマニュアルを実行して確認できます:

# man fsck

0      No errors
1      Filesystem errors corrected
2      System should be rebooted
4      Filesystem errors were left uncorrected
8      Operational error
16     Usage or syntax error
32     Checking canceled by user request
128    Shared-library error            

fsck修復Linuxファイルシステム

時には、ファイルシステム上で複数のエラーが見つかることがあります。そのような場合、エラーを自動的に修正しようとする場合があります。これは、次のように行うことができます:

# fsck -y /dev/sdb

自動的に「はい」とfsckにプロンプトされる-yフラグ。

同様に、すべてのファイルシステムで同じ操作を実行できます(rootなしで):

$ fsck -AR -y 

Linuxルートパーティションでfsckを実行する方法

場合によっては、システムのrootパーティションでfsckを実行する必要があることがあります。パーティションがマウントされている間にfsckを実行することはできないため、次のオプションのいずれかを試すことができます:

  • システム起動時にfsckを強制的に実行する
  • レスキューモードでfsckを実行する

両方の状況を見ていきます。

システム起動時にfsckを強制的に実行

これは比較的簡単に完了できます。システムのルートパーティションにforcefsckという名前のファイルを作成するだけです。以下のコマンドを使用してください:

# touch /forcefsck

その後、単純にシステムの再起動を強制またはスケジュールします。次回の起動時には、fsckが実行されます。ダウンタイムが重要な場合は、システムに多くの使用済みinodeがある場合、fsckに余分な時間がかかる可能性があるため、これを慎重に計画することをお勧めします。

システムが起動したら、ファイルがまだ存在するかどうかを確認してください:

# ls /forcefsck

存在する場合は、すべてのシステム起動でfsckを回避するために削除することがお勧めです。

レスキューモードでfsckを実行する

fsckレスキューモードで実行するには、さらにいくつかのステップが必要です。まず、システムを再起動する準備をします。 MySQL/MariaDBなどの重要なサービスを停止し、次に入力してください。

# reboot

ブート時には、shiftキーを押してgrubメニューを表示します。 「高度なオプション」を選択します。

Grub Advanced Options

次に、「リカバリーモード」を選択します。

Select Linux Recovery Mode

次のメニューで「fsck」を選択します。

Select fsck Utility

/ファイルシステムを再マウントするかどうかを尋ねられます。 「はい」を選択します。

Confirm Root Filesystem

これと似たものが表示されるはずです。

Running fsck Filesystem Check

次に進む

Select Normal Boot
結論

このチュートリアルでは、さまざまなLinuxファイルシステムでfsckを使用して整合性チェックを実行する方法を学びました。fsckに関する質問がある場合は、以下のコメントセクションにお問い合わせください。

Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/