FreeBSD で softupdate を有効に

FreeBSD の UFS ファイルシステムで soft updates(ソフトアップデート)を有効にする手順である。soft updates は、ファイルシステムのメタデータの書き込み順序を制御する機能であり、クラッシュ後の復旧を容易にする。設定の変更には tunefs コマンドを使用する。tunefs は UFS 専用であり、ZFS では使用しない。

FreeBSD 9 以降のインストーラ(bsdinstall)で UFS を選んでインストールした場合、soft updates と soft updates journaling(SU+J) は既定で有効になっている。現在の設定は、次のコマンドで確認する。

tunefs -p /var
tunefs -p /usr

tunefs は、書き込み可能でマウント中のファイルシステムに対しては実行できない。対象のファイルシステムがアンマウントされているか、読み取り専用でマウントされている必要がある。そのため、シングルユーザモードで操作する。シングルユーザモードで起動するには、起動時のブートメニューでシングルユーザモードの項目を選ぶか、ローダのプロンプトで boot -s と操作する。

シングルユーザモードで次のコマンドを実行する。umount -a により、ルートファイルシステム以外がアンマウントされる。exit により、マルチユーザモードでの起動が続行する。

umount -a
tunefs -n enable /var
tunefs -n enable /usr
exit

ルートファイルシステム(/)で soft updates を有効にする場合は、シングルユーザモードで次のコマンドを実行する。シングルユーザモードではルートファイルシステムは読み取り専用でマウントされている。設定を反映させるためには、実行後に再起動が必要である。

tunefs -n enable /
reboot

soft updates が有効なファイルシステムでは、soft updates journaling(SU+J) を追加で有効にできる。SU+J により、クラッシュ後の fsck の所要時間が短縮される。一方で、ジャーナルへの書き込みが増えるため、書き込みが多い用途では書き込み性能が低下する。有効にするには、シングルユーザモードで次のコマンドを実行する。シングルユーザモードで起動するには、起動時のブートメニューでシングルユーザモードの項目を選ぶか、ローダのプロンプトで boot -s と操作する。

umount -a
tunefs -j enable /var
tunefs -j enable /usr
exit