Linuxのファイルシステムを守る!fsckコマンドの使い方と注意点を徹底解説

Linuxの運用中に突然ファイルが開けなくなったり、システムが異常終了したりしたことはありませんか?そのようなとき、ファイルシステムの不整合が原因であることがあります。そんなトラブルに対応するための強力なコマンドが「fsck」です。
fsck(File System Consistency Check)は、Linuxにおいてファイルシステムの整合性をチェックし、必要に応じて修復するための重要なツールです。この記事では、fsckの基本的な使い方から実践的な使用例、注意すべきポイントまで、初心者にもわかりやすく解説していきます。


fsckとは何か?その役割と重要性

fsck(File System Consistency Check)は、その名の通りファイルシステムの整合性をチェックするためのLinuxコマンドです。突然の電源断やクラッシュなどでファイルシステムに不整合が発生した場合、このコマンドを使って検査し、自動または手動で修復を行います。

Linuxではext4やxfs、btrfsなど、複数のファイルシステムが使用されています。fsckはそれぞれのファイルシステムに対応した検査ツール(例:e2fsck, xfs_repairなど)を呼び出すラッパーとして機能しています。

システムトラブル時だけでなく、定期的にfsckを使うことでディスクの健康状態を保ち、データ消失のリスクを減らすことが可能です。


基本的なfsckコマンドの使い方

fsckコマンドはスーパーユーザー権限で実行する必要があります。以下は最もシンプルな使用例です。

sudo fsck /dev/sda1

このコマンドは、/dev/sda1 というデバイス(通常はディスクのパーティション)に対してチェックを行います。fsckはファイルシステムの種類を自動で判別し、適切なコマンドを実行します。

また、読み取り専用モードでのチェックも可能です。

sudo fsck -n /dev/sda1

-n オプションを使うと、「何も変更しないで確認だけしたい」という場合に便利です。修復はせず、エラーがあるかどうかだけを教えてくれます。


よく使うオプションの解説

fsckは多くのオプションを備えており、目的に応じて使い分けることができます。以下に代表的なオプションを紹介します。

  • -a: 自動的に修復を行う(非推奨。代わりに -y を使用するのが一般的)
  • -y: 全ての質問に「yes」で答えて自動修復
  • -n: 全ての質問に「no」で答えてチェックのみ
  • -r: 対話形式で修復を進める(非推奨)
  • -C: 進行状況を表示

たとえば、次のように使用できます。

sudo fsck -y /dev/sdb1

このコマンドは、エラーがあれば全て自動的に修復します。システムが無人で動いている場合などに便利ですが、変更内容を確認できないので注意が必要です。


使用時の注意点:マウント状態を確認する

fsckを実行する上で、最も重要な注意点は「マウントされた状態で実行しないこと」です。マウントされたファイルシステムにfsckをかけると、データ破損のリスクがあります。

以下のコマンドでマウント状態を確認できます。

mount | grep sda1

もしマウントされている場合は、アンマウントしてから実行するようにしましょう。

sudo umount /dev/sda1
sudo fsck /dev/sda1

また、ルートファイルシステムのようにアンマウントできないものは、シングルユーザーモードやLive CD/USBを利用して実行します。


実際の使用例とケーススタディ

例1:システムクラッシュ後にfsckを使う

システムがクラッシュして起動しなくなった場合、Live USBで起動し、対象のパーティションにfsckを実行します。

sudo fsck -y /dev/sda2

このとき、誤って間違ったパーティションを指定しないようにlsblkなどでデバイスを確認してから実行するのがポイントです。

例2:定期的なファイルシステムチェック

サーバーでは定期的にfsckを行うことで、未然にトラブルを防げます。例えば、crontabに以下のようなスクリプトを週1回仕込むこともできます。

#!/bin/bash
if ! mount | grep -q "/dev/sdb1"; then
fsck -y /dev/sdb1
fi

このスクリプトは、マウントされていなければfsckを実行する安全なチェック方法です。


ファイルシステム別のfsckツールについて

fsckはファイルシステムごとに実体が異なります。代表的なものを以下に紹介します。

ファイルシステムチェックコマンド
ext2/ext3/ext4e2fsck
xfsxfs_repair
btrfsbtrfs check
vfatfsck.vfat

xfsに対してfsckを使おうとすると、エラーになります。代わりにxfs_repairを使いましょう。

sudo xfs_repair /dev/sdc1

fsckは万能ではないため、ファイルシステムの種類ごとの適切なコマンドを選択することが重要です。


起動時に自動fsckを実行させる方法

Linuxでは起動時に自動でfsckを実行させることが可能です。これは /etc/fstab の設定や、各パーティションに設定された「fs_passno」という値で制御されています。

たとえば、/etc/fstab の末尾にある数字「1」や「2」は、fsckの優先度を意味しています。

UUID=xxxxx / ext4 defaults 0 1

この例では、起動時にルートパーティションのfsckが実行されるように設定されています。数字が「0」の場合はスキップされます。


fsckを使う際のまとめとベストプラクティス

  • 実行前に対象のパーティションがアンマウントされているか確認する
  • 自動修復を行う際は-yを指定(ただし、事前のバックアップ推奨)
  • ルートファイルシステムを修復するには、シングルユーザーモードまたはLive USBを利用
  • ext4/xfsなど、ファイルシステムに応じて適切なfsckツールを使用
  • 定期チェックはサーバー運用の基本!自動化も検討しよう

おわりに

fsckはLinuxシステムにとって非常に重要な保守ツールです。ファイルシステムのトラブルを未然に防ぎ、信頼性の高いシステム運用を行うために、正しい知識と使い方を身につけておくことが不可欠です。トラブルが発生してから焦るのではなく、日頃からfsckを意識しておくことで、安心・安全なLinuxライフを送りましょう。

タイトルとURLをコピーしました