読者です 読者をやめる 読者になる 読者になる

fsck には物理メモリがたくさん、絶対に必要か? (結論は出てない)

先日の FreeBSD 勉強会で、ブートシーケンスで swapon より前に fsck が走ってメモリ不足でコケて、ということが起きると、ずっと同じことの繰り返しになる、という話を聞いたので、では swapon を先に実行してから fsck ということはできないのか試してみた。
一応の実験の結果としては、swapon した状態で fsck を走らせることはできる(実メモリが過少でも大丈夫かどうかは確認していない)。手順は次の通り。

  • shutdown コマンドで( -r 等は付けない)シングルユーザモードに移行
  • / 以外のマウントされているファイルシステムをアンマウント
  • sync を実行して、その直後にハードウェア的にリセットボタンでリセット
  • ブートローダーのメニューで、シングルユーザモードでの起動を選択
  • / が clean でないまま、リードオンリーでマウントされた状態でシェルのプロンプトに落ちる
  • swapon -a でスワップを有効化
  • fsck /

実メモリが過少かつファイルが多数あり、スワップ過多でスラッシングが起きて、それでも正常に処理されるかどうか、までは確認していないため、結論は出ていないと考えられる(仮想環境で実験すればいいかなぁ?)。