禍転じて福と成す2006年11月01日 11時09分20秒

実は今回、jdk 等の大物をコンパイルするのに、ディスクが足りなかったので、/dev/ad3s2c を利用することにした。最初は newfs が出来るのに、mount が出来なかったので、少々悩んだ。

スワップデバイスに ad3s2b が指定されているのを思いだし、swapoff をした後に mount を実行。make build を並列で始めて放置した。

付けっぱなしに出来ないので、時間が来たら make を中止した後に shutdown をしたのだった。

次回は、いつものように起動した。起動して、気が付いたのが、前回 ports をコンパイルして、portupgrade を使って、インストールすればいいようにした事。さて、mount /dev/ad3s2c をやっても失敗する。折角、時間を掛けて jdk14 のコンパイルが終わり、jdk15 も随分進んだのにと思って点検した。なんと、ad3s2b がスワップデバイスとして、swapon されていたのだった!!!

4k 程のページがスワップに書かれていた。不幸中の幸いだったのが、スワップデバイスが二つ割り当てられ、そのうちの二つ目だった事だ。4k なので一ページだけなので汚染されずに済んだ。

もちろん、平常心で swapoff を行ない、mount /dev/ad3s2c をやった。損害は何もない。Liunx のスワップは mkswap をやり、フォーマットする必要がある。FreeBSD などの *BSD 系はスワップ領域にはフォーマットを行なわず、そのまま書き込む。そのため、newfs した後も、問題なくスワップとして割り当てることが出来たのだ。

それに加えて ad3s2c には、まだ書き込まれていなかったため、ad3s2c の内容も損傷一つ無かった。運が良かった。fstab で ad3s2b をすぐさま無効にしたのは言うまでもない。

前回