Upgrade

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.flpmfsroot.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/sendmail
TOP PAGE