■ FreeBSD 4.2-RELEASE を FreeBSD 4.6-RELEASE にする。 $Id: 4.2R_to_4.6R.txt,v 1.5 2002/07/19 00:26:41 candy Exp candy $ ●4.6-RELEASE の df 結果(make world 後) ただし、 /usr/obj -> ../local/obj Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s1a 254063 42534 191204 18% / /dev/ad0s1e 1016303 481957 453042 52% /usr /dev/ad0s1g 7934980 421003 6879179 6% /usr/local /dev/ad0s1f 254063 30270 203468 13% /var ●ソースを 4.6R にする。 コンパイル済の obj を使う場合には、 src もタイムスタンプを保存したままコピーすること。 (RELENG_4_6 は現在変化が激しいので、 obj と src のバージョンが異なる可能性がある。 (make installworld でいくつかエラーが出る)) cvsup -g -L 2 4.6R-supfile --- 4.6R-supfile --- *default host=cvsup.kgc.co.jp *default base=/usr *default prefix=/usr *default release=cvs tag=RELENG_4_6 *default delete use-rel-suffix src-all --------------------- ●古い make.conf を編集 vi /etc/make.conf #MAKE_RSAINTL=YES #USA_RESIDENT=NO #CFLAGS=-O -pipe ●4.2R 環境でユーザランドをコンパイルする。 cd /usr/src make buildworld ●4.6R のカーネルをインストールする。 cd /usr/src make KERNCONF=MYKERNEL buildkernel make KERNCONF=MYKERNEL installkernel ※modules/linux がコンパイルできない場合、 rm -r /usr/src/sys/compile/XXX/modlues するとコンパイルできるようになった。 ●ipfw を更新する。 cd /usr/src/sbin/ipfw && make install ●リブートして、4.6R のカーネルをシングルユーザモードで起動する。 shutdown -r now boot -s ※マルチユーザでも起動する。 古い ipfw は add できない(error)。list もできない(core dump)。 ●smmsp, mailnull 等のユーザ/グループをインストールする。 mkdir /usr/local/backup; rsync --delete -av /etc /usr/local/backup/ /usr/src/usr.sbin/mergemaster/mergemaster.sh -p ●ユーザランドをインストールする。 cd /usr/src make installworld ●/etc を更新する。 mkdir /usr/local/backup; rsync --delete -av /etc /usr/local/backup/ mergemaster -sia # rsync -auv /var/tmp/temproot/etc/{defaults,isdn,mtree,periodic} /etc mergemaster -sr ●4.6R でのユーザランドの変更に合わせる。 touch /var/log/auth.log chmod 600 /var/log/auth.log ●sendmail 入れ換え vi /etc/rc.conf sendmail_enable="NONE" vi /etc/mail/mailer.conf sendmail /var/qmail/bin/sendmail send-mail /var/qmail/bin/sendmail mailq /var/qmail/bin/qmail-qread newaliases /var/qmail/bin/newaliases ●重要な変更点 rc.firewall firewall_type = スクリプトの場合、 localhost のルールが消えた。 スクリプト先頭に 3 行追加せよ add 100 pass all from any to any via lo0 add 200 deny all from any to 127.0.0.0/8 add 300 deny ip from 127.0.0.0/8 to any rc.firewall6 firewall_type = スクリプトの場合、 localhost のルールが消えた。 スクリプト先頭に 3 行追加せよ add pass ipv6-icmp from :: to ff02::/16 add pass ipv6-icmp from fe80::/10 to fe80::/10 add pass ipv6-icmp from fe80::/10 to ff02::/16 inetd.conf 全てコメントアウトされている。 syslog.conf root への通知が消えた。 auth.log が追加。 EOF