ルート以外のファイルシステムで fsck を実行するのはかなり簡単です。ただし、ルート ファイルシステムの場合、マウント時に fsck を実行することはできません。
このクイック チュートリアルでは、ルート ファイルシステムのファイルシステム チェックを強制する方法について説明します。
ルート ファイル システム
この例では、/dev/sda1 パーティションは /
としてマウントされるルート ファイルシステムです。# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 63G 41G 19G 69% /
ルート ファイルシステムをチェックするために fsck を実行すると、次のエラー メッセージが表示されます。/dev/sda1 がマウントされており、マウントされたファイル システムで fsck を実行できないためです。
# fsck /dev/sda1 fsck from util-linux-ng 2.17.2 e2fsck 1.41.12 (17-May-2010) /dev/sda1 is mounted. e2fsck: Cannot continue, aborting.
ルート以外のファイル システムで fsck を実行している場合は、そのパーティションをアンマウントして fsck を実行できます。
ただし、この場合は、ルート ファイルシステムで fsck を実行したいと考えています。では、解決策は何ですか?
また、fsck を初めて使用する場合は、これを参照してください:ファイルシステムをチェックして修復するための 10 の Linux Fsck コマンドの例
再起動前の Tune2fs 出力
システムを再起動する前に、最後に fsck がルート ファイルシステムのチェックを実行したのはいつかを確認しましょう。
これには、tune2fs コマンドを使用し、以下に示すように「チェック」を grep します。
# tune2fs -l /dev/sda1 | grep -i check Last checked: Mon Nov 24 12:39:44 2015 Check interval: 15552000 (6 months) Next check after: Sun May 22 13:39:44 2016
上記の出力からわかるように:
- 前回のチェック:ルート ファイルシステムのチェックが最後に行われた時刻を示します。これは 11 月に起こりました。
- Check internal:ルート ファイルシステムがチェックされる頻度を示します。この例では、再起動時にこのファイルシステムで fsck が実行されるまで、さらに 6 か月待機します。
- 次のチェック後:再起動を実行したときにファイルシステムがチェックされるまでの日付と時刻を示します。これは 5 月以降にのみ発生します。
しかし、私たちの場合、5 月まで待ちたくありません。今すぐルート ファイルシステムの fsck チェックを実行します。
/forcefsck ファイルを作成して、ルート ファイル システムを強制的にチェックする
そのため、ルート ファイルシステムのチェックを強制する簡単な方法の 1 つは、システムを再起動し、カーネルによってルート ファイルシステムがマウントされる前に、システムの起動時に fsck がファイル システムを実行するように強制することです。
再起動中に fsck を強制するには、以下に示すように、最初に / の下に forcefsck という空のファイルを作成します。
# cd / # touch forcefsck # ls -l /forcefsck -rw-r--r--. 1 root root 0 Mar 9 20:15 /forcefsck
システムを再起動します:
# reboot
再起動後の Tune2fs 出力
コンソール アクセス権がある場合、再起動中に fsck が / ファイルシステムのチェックを実行することがわかります。
チェック後、fsck は以前に作成した /forcefsck ファイルを自動的に削除します。再起動後、このファイルは表示されなくなります。
# ls -l /forcefsck ls: cannot access /forcefsck: No such file or directory
ここで tune2fs を実行すると、「最終チェック」フィールドが現在のタイムスタンプで更新されていることがわかります。これにより、再起動中に fsck がルート ファイルシステム チェックを実行したことが確認されます。
# tune2fs -l /dev/sda1 | grep -i check Last checked: Wed Mar 09 20:30:04 2016 Check interval: 15552000 (6 months) Next check after: Mon Sep 05 21:30:04 2016
それに応じて「次のチェック後」の値も変更されます。つまり、システムを再起動してから 6 か月後です。