2008-01-18
λ [FreeBSD] 7.0-RC1 に別ディスクを使って更新 (ぎりぎりまで 6.x 環境)
<URL:http://mimori.org/~h/tdiary/20060501.html#p03> の作業の dump&restore までやって /dev/mirror/gm0 上に現行環境のコピーを作成
/usr/src/UPDATING の To cross-install current onto a separate partition にある作業を参考に
cd /usr/src
# /mnt の下に gm0 で作成した新しい環境を置いている
CURRENT_ROOT=/mnt
make buildworld
make buildworld
make buildkernel KERNCONF=YOUR_KERNEL_HERE
make installworld DESTDIR=${CURRENT_ROOT}
make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
mergemaster -D /mnt -p
make distribution をする代わりに mergemaster をしたいのだが、7.0環境でないと -p オプションなしの mergemaster は失敗する。
ということで chroot /mnt /bin/sh とユーザランドを7.0にした環境内で作業したらうまくいった。
% sudo chroot /mnt /bin/sh (chrooted /mnt)# env PAGER=cat mergemaster (chrooted /mnt)# (cd /usr/ports/misc/compat6x; make install)
この時点で動作しているカーネルは 6.x のままなのだが、環境としては 7.x と認識してくれている。
さらに portupgrade もこのユーザランドを7.0にした環境内で行おうと思ったが script コマンドが pty を開けないとかいって失敗。
/mnt/dev に devfs をマウントすればいいはず…と思って jail の起動スクリプトを追ったけどいまいち分からず、
面倒なので /etc/rc.conf に jail の設定を一時的に書いて /etc/rc.d/jail start でjail環境として起動。
% sudo chroot /mnt /bin/sh (chrooted /mnt)# portupgrade -afWw
…通るものもあるが、configureの途中で Bad system call で落ちるものもある。結構微妙。あんまり役に立たないかも。
更に、FreeBSD 7.0-RC1 で再起動後に portupgrade -afWw をかけたら Fatal error 'Cannot allocate red zone for initial thread' at line 382 in file /usr/src/lib/libthr/thread/thr_init.c (errno = 12) をくらう罠。
/var/log/messages によると ruby のとこで死んでいたので ruby と portupgrade を自力で更新した。
(cd /usr/ports/lang/ruby18; sudo env FORCE_PKG_REGISTER=yes make install) (cd /usr/ports/port-mgmt/portupgrade; sudo env FORCE_PKG_REGISTER=yes make install)
その後もう一度 portupgrade -afWw で更新し、さらにそれでも残ったものを portupgrade -f [port名] で個別に更新した。 perl モジュールのところでコケてるものが非常に多かったので ruby + perl で問題発生していた雰囲気?
最後に再起動毎に panic 起こしていた原因が /usr/share/examples/ses/sesd だったのを突き止めた。 SCSIバックプレーンの温度とかを監視するもので、自分でインストールしたもの。 運用レベルに達するものではないので 7.0 での動作は確認されていなかったようだ。 余計なものと判断して削除して解決した。
/boot.config に以下のように書いて、ハードディスクの物理的入れ替えなしで 新しいディスクの方から起動
1:da(2,a)/boot/loader
using plugin: amazon calendar2 category html_anchor makelirs makerss recent_comment3 recent_trackback3 squeeze tb-send tb-show recent_list
Copyright(C) 2003-2007 by KAMIYA Satosi (上美谷 智史) All rights reserved.