Linux 設定日記

設定したことを忘れないように書いてあります。

2003.12.28
サーバーのMBを変更したら・・

PCの調子が悪くなり、マザーボードを交換。

設定変更が面倒なので、同じチップセットのもの選んだため、HDDをそのままつけて問題なく起動。
と、思ったら、/dev/hdc2がFAIL-DISKとなってしまった。/dev/hdcの他のパーテションは問題ないので、どうしてだろうと思い、 調査のために、/dev/hdc2をマウントしようとしたら、/dev/hdc2がない!
ls -al /dev/hdc*とすると、確かになかった。

と、いうことで、とりあえず mknod -m 660 /dev/hdc2 b 22 2と、nodeを作ってみる。 ついでに /dev/hdaもなかったので、こちらも作成。

rebootして、raidhotadd /dev/md0 /dev/hdc2 とすると、問題なくraidに追加されたので、良しとする。

2003.12.11
カノニカルネームディレクティブって正典名ってことかい

会社で立てたApacheサーバにアクセスする際、ディレクトリ参照の/を忘れるとアクセスエラーとなる。 末尾のスラッシュが補完された後に返す名前が、FQDNで返らないため、名前解決ができなくなるという問題のようだ。

現象自体は以前からわかっていたのだが、googleで検索してもうまく事例を引っかけられず、解決できないでいた。

ま、そもそもどんなキーワードで引くべきかわからないからなんだが。そのためここでは、なるべくいろんな記述をとるようにしている。

で、やっと解法が見つかったので、ここに記しておく。http.confに、

UseCanonicalName ON
ServerName my.server.name

と記述すると、ディレクトリをスラッシュ無しで参照した場合に返すサーバー名を設定できる。 ServerNameディレクティブに記述すれば、そのサーバーにリダイレクトされる。 UseCanonicalNameの意味は、サーバが自分自身のURIをつくる必要が発生した場合(ま、この現象のように、再度ディレクトリ名でアクセスさせたいとき等)に、 ServerNameを参照するか、クライアントから送られてきた値を返すかを設定するディレクティブ。 ONならばServerNameに記述したものを返す。ま、バーチャルホストで使うことが多いんじゃないかな。

このディレクティブに関しては、既にに設定していたのだが、当然のことながら、 バーチャルホストを使っている場合は、coreの記述とは別に、<virtualhost></virtualhost>の範囲にも、 ServerNameを記述しておく必要がある。 考えればわかりそうなものだったね。

2003.11.23
PostgreSQLをインストール

postgresqlをインストール。Vine Linuxにはあらかじめ入っていたような気もするが、MySQL使いだったので、MySQLを入れ直した覚えがある。 今回、家では違ったSQLサーバを試してみたいと思い、Postgresqlを入れてみた。

やりたいことは、phpおよびperlからのDB操作なので、

apt-get install php-postgress
apt-get install postgresql
apt-get install postgresql-server

をインストールした。その後、DBをイニシャライズし、postgresqlサーバが立ち上がるようにした。

|root #su - postgress
|bash-2.04$>initdb
|
|The files belonging to this database system will be owned by user "postgres".
|This user must also own the server process.
|
|Fixing permissions on existing directory /var/lib/pgsql/data... ok
|creating directory /var/lib/pgsql/data/base... ok
|creating directory /var/lib/pgsql/data/global... ok
|creating directory /var/lib/pgsql/data/pg_xlog... ok
|creating directory /var/lib/pgsql/data/pg_clog... ok
|creating template1 database in /var/lib/pgsql/data/base/1... ok
|creating configuration files... ok
|initializing pg_shadow... ok
|enabling unlimited row size for system tables... ok
|creating system views... ok
|loading pg_description... ok
|vacuuming database template1... ok
|copying template1 to template0... ok
|
|Success. You can now start the database server using:
|
|    /usr/bin/postmaster -D /var/lib/pgsql/data
|or
|    /usr/bin/pg_ctl -D /var/lib/pgsql/data -l logfile start
|
|bash-2.04$ exit
|root# chkconfig postgresql on                 #### 起動時にサーバが立ち上がるようにする。
|root# /etc/init.d/postgresql start            #### postgressを起動
|Starting postgresql service:                               [  OK  ]
|root# su - postgres
|bash-2.04$ createuser -d -A apache            #### apache用のユーザを作成

その他ユーザは、必要に応じて作成。phpの方は/etc/php.iniを直しておく必要があるが、Vine Linuxはすでに設定済みのため特に変更はなし。

2003.11.20
IMAP-4サーバーの立ち上げ

Shurikenを使うことに決めたので、IMAP4サーバを立ち上げる。 すでにimap-2001a-10vl3が入っていたため、/etc/inetd.confのimapの行のコメントを外して、

/etc/init.d/inet restart

を行うだけでok。だったのだが、デフォルトの設定のままでは、

このため、/etc/c-client.cfを以下のように作成する。

I accept the risk for IMAP toolkit 4.1.
set new-folder-format mbx
set mail-subdirectory Maildir

一行目は、この文字列をみてtoolkitが判定をするらしい。この文字列がないと以下の設定は無視されます。
二行目は、新しく作成されるフォルダはmbx形式とするという意味。この設定を記述する前のものは、 mboxのままだが新規に作ったものは、mbxになる(ようだ)。
三行目は、各ユーザのホームディレクトリ配下のMaildir以下がメールディレクトリになる。 あらかじめMaildirが作成されていない場合の動作は保証されていない。
という設定。これらは、(英語だけど)/usr/doc/imap-2001a/imaprc.txtに書いてあります。

これでとりあえずサーバ側の設定は完了。

使った感じは、サーバ側フォルダの操作をすると結構時間ががかるという感じ。
メーラ上はすでに移行が終わっているように見えるのだが、そのフォルダを参照するとファイルの移動が発生し待たされることが多い。 これは、shurikenの実装の問題なのか、サーバの問題なのかは不明。とにもかくにも、サーバ側でのメール管理が実現できた。

2003.11.09
Vineのデストリビューション更新(なんとか)

ちゃんとkernelがRAIDに対応している起動ディスクが必要だということで、KNOPPIXのディスクを作成し起動。 その状態で、kernelを再作成した。

/mntに、/dev/md0(root)と/dev/md1(/boot)をマウントして、chroot /mntとし、liloを更新。とやってみたが、うまくliloが反映されず。 なぜか、liloの起動中にL 99 99 99 99 となってしまう。どうやら正しくインストールされていない様だが、メッセージは特になし。

仕方ないので、再びKNOPPIXを起動して、/dev/hda2の/etc/lilo.conf.resqと最低限のものを作成し、 Vine Linuxのインストールディスクで途中まで起動させ、Alt-F2で画面を切り換え、/var/tmpに/dev/hda1と/dev/hda2をマウント、chroot /var/tmpした後、 lilo -v -C lilo.conf.hdaを行い、無事起動した。

2003.11.07
Vineのデストリビューション更新の続き

復旧するために、Vine LinuxのCDを作って起動し、upgradeをかける。 liloをインストールしないと設定したので、kernelは更新されないだろうと思っていたが、kernelが更新されてlilo -vを実行された上、昔のカーネルが削除されていた。

当然、kernelはソフトウエアraidに対応していないため、起動に失敗する。

2003.11.06
Vineのデストリビューション更新

Vine Linuxのdistributionが2.6から3.0に上がったため、upgradeを実施した。 まず、/etc/apt/sources.listに3.0のディレクトリを設定して、dist-upgradeをかけてみたが、aptが更新された時点でそれ以上何もできなくなる。 ftpでダウンロードしてローカルからupdateするが、改善されない。

2003.11.02
2003.11.02の日記

で、前述のようにやっていたのだが、raidにコピーしてbootしたときに、

cramfs: wrong magic
kernel panic

となる。raid系のdriverをスタティックに組み込まなかったのかといろいろ試行錯誤、mkinitrdで ブートイメージを作ったりしたが、何のことはない、fsタイプを83からfdに変更していなくてオート でマウントできなかっただけだった。 fdiskで切ったときにfdにしていたつもりだったので、チェックが後回しになってしまった。

で、元のディスクをfdiskできりなおす。パーティションサイズは、raidで使用しているものと同サイズか それ以上でないとraidに組み込むことができない。こんどはちゃんとfdにfsタイプを設定して、raidhotadd /dev/md0と順に追加。 liloの設定をしてから再起動で完了。

ついでに現在ext2からext3に変更。kernelにスタティックに組み込んでいることを確認して、

tune2fs -j /dev/md0

と順にコンバート。本来はmountしたままではやらない方がよいとのことだが使用中なので仕方がない。 /etc/fstabをext3に変更して再起動。

最終的にディスクは以下のとおりとなった。

ディスク /dev/hda: ヘッド 255, セクタ 63, シリンダ 5005
ユニット = セクタ数 of 1 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hda1            63    530144    265041   fd  Linux raid 自動検出
/dev/hda2   *    530145   8932139   4200997+  fd  Linux raid 自動検出
/dev/hda3       8932140   9992429    530145   82  Linux スワップ
/dev/hda4       9992430  80405324  35206447+   5  拡張領域
/dev/hda5       9992493  45206909  17607208+  fd  Linux raid 自動検出
/dev/hda6      45206973  62814149   8803588+  fd  Linux raid 自動検出
/dev/hda7      62814213  80405324   8795556   fd  Linux raid 自動検出

ディスク /dev/hdc: ヘッド 16, セクタ 63, シリンダ 77545
ユニット = セクタ数 of 1 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdc1            63    514079    257008+  fd  Linux raid 自動検出
/dev/hdc2   *    514080   8653679   4069800   fd  Linux raid 自動検出
/dev/hdc3       8653680   9680831    513576   82  Linux スワップ
/dev/hdc4       9680832  78165359  34242264    5  拡張領域
/dev/hdc5       9680895  43792559  17055832+  fd  Linux raid 自動検出
/dev/hdc6      43792623  60848927   8528152+  fd  Linux raid 自動検出
/dev/hdc7      60848991  78165359   8658184+  fd  Linux raid 自動検出

]$ cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid5] [multipath]
read_ahead 1024 sectors
md1 : active raid1 hdc1[0] hda1[1]
      256896 blocks [2/2] [UU]

md0 : active raid1 hdc2[0] hda2[1]
      4069696 blocks [2/2] [UU]

md2 : active raid1 hdc5[0] hda5[1]
      17055744 blocks [2/2] [UU]

md3 : active raid1 hdc6[0] hda6[1]
      8528064 blocks [2/2] [UU]

md4 : active raid1 hdc7[0] hda7[1]
      8658112 blocks [2/2] [UU]

unused devices: <none>