Linux の fsck(8) マンページには、次の終了コード表が含まれています。
The exit code returned by fsck is the sum of the following conditions:
0 No errors
1 Filesystem errors corrected
2 System should be rebooted
4 Filesystem errors left uncorrected
8 Operational error
16 Usage or syntax error
32 Checking canceled by user request
128 Shared-library error
終了コード2は「システムを再起動する必要があります」に割り当てられているため、どの目的にも使用されると想定できます。ただし、原則として、fsck
システムの動作にまったく重要ではない一種の外部サムドライブを確認してから、この終了コードを返すことは可能です。このように不可欠でないファイルシステムのエラーのために再起動が必要であることは言うまでもありません。特にファイルシステムがfsck
。
「システムを再起動する必要があります」終了コードとはどういう意味ですか?実際に意味は?
ベストアンサー1
これは、スキャンの実行時に問題のファイルシステムがマウントされ、fsck
エラーを修正するにはディスク上のデータを実際に修正する必要があり、システムを再起動しないとファイルシステムを手動で再マウントできないことを意味します。
主な状況は、ルートファイルシステムでエラーが検出(および修正)される場合です。ファイルシステムをスキャンするための非常にクールなinitramfsまたはリカバリ環境がない場合は、スキャン時にルートファイルシステムを実行します(したがって読み取り専用としてマウントされます)。
パフォーマンス上の理由から、カーネルはマウントされたファイルシステムのキャッシュされたメタデータを再検証しません(fsck
マウントされたファイルシステムのカーネルを除いてディスク上のデータは何も変更しないため)。したがってfsck
、これらのメタデータの一部を変更する必要がある場合、カーネルはカーネル(ほとんどのUNIXシステムでは不可能)またはユーザーにファイルシステムをアンマウントしてから再マウントして、カーネルが変更されたメタデータを選択できるように指示します。ルートファイルシステムは実際にはシステム自体を再起動します。