OS のアップグレードは何やら怖そうなメッセージが出たりして躊躇してしまいがちですが、手順を踏めば問題なくできます(できました)。ここでは、4.3R から 4.4R へのアップグレードについて記載します。それなりの危険は伴いますので自己責任でお願いします(当たり前ですね)。
1./usr/portsと/usr/srcのバックアップ
アップグレードの場合、/usr/ports と /usr/src は削除しておいた方が安全のようです。名前を変えてバックアップしておきます。
# cp -R /usr/src /usr/src.old # rm -Rf /usr/src # cp -R /usr/ports /usr/ports.old # rm -Rf /usr/ports
2.ソースのゲット
アップグレードの場合、サーバーを一時停止しなくてはならないので、ftp経由のインストールでは時間が掛かり過ぎます。もちろん、CD-ROMがあればそれをソースにすることは可能ですが、新しくリリースされた場合には、自分でfetchするのが一番早いでしょう。そこで、wgetを使ってソースツリーごとダウンロードします。wgetはportsから簡単にインストールできるので予めインストールをしておきます。僕の場合、次の日本のミラーサーバーからダウンロードしました。適当なディレクトリにダウンロードします。
# cd /usr/home/masao # /usr/local/bin/wget -o log -m ftp://ftp3.jp.freebsd.org/pub/FreeBSD/releases/i386/4.4-RELEASE &
ダウンロードには半日〜1日掛かります。途中経過は
# tail -f log
で分かります。
3.インストールディスクの作成
まず起動用のブートフロッピーを作成します。ブートフロッピーは2枚になっています。まず、4.4R用のkern.flpとmfsroot.flpをダウンロードします。また、イメージ作成用のfdimage.exeもダウンロードします。接続しにくいときは、mirro siteを使います。
これらをDOS/Vマシンの適当なディレクトリ(例 C:\TEMP)に置いて、MS-DOSプロンプトで、ブートフロッピーを作成します。DOS/Vフォーマット済みのFDを挿入して、
C:\TEMP>fdimage.exe kern.flp a:
これで1枚目のブートフロッピーが作成されます。同様に2枚目のブートフロッピーも作成します。
C:\TEMP>fdimage.exe mfsroot.flp a:
4.アップグレード・インストール
アップグレードの前に、/etc/fstab の内容をメモしておきます。マウントポイントを決めるときに参考にします。そして1枚目のブートフロッピー(kern.flp)をFDDに挿入して再起動します。やがて2枚目のブートフロッピー(mfsroot.flp)の挿入を促すメッセージが出ますのでそれに従います。最初の画面は [Enter] でとばします。メイン・メニューが現れたら、Upgrade を選んで [Enter] します。するとアップグレードに関するドキュメント画面になりますので、それも[OK]します。そして次の確認画面も[OK]した後、Choose Distributions 画面になりますので、ここで配布ファイルを選びます。僕の場合、Xは使用しないので、一番上の Developper だけを選びました。次に Disklabel Editor の画面に移りますので、先にメモしておいた、/etc/fstabの内容と矛盾しないようにマウントします。ここでは決して [T]newfs は選ばないように。フォーマットされてしまいます。次に /kernel を /kernel.prev に変えるというメッセージや、/etc をセーブする旨のメッセージがでますので、すべて[OK]で先に進みます。そして Choose Installation Media の選択画面になります。僕の場合、先にwgetでゲットしたソースを使ったので、File System を選んで、先のディレクトリを指定しました。
/usr/home/masao/ftp3.jp.freebsd.org/pub/FreeBSD/releases/i386/4.4-RELEASE
これで上書きインストールが始まります。大体20分くらいで終わりました。
5.アップグレード後
これで最後に reboot すれば、程なくFreeBSD 4.4R が立ち上がるはずです。もしここで立ち上がらなければ、boot: のときに、kernel.prev として古いkernelでブートしてください。そのあと、/kernel.prev を /kernel に mv すれば 4.3R に戻れます。このままでもいいのですが、僕の場合は、バックアップされた古い etc を新しい /etc にコピーしました。
# cp -R /usr/tmp/etc /
多分/etc全部をコピーする必要はないと思いますが、よくわからないのでこうしています。正確を期すには、mergemasterで、/usr/tmp/etc と /etc を比較して修正する必要があります。なお、kernelの再構築をしてある場合は、すべて GENERIC に戻りますので、再び再構築が必要です。また、4.1Rから、sendmailのファイル配置が変更になったため、このままではqmailがうまく動きませんでした。オリジナルでは、
/usr/sbin/sendmail -> /usr/sbin/mailwrapper
とリンクが貼られていますが、僕の場合、次のように変更したらqmailが元通り動くようになりました。
# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmailTOP PAGE