ウェブサイト検索

Linuxでシステム再起動後にfsckにファイルシステムをチェックさせる方法


ファイルシステムのエラーをチェックすることは、Linuxシステム管理の重要な部分です。読み書きのパフォーマンスが悪い場合やファイルシステムエラーが発生した場合に実行する良いトラブルシューティング手順です。このチュートリアルでは、fsckを強制的に次回のシステム再起動時にファイルシステムチェックを実行させる手順、またはルートマウントポイントであろうとなかろうと、任意の回数のシステム再起動でファイルシステムチェックを強制する方法について説明します。

このチュートリアルでは、あなたは学びます:

  • ファイルシステムが最後にチェックされた日時をfsckで確認する方法
  • /etc/fstabファイルでPASS値を表示および変更する方法
  • ルートおよび非ルートパーティションのためにfsckを強制する方法

ファイルシステムが最後にfsckによってチェックされた日時を表示する

システムの再起動後にファイルシステムチェックを制御するためのファイルシステム情報や設定を取得するために使用できるいくつかのツールについての議論から始めましょう。私たちが議論するツールは、tune2fsというファイルシステム管理ユーティリティです。tune2fsを使用することで、ファイルシステムの健康チェックに関連する重要な情報をエクスポートできます。

  1. 次のLinuxコマンドは、ファイルシステム/dev/sdXが最後にチェックされたのはいつかを教えてくれます:

    
    sudo tune2fs -l /dev/sdX | grep Last\ c
    Last checked:             Thu May 12 20:28:34 2022
    
  2. tune2fsコマンドで取得できるもう一つの有用な情報は、私たちの/dev/sdXファイルシステムが何回マウントされたかということです。

    
    sudo tune2fs -l /dev/sdX | grep Mount
    Mount count:              157
    
  3. 最後に、ファイルシステムチェックが強制される前に許可されるマウントの数はいくつですか?

    
    sudo tune2fs -l /dev/sdX | grep Max
    Maximum mount count:      -1
    

上記の出力から、以下の情報の要約をまとめることができます。/dev/sdXファイルシステムは最後に2022年5月12日(木) 20:28:34にチェックされました。最後のチェック以来、このファイルシステムは157回マウントされ、次のファイルシステムfsckチェックの前の最大マウント回数です。上記のケースでは、値-1はfsckが無効であることを意味します。

/etc/fstabのPASS値を表示して修正する

基本的なtune2fsについて学んだので、次に/etc/fstabファイル内にあるPASSシステム設定オプションについて議論しましょう。このファイルにはブート時にマウント可能なすべてのパーティションとそれに関連するマウントオプションが含まれています。

まず、blkidコマンドを使用して、チェックしたいファイルシステムのUUID値を確認します。


blkid /dev/sda3
/dev/sda3: UUID="c020d4d8-c104-4140-aafc-24f7f89f8629" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="22ada8f4-5222-4049-b0fe-a3274516754d"

次に、そのUUIDを/etc/fstabファイルでgrepします。


grep c020d4d8-c104-4140-aafc-24f7f89f8629 /etc/fstab 
UUID=c020d4d8-c104-4140-aafc-24f7f89f8629 /               ext4    errors=remount-ro 0       0

最後の列、すなわち列番号6は、fsckのPASS列です。これはfsckがファイルシステムをマウントする前にチェックすべきかどうか、また/etc/fstab内のパーティションがどの順序でチェックされるべきかを決定するために使用されます。fstab PASS列の可能なエントリは0、1、および2です。各番号の意味は次のとおりです。

  • 0 - 無効、つまりファイルシステムをチェックしない
  • 1 - このPASS値を持つパーティションは優先度が高く、最初にチェックされます。この値は通常、ルートパーティションである/に設定されます。
  • 2 – このPASS値を持つパーティションは最後にチェックされます

fstabのPASS値、最終チェック値、マウント数値との関係は次のとおりです。

システムブート中、最初に確認される値はfstabのPASS値です。この値が0の場合、他の値は確認されず、fsckはファイルシステムチェックを行いません。しかし、/etc/fstabに見つかったPASS値が0以外、つまり1または2の場合、最大マウント数と合計マウント数の値が確認されます。

最大マウント数の値が総マウント数の値以上であれば、fsck のファイルシステムチェックが実行されます。いくつかの例:


FSCK DISABLED
fstab PASS: 1
Maximum mount count:      -1
Mount count:              157
----
FSCK DISABLED
fstab PASS: 0
Maximum mount count:      -1
Mount count:              157
----
FSCK ON NEXT REBOOT
fstab PASS: 1 or 2
Maximum mount count:      1
Mount count:              157
----
FSCK DISABLED
fstab PASS: 0
Maximum mount count:      1
Mount count:              1
----
FSCK ON NEXT REBOOT
fstab PASS: 1 or 2
Maximum mount count:      1
Mount count:              1
----
NO FSCK ON NEXT REBOOT
fstab PASS: 1 or 2
Maximum mount count:      200
Mount count:              157

ルートまたは非ルートパーティションのためにfsckを強制する

ファイルシステムチェックをパーティションに強制するには、まず /etc/fstab の fsck の PASS 値を 2 に変更する必要があります。例えば:


UUID=c6e22f63-e63c-40ed-bf9b-bb4a10f2db66 /mnt            ext4    errors=remount-ro 0      2

この変更が行われた後、fsckを強制的に実行するためのコマンド例を以下に示します。

  1. 次回の再起動時にファイルシステムがチェックされるようにするために、ファイルシステムの「最大マウント回数」パラメータを操作する必要があります。次のtune2fsコマンドは、ファイルシステム/dev/sdXがLinuxシステムの再起動ごとにチェックされることを保証します。これが機能するためには、/etc/fstab内のfsckのPASS値を上記のように正の整数に設定する必要があります。

    
    sudo tune2fs -c 1 /dev/sdX
    

    この設定を戻すまで、システム再起動のたびにfsckを強制することになりますのでご注意ください。

  2. あるいは、毎10回の再起動後にfsckを設定することもできます。

    
    sudo tune2fs -c 10 /dev/sdX
    
  3. 設定を無効にするには、値-1を使用します。

    
    sudo tune2fs -c -1 /dev/sdX
    OR
    sudo tune2fs -c 0 /dev/sdX
    

締めくくりの考え

このチュートリアルでは、Linuxシステムのルートまたは非ルートパーティションのファイルシステムをfsckに強制的にチェックさせる方法を見てきました。これは、必要な編集を/etc/fstabファイルに行い、tune2fsコマンドを使用することで達成できます。fsckに定期的にファイルシステムのエラーをチェックさせることをお勧めします。これはハードウェアの故障を警告し、パフォーマンスを向上させ、データ損失の可能性を最小限に抑えることができます。

関連記事: