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

これを避けるためにパーティションをアンマウントしてください。
# umount /dev/sdb
その後、fsckを安全に実行できます。
# fsck /dev/sdb

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メニューを表示します。 「高度なオプション」を選択します。

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

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

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

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

次に進む。

結論
このチュートリアルでは、さまざまなLinuxファイルシステムでfsckを使用して整合性チェックを実行する方法を学びました。fsckに関する質問がある場合は、以下のコメントセクションにお問い合わせください。
Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/