FreeBSD 6 to 7 はまりポイント

FreeBSD6から7へのアップグレードは簡単だけど、 一気に行かないといけないという制約があるので注意、というお話。

VirtualBoxの設定を色々やったが、結局 VMware Server にいれた FreeBSD6のほうでFreeBSD7へのアップグレードを練習して準備万端、 のはずが、つまずいた。普段の手順通りこんな風にやっていた。

  1. /usr/src を RELENG_6 から RELENG_7 へ
    (普段cvsなので cvs up -rRELENG_7 -Pd した)
  2. 今回は make buildworld 先にしないと make buildkernel できないようなのでそうした
  3. 新しいカーネルでブート
  4. 即 make install world

本番環境では今までの調子で まず新しいカーネルが無事上がるか確認してから古いカーネルに戻って make buildworld ... と、しようとして、はまった。

一度7カーネルで起動すると、GEOM化したディスクを使っている場合に メタデータをアップデートして、FreeBSD6カーネルではrootパーティションを マウントできなくなってしまう。がびーん。

そんなわけで、FreeBSD7を起動して、手動で裏回線に繋ぎ、 ネットワークの先にある /usr/obj を rsync で持って来て make installworld した。ひーえー。/sbin/ipfw が古いままなので デフォルト deny のままつながらなくなっちゃうんじゃないかと思ったが 何とかなった。

ああ、恐ろしい。VMwareの実験環境も本番環境と同じ gmirror を組んでおかないとダメだなあ。

手なわけで何とか無事、

uname -a
FreeBSD spada.gentei.org 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #42: \
Tue Sep  2 01:14:18 JST 2008\
root@spada.gentei.org:/usr/src/sys/i386/compile/SPADA  i386

となった。