Main Contents

Apple Store(Japan)

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 すけじゅーらはどこいったー?

TrackBacks

トラックバックURL:

Comments

Post a comment

(Think Different. では不適切なコメントを防止するため、コメントを掲載する前に管理者がコメントの内容を確認しています。コメントを初めて投稿する場合すぐに掲載されませんが、管理者が適切なコメントと判断した場合コメントは直ちに表示されますので、再度コメントを投稿する必要はありません。)

コメントフォーム

Copyright © here.Creative Commons LicenseThis weblog is licensed under a Creative Commons License.