2004/7/31

FreeBSD 4.10→5.2.1(Install)

はじめに

本www.hijiki.netのサーバとなっているマシンはPentium III 333MHzで動作していましたが、この度オークションで安くDELLのPentium III 1GHzが手に入ったのでサーバを移転しました。

OSも従来のFreeBSD 4.10 RELEASEから5.2.1 RELEASEに変更したので、移行時の注意点をエントリします。

OSインストール

マシン自体にはディスプレイを繋げずにインストールから行いたかったのですが、DELLのマシンのBIOSが変に頭が良くて、キーボードを抜いて起動しても後から指して認識が出来るようにエミュレーション(?)しているようでした。

FreeBSDのインストールCDはキーボードが検出されないと自動的にCOM1ポートに対して入出力を行うようになっているので、別のノートパソコンからTeraTerm等を使ってリバースケーブルでシリアル通信すればインストールが出来るようになっています。

今回は無理だったので、嫁さんのマシンのTFT液晶を借りてインストールだけは通常のキーボード+ディスプレイで行いました。

PORTSはインストールCDに入っている古い物を入れたくなかったので、ディストリビューションの指定は「Developer」を指定します。これで、基本コマンドとソースファイル一式がセットアップされます。

インストール後にpkg_infoで見ると、Perlだけが追加インストールされた状態になりました。

シリアルコンソールの設定

もうディスプレイもキーボードも用なしなので、以下の設定をして嫁さんのTFT液晶を解放させてあげます。時間にして15分という所でした。

まず/boot.configというファイルを作成し、以下の一行を追加します。

-h

あと、/etc/ttysのttyd0の行を以下に変更します。

ttyd0 "/usr/libexec/getty std.9600" vt100 on secure

これで、シリアルコンソールからログインが行えるようになります。この辺はハンドブックにも書かれていますが、/boot.configを「-P」にするとDELLのマシンでは動かないので注意です。

4.10と5.2.1との違い

基本的には同じFreeBSDなので後はネットワークの設定だとか、inetdの設定とか手順通りに行って下さい。元々FreeBSD4.xを使っている人向けのエントリなので細かくは書きません。
ここでは4.10から5.2.1に変更して更にportsもちょっと新しいのを入れたときに今までと違う設定について記述します。

mfs

4.xでは以下の設定で/tmpをswapエリアに割り当てて利用することが出来ました。/etc/fstabの設定です。

/dev/ad0s1b none swap sw 0 0
/dev/ad0s1b /tmp mfs rw 0 0

5.2.1では以下のように設定します。/tmpのサイズも指定する必要があります。例では100MBを割り当てています。

md /tmp mfs rw,-s100m 0 0

LANG環境変数

LANGの環境変数名が変わりました。4.xではLANGに「ja_JP.EUC」を指定していましたが、5.2.1ではLANGに「ja_JP.eucJP」を指定します。

snmpwalk

これはnet-snmpを4から5に変更したときに生じた問題なのですが、snmpwalkで指定ノードの指定オブジェクトを取得する時のパラメータが変更になりました。

たとえば今まではLinksysのBEFSR41C-JPのIPアドレスを取得するときに

snmpwalk 192.168.0.1 public ip.ipAddrTable.ipAddrEntry.ipAdEntAddr

とすれば良かったのがVersion 5では

snmpwalk -Os -c public -v 1 192.168.0.1 ip.ipAddrTable.ipAddrEntry.ipAdEntAddr

とする必要があります(パラメータには余計なものも入っているかも)。

apache

ついでにapacheを1.3.31から2.0.50に上げようと思いましたが、思わぬトラブルにあい、今は前と同じ1.3.31を入れました。

apache2からsuexecの挙動が変更になって、public_html配下のオーナーが個々のユーザIDにならないという話は以前「apache2のsuexec」でご紹介した通りですが、DocumentRootを/home/wwwとかに設定して、apacheのビルド時にsuexec支配下のディレクトリに/homeを指定すると、うまくいくことが分かりました。

手順としては/usr/local/etc/pkgtools.confに以下の設定をしてapache2をビルドします。

MAKE_ARGS = {
'www/apache2*' => 'WITH_SUEXEC=yes SUEXEC_DOCROOT=/home',
}

これで大丈夫だと思ってhttpd.confを適当にいじってhttpdを起動したら、「SuexecUserGroup directive requires SUEXEC wrapper.」というワーニングが出てしまいました。もちろんsuexecも正常に動作しません。

色々調べてみるとapache 2.0.50-5というバージョンから直ったみたいですが、2004/7/31時点の最新portsではまだパッチの当たったものは無いみたいです。

自前でビルドするのも面倒くさいのでportsのapache2がアップデートされるまで1.3.31を使うことにしました。

jls

msdosfsのファイルを日本語で見るために、japanese/jlsを入れたのですが、jlsというコマンドは5.2.1ではJailの一覧を見るコマンドが/usr/sbin/jlsにあり、標準のパス設定だとjlsと打つとこちらが優先して起動してしまいます。

.cshrcで「alias ls /usr/local/bin/jls」とする事で対応しました。

おわりに

サーバ設定後、半日経った時点での情報を今回載せました。

また他に不具合とか調整事項があれば随時更新していきたいと思います。

2004/7/29

自宅マシンを新調(日記)

とりあえず今回はカテゴリは日記です。
今使っている自宅サーバはPentiumII 333MHzというスペックなのですが、ヤフオクでDellのフルタワーを安く買いました。

CPU:Pentium III 1GHz
memory:384MB

というスペックです。今までよりも3倍早くなる予定です。
既に今のマシンもCPUファンや筐体にガタが来ており、多分1〜2年以内に壊れると思うので早めにリプレースです。
OSはFreeBSD 5.2.1を入れる予定です。またシリアルコンソールで運用しますので、何かトピックスがあったらエントリ追加しますね。