FreeBSD4 から FreeBSD6 へのアップグレード

FreeBSD4.11-RELEASEのサポートが2007年1月31日で切れるため、現在稼動している 4.11 のサーバー群をすべて 6.2 にアップグレードすることに。

ていうか、6.2-RELEASE すげえ遅れてるし。。

とりあえず、M/B と CPU を交換しなくてはならないやつもいるので、早急に作業することに。

DNS としても稼動しているやつもあり、 BIND8 → BIND9 への移行もしなくてはいけない。

ついでに、 ipf や ipfw で動いているのを、全部 pf にしてやりたい。

というわけで、 BIND の移行も含めて、日本で書いてある記事が見あたらなかったので、ざっくりですが書いておきます。

基本的に、 /usr/src/UPDATING に全部書かれているので、そっちを読んだ方が良いです。

英語は読めんという人は、やらない方が懸命。。この作業、非常にリスク高いですから。。

4.11-RELEASE から 5.5-RELEASE へアップグレード。

6.x へのアップグレードは、5.4 以降からのみのサポートとなるので、2段階のアップグレードとなります。。

1. RELENG_5_5 へ cvsup

2. /usr/src/UPDATING をよく読む(重要。頑張って英語読みましょう)

以下、 /usr/src/UPDATING の抜粋

<make sure you have good level 0 dumps>
<maybe fix /etc/fstab>					[1]
make buildworld						[2]
make buildkernel KERNCONF=YOUR_KERNEL_HERE		[3]
cp sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [4]
make installkernel KERNCONF=YOUR_KERNEL_HERE
cd sys/boot ; make STRIP= install			[5]
[6]
<reboot in single user>					[7]
/usr/src/etc/rc.d/preseedrandom				[8]
mergemaster -p						[9]
rm -rf /usr/include/g++
rm -f /sbin/mountd
make installworld					[11]
mergemaster -i						[12]
<reboot>

[11] と [12] の間に BIND のアップグレードを行います。

アップグレード方法については、下記を合わせて読むと良いでしょう。

BIND9 用の named.conf をあらかじめ用意しておくと作業がスムーズに進みます。

http://www.toshikazu.org/archives/000071.html

http://www.soi.wide.ad.jp/class/20030038/slides/34/index_bar.html

http://www.bsddiary.net/doc/bind9.html

[2] の時に気をつけるのは、 /etc/make.conf に COMPAT4x=YES の文があることを確認すること。

これがないと、make installworld の途中で再起不能に陥ります。

kernel config にもいろいろ変更が入っているので、 5.5 の GENERIC からしっかりマージしてやることが重要です。

[9] の時に、追加必須な user がいくつかあるので気をつけましょう。

めでたく 5.5-RELEASE にアップグレードできたら、6.x にアップグレード。

ここまできちゃえば、あとは楽ちんです。

1. RELENG_6 に cvsup (6.2 が未リリースのため)

2. /usr/src/UPDATING をよく読む(重要。頑張って英語読みましょう)

以下、 /usr/src/UPDATING の抜粋

<make sure you have good level 0 dumps>
make buildworld					[9]
make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
[1]
<reboot in single user>				[3]
mergemaster -p					[5]
make installworld
make delete-old
mergemaster -i					[4]
<reboot>

4.11 → 5.5 の時とは違い、かなり楽ちんです。

make buildkernel, make installkernel ではなく、 [8] の make kernel だけで kernel をビルドします。

こちらも、kernel config を GENERIC からしっかりマージしてやることが重要です。

options COMPAT_FREEBSD4 と、

options COMPAT_FREEBSD5 の追加必須。

あとは、さほど難しくないと思います。

久々に、FreeBSD ハンドブック を読んだんですが、Chapter 8. FreeBSD カーネルのコンフィグレーション とか非常に参考になることがわかりやすく書かれているので、読んでおくと良いと思います。

あとは、 6.2-RELEASE を待って、リリースされたら、 RELENG_6_2 にしてやれば完璧。

しかし、以前は kernel config に options SCHED_ULE がコメントアウトしてあったのだが、
options SCHED_4BSD のみになってるし。ULE すけじゅーらはどこいったー?

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中