■ FreeBSD 3.5-STABLE を FreeBSD 4.2-RELEASE にする。 $Id: 3.5S_to_4.2R.txt,v 1.9 2002/07/19 00:26:53 candy Exp candy $ 3.5-STABLE からいきなり 4.6-STABLE はあっさり失敗 成功例 ●4.2-RELEASE の df 結果(make world 後) ただし、 /usr/obj -> ../local/obj /dev/ad0s1a 254063 31173 202565 13% / /dev/ad0s1e 1016303 433775 501224 46% /usr /dev/ad0s1g 7934980 308182 6992000 4% /usr/local /dev/ad0s1f 254063 16687 217051 7% /var ●ソースを 4.2R にする。 cvsup -g -L 2 4.2R-supfile --- 4.2R-supfile --- *default host=cvsup.kgc.co.jp *default base=/usr *default prefix=/usr *default release=cvs tag=RELENG_4_2_0_RELEASE *default delete use-rel-suffix src-all --------------------- ●perl を作らないようにする。 vi /etc/make.conf --- /etc/make.conf --- NOPERL=true MAKE_RSAINTL=YES USA_RESIDENT=NO CFLAGS=-O -pipe ---------------------- ●3.5 環境でユーザランドをコンパイルする。 cd /usr/obj chflags -R noschg * rm -rf * cd /usr/src make buildworld ●4.2R のカーネルをインストールする。 cd /usr/src make KERNEL=MYKERNEL buildkernel make KERNEL=MYKERNEL installkernel ●ipfw を更新する。 cd /usr/src/sbin/ipfw && make install ●デバイスファイルを更新する。 cd /usr/src/sbin/mknod && make install cp /usr/src/etc/MAKEDEV* /dev cd /dev sh MAKEDEV all # パーティションにあったディスクのデバイスファイルを作る。 for u in 0 1 2 3; do for s in 1 2 3 4; do sh MAKEDEV ad${u}s${s}a; done; done vi /etc/fstab # wd を ad に置換する。 ●boot loader を更新する。 cd /usr/src/sys/boot && make install ●リブートして、4.2R のカーネルをシングルユーザモードで起動する。 shutdown -r now boot -s ※マルチユーザでも起動する。 ipfw が古いと tcp のルールは全く効かないようだ。 udp のルールは生きている。 ●ユーザランドをインストールする。 cd /usr/src/gnu/usr.bin/texinfo/install-info make install ldconfig -R /usr/obj/usr/src/lib/libc cd /usr/src make installworld cd /usr/src/release/sysinstall && make all && make install ●/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 -w 160 ※この時点で、sendmail がコアダンプする(?) ●4.x でのユーザランドの変更に合わせる。 touch /var/log/security touch /var/log/cron rm /var/cron/log* ●perl をインストールする。 vi /etc/make.conf #NOPERL=true cd /usr/src/gnu/usr.bin/perl (cd libperl && make all && make install) (cd miniperl && make all && make install) (cd perl && make all && make install) make clean && make all && make install && make clean ●4.2R 環境でユーザランドを再構築する(すぐ 4.6R にするなら不要)。 cd /usr/obj chflags -R noschg * rm -rf * cd /usr/src make world ●sendmail 入れ換え 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 ●ssh の移行 cp -p /usr/local/etc/ssh_host_key* /etc/ssh/ vi /etc/rc.conf sshd_enable="YES" mv /usr/local/etc/rc.d/sshd.sh /usr/local/etc/rc.d/sshd.sh.old EOF