UFS ロギングは、トランザクション (完全な UFS 操作を構成する変更) をログに保存してから、そのトランザクションを UFS ファイルシステムに適用するプロセスです。保存されたトランザクションは、後でファイルシステムに適用できます。
システムはリブート時に、不完全なトランザクションを廃棄しますが、完結している操作のトランザクションは適用します。完結しているトランザクションだけが適用されるために、ファイルシステムの整合性が保たれます。通常であればシステムコールの実行が中断され、UFS ファイルシステムの整合性が確保できないシステムクラッシュ時にも、ファイルシステムの整合性が保たれます。
UFS ロギングには 2 つの長所があります。
1 つは、ファイルシステムの整合性が保持されるため、fsck コマンドを実行する必要がなくなることです。もう 1 つは、fsck による検査を省略できるため、システムがクラッシュしたり、異常停止 (クリーンではない停止) した場合でもシステムをリブートするのに要する時間を短縮できることです (クリーンではない停止については、fsck コマンドでチェックして修復される内容を参照)。
UFS ロギングを使用すれば、特に、通常であれば fsck コマンドによる読み込みと確認に時間がかかる大規模ファイルシステムを持つシステムのブート時間をかなり短縮できます。
UFS ロギングが作成するログは、いっぱいになるとフラッシュされます。また、ファイルシステムがマウント解除されたとき、あるいは lockfs -f コマンドを実行したときにも、ログはフラッシュされます。
デフォルトでは、UFS ロギングは無効です。UFS ロギングを有効にするには、ファイルシステムを手動でマウントするときか /etc/vfstab ファイル内で、-o logging オプションを指定して mount(1M) コマンドを実行する必要があります。ログはファイルシステムの空きブロックから割り当てられ、1G バイトのファイルシステムごとに約 1M バイトのサイズ (合計で 64M バイトまで) が割り当てられます。ログは、ルート (/) ファイルシステムを含む、任意の UFS ファイルシステムで有効にできます。また、fsdb コマンドには、UFS ロギングをサポートするための新しいデバッグコマンドが用意されています。