サーバを入れ替える。

自宅にあるこのwebサーバ(道楽サーバ?)ですが、Celeron300MHz/128MBで動いているマシンから、Pentium3 450MHz/320MBに入れ替えてみました。

HDDはそのまま引っこ抜いてなんとか動くだろう…ぐらいの甘い考えだったのですが、以下のような問題にぶち当たりました。

[/boot/loader.conf] hw.ata.ata_dma=”0″ ;HDDのDMA転送を無効にする。

…よくやるのです。。。これ。(上記を一時的に指示するには、起動する前に set hw.ata.ata_dma=0 をして boot でも可能です。)
ちなみに、FreeBSD4系の時は、起動時にHDDのDMA転送がうまくいかないとき、3回ほどDMA転送ができるか試した後に、PIO4とか切り変わるのですが、FreeBSD5系からは自分で明示的に指示しないとだめなようです。

なんだろうなぁ…。
あとは、ネットワークアダプタも若干変更があったため、インターフェースにあわせて書き換えます。

[/etc/rc.conf] #ifconfig_fxp0=”inet 192.168.1.1 netmask 255.255.255.0″ ifconfig_xl0=”inet 192.168.1.1 netmask 255.255.255.0″

Linuxと違って、1つのファイルにこうやって書けるのはありがたいなぁ、と思う今日この頃です。

で、今回なんでサーバを入れ替えたかといいますと、『MovableTypeでエントリーを投稿したとき、再構築がもうちょっと早くならないん?』というのがきっかけでして、ここに至る次第でございます。

しかし、入れ替えましたものの…気持ちホンワカ少しだけ早く…なったような気がします。。。

chflagsでアキレス腱解消!!

前回、アキレス腱であるファイルを消してしまい、とんでもない事態に陥りましたが、そのアキレス腱を打破すべく以下のコマンドを使ってみました。

コマンド : chflags

フラグの設定 フラグの解除 フラグの内容 必要な権限
arch noarch archived root
opaque noopaque opaque 所有者またはroot
nodump nonodump nodump 所有者またはroot
sappnd nosappnd system append-only root
schg noschg system immutable root
sunlnk nosunlnk system undeletable root
uappnd nouappnd user append-only 所有者またはroot
uchg nouchg user immutable 所有者またはroot
uunlnk nouunlnk user undeletable 所有者またはroot

なんだかはよくわかりませんが、immutableは変更不可、undeletableは削除不可なのだそうです。

ということは…。

# chflags schg /libexec
# chflags schg /libexec/ld-elf.so.1
#
#
# mv ld-elf.so.1 ld-elf.so.1.1
mv: rename ld-elf.so.1 to ld-elf.so.1.1: Operation not permitted
#

とりあえず移動やリネームによるアキレス腱は消えました。
そして、肝心の削除ですが、

# rm ld-elf.so.1
override r-xr-xr-x root/wheel schg for ld-elf.so.1? y
rm: ld-elf.so.1: Operation not permitted

消せなくなりました。よかったー。(^^;

PostgreSQLのDBバックアップ&復旧方法

PostgresのDBをバックアップし、その後復旧する方法です。
(._.) φ メモメモ

バックアップ方法
(postgresqlは起動した状態にしておく)

% pgdumpall > backup.db

復旧方法
(postgresqlを起動し、initdbだけしておく)

% psql -e template1 < backup.db

復旧時の注意点は、やっぱり -e をつけないとだめなようです。

恐ろしきかなld-elf.so.1の罠。

なんとなく会社でFreeBSDにantivirをインストールしていたarakawaさんが、こんな事を言いました。

「ELF interpreter /libexec/ld-elf.so.1 not found」 が出るのですよ。

そういえばうちのサーバくんでも出たっけ。

そのときはとりあえずしのぎで、/usr/libexec/ld-elf.so.1 を /libexec/ld-elf.so.1 にコピーして終了。
その後なんとなく気持ち悪いので、以下のコマンドを入れてシンボリックリンクにでもしたいなぁ、と思いやってしまいました。

# cd /libexec
# mv ld-elf.so.1 ld-elf.so.1.orm (ormではなくorgのタイプミス…今後オルムファイルと呼びましょう。)

そして、シンボリックリンクでも張ろうと思った矢先、

# cd /
# mv libexec libexec.orm
ELF interpreter /libexec/ld-elf.so.1 not found
Aborted.

なぬ……………………………………………………。

これ、とんでもなく大事なファイルなんですね。(泪
調べたら、ld-elf.so.1さんはFreeBSDのバイナリを実行するのにとても大事そうなファイルなんだそうです。

おかげで、cpもlsもmvもなにもできないし、新たにsshでログインしてもまるでダメ。
あーあ、CD起動でなおさなくちゃいけないのかなぁとか思った矢先、そうだlinx_baseがたしか入っていたな、FreeBSDのELFバイナリじゃなければ…ということで、以下のコマンドを入れてみるわけです。

# /compat/linux/bin/bash
bash#

助かった…。ありがとうLinuxカーネルさん。あんたにちょっとだけ感謝するよ。

その後、慣れないbashでなんとかシンボリックリンクを作って逃げました。

うーん、これとても驚異ですね。。。まさしく「アキレス腱」です。

FreeBSD5.3Rを入れてみる。その2(Apache2とPHP5)

Apache2をインストールしたときの記録です。

# ./configure –enable-so –enable-ssl

あとはmakeして普通にインストール。

次は、PHP5をインストールしたときの記録です。
(pgsqlは既に入れたものとします。)

./configure \
–with-apxs2=/usr/local/apache2/bin/apxs \
–with-xml –enable-mbstr-enc-trans –enable-mbstring \
–with-pgsql=/usr/local/pgsql –with-tsrm-pth

ここで、./configure時に、XML2がないぞとかエラーが出まして、進めませんでした。
いろいろ調べた結果、libxml2とlibxsltが必要です。

私の場合、

/usr/ports/textproc/libxml
/usr/ports/textproc/libxslt

を入れて進めてしまいました。いいのかなぁ(^^;

FreeBSD5.3Rをインストールしてみる。

我が家で稼働しているサーバ君ですが、新年を機に(?)HDDなんかを入れ替えてみようと思います。
…ついでにOSもずいぶん古いから、新しいのでも入れてみようかな…。

ということで作業を始める前に、まず現在使っているサーバ君のHDDを取り出し、別筐体マシンに入れてみます。
内容は、Celeron333マシンのサーバで使っていたHDD[4.3GB]を、Pentium166マシンへ入れて見る。
おぉ、動きます。

すごいね。
っていか、こんなんでいいの?
ということで、いま皆さんが見ているこれも、暫定サーバ君で動いています。

うーん、やっぱ遅いですなぁ。。。
コメント書くときは特に遅い。。。(^^;

ということで、続きます。(泪