設定したことを忘れないように書いてあります。
IDEケーブルを交換する前に、まずはディスクの状態を確認してみる。
smartctl -aでディスクの状態を見てみるが、どちらも問題なさそう。 ただ、/dev/hdaでS.M.A.R.Tが動作していなかったので、smartctl -s on /dev/hdaでイネーブルにした。
ケーブルを交換するついでに、プライマリとセカンダリのディスクを入れ換える。 入れ替え前は、
| Primary | Master | HDS728080PLAT20 |
|---|---|---|
| Slave | - | |
| Secandary | Master | SAMSUNG SP2514N |
| Slave | FX320S |
ちなみに、このSAMSUNGはポップにWestenDigitalと書かれていたのでそれを信じてかったら、開けてびっくりだったもの。 WDがSAMSUNGに買収されたのか?と驚きましたよ。
入れ換えて接続すると、ケーブルが硬くてファンに干渉するのでCDドライブのベゼルが少し飛び出した形でしか組み込めない、 という問題が発生したが、とりあえず完了。
smartctl -t short /dev/hd{a,c}を行い、結果をsmartctl -a /dev/hd{a,c}と確認してみたが特にに問題なさそう。 デバイスが入れ代わったので、lilo.confの入れ換えも忘れずに行って終了とした。
しばらく様子をみているが、問題はなくなったようだ。
Vine Linuxも4.2がリリースされたため、環境をアップデートしてみた。 アップデート自体は、/etc/apt/sources.listを4.2と変更し、apt-get update、apt-get dist-upgradeで問題なく完了したが、 sambaがおかしくなってしまった。
症状としては、Linuxサーバ上で保管している撮影写真を、クライアントのエクスプローラから縮小版で参照すると、 一度に大量なファイルを表示させようとした場合、サーバが固まってしまう。
Jan 6 13:37:18 XXXXX kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Jan 6 13:37:18 XXXXX kernel: hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
カーネルのドライバあたりが変わってDMAでエラーになるのかとも思ったが、 ネットで調べた限りでは、IDEのパス周りにに異常がありそうとのこと。 IDEのバス回りということであれば、チャネルのコンデンサの可能性も予想されるが、まずはケーブルIDE交換で様子をみることにした。
以前に書いた変更点意外にも問題があることが判明。 popでメールがとれなくなっていた。
spoolを見るとメールはちゃんと残っているが、popではメールがないといわれる。
結果的には、inet.confのpopが生き返ってしまってたためと判明。pop3をコメントアウトしてinetdとimpadを再起動した所、問題は解消。
Vine 4.1へアップグレート。TIPSにしたがってアップグレードは問題なく終了。 カーネルが書き換わってしまうことを心配したが(RAID-1でブートしているため)、initrdが付いたのでliloにinitrdを記載しておけば問題なくbootできた。
image=/boot/vmlinuz
label=linux
read-only
initrd = /boot/initrd.img
vga=791
root=/dev/md0
起動は問題なく、インストール完了かと思いきや、二枚差ししているNICの認識順がブートのたびに入れ替わってしまう。 何とかする方法はないのかと探したら、/etc/sysconfig/network-script中の設定ファイルで何とかなることが判明。
DEVICE=eth0 IPADDR=192.168.0.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=static HWADDR=00:10:4B:XX:XX:XX
こんな感じで、HWADDRにMACを書いてあげれば、deviceを指定できる。MACアドレスはifconfig -aで表示可能。
その他気がついたこととしては、
Mar 21 11:45:31 argus mysql: MySQL manager or server PID file could not be found! failed Mar 21 11:45:31 argus mysql:
会社のサーバーから以下のメールが飛んできた。
This is an automatically generated mail message from mdadm running on aXXXXs.XXXXX.XXXX.co.jp A Fail event had been detected on md device /dev/md4. It could be related to component device /dev/sdc7. Faithfully yours, etc.
どうやら、/dev/sdcが壊れたよう。詳細をみたらこんな感じだった。
# mdadm --detail /dev/md4
/dev/md4:
Version : 00.90.00
Creation Time : Tue Feb 14 17:07:39 2006
Raid Level : raid5
Array Size : 7807360 (7.45 GiB 7.99 GB)
Device Size : 3903680 (3.72 GiB 4.00 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 4
Persistence : Superblock is persistent
Update Time : Tue Aug 22 00:45:08 2006
State : active, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 7c9d1ebd:2d322ef4:5f08f6b7:66809036
Events : 0.232074
Number Major Minor RaidDevice State
0 8 23 0 active sync /dev/sdb7
1 8 39 1 faulty /dev/sdc7
2 8 7 2 active sync /dev/sda7
ホットスワップ可能な機器なので、とりあえず、ディスクのためにRAIDを停止。
#mdadm --remove /dev/sdc7
順番に、ディスクを取り外し、準備した新しいディスクと認識しない。 リブートを実施後、認識するようになったが、それじゃホットスワップの意味ないじゃん。
おもいだしたが、swapはRAIDではなくそのまま使っているので、swapoffしなきゃいけなかった。 その影響か。
その後はfdiskでまったく同じようにパーテーションを割り振り、パーテーション種別をfdに設定。
#mdadm /dev/md0 --add /dev/sdc1
と順に割り当てて行くと勝手に再構築されて完了。ただしスワップは作成されないので、# mkswap /dev/sdc3 && swaponが必要。
どうにも環境設定が完了しないので、PostgreSQLから使い慣れたMySQLに変更する。
rpm -e postgresql postgresql-server rpm -e postgresql-libs pgperl php5-pgsql apt-get install php5-mysql MySQL-server MySQL-client MySQL-shared
phpgroupwareのルートにあるheader.inc.phpを削除、再セットアップ。だが変わらず。環境設定が完了しない。 調べるとなんとなく、config.php中のin_docroot関数の判定とそれに引き渡す引数が怪しそう。 引数の方は、register_globalをonにすれば直るのかもしれないが、register_globalの対策はされているという事なので、それを信じてみる。 とりあえず、以下のように修正したら設定はできるようになった。
diff -c config.php /var/www/phpgroupware/setup/config.php
*** config.php 2004-04-07 08:24:44.000000000 +0900
--- /home/jp-oota/phpgroupware/setup/config.php 2006-06-21 23:34:42.000000000 +0900
***************
*** 38,50 ****
function in_docroot($path)
{
$docroots = array(PHPGW_SERVER_ROOT,$GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT']);
foreach ($docroots as $docroot)
{
$len = strlen($docroot);
! if ($docroot == substr($path,0,$len))
{
$rest = substr($path,$len);
--- 38,50 ----
function in_docroot($path)
{
$docroots = array(PHPGW_SERVER_ROOT,$GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT']);
foreach ($docroots as $docroot)
{
$len = strlen($docroot);
! if ($len > 0 && $docroot == substr($path,0,$len))
{
$rest = substr($path,$len);
***************
*** 108,114 ****
}
$newsettings = get_var('newsettings',Array('POST'));
! $files_in_docroot = in_docroot($GLOBALS['HTTP_POST_VARS']['newsettings']['files_dir']);
if(@get_var('submit',Array('POST')) && @$newsettings && !$files_in_docroot)
{
--- 108,114 ----
}
$newsettings = get_var('newsettings',Array('POST'));
! $files_in_docroot = in_docroot($newsettings['files_dir']);
if(@get_var('submit',Array('POST')) && @$newsettings && !$files_in_docroot)
{
次に言語環境のセットアップ。なぜか知らないが、最初はbertonしか選択できない。 「現在の言語をすべて削除して、選択した言語をインストール」をチェックした状態でボタンを押し、 再度言語環境のセットアップを選択する事を繰り返すたびに選択できる言語が増える。 三回目にjapaneseが選べるので選択。
アカウントも作成し、これでOKと思ったのだが、ログオンしてもメニューが表示されない。 というか、homeとabout homeとlogoutしか表示されない。englishなら問題ないのだが。
と、ここまでやって気がついたがphp5なのがいけないのではないか?。 ということで、php5をアンインストールしてphp4に。 さっきのパッチもいらないかも。
# rpm -e php5 php5-apache2 php5-mysql php5-pdo php5-pear # apt-get install php php-apache2 php-mysql php-pear
ということで、上記のようにphp4に変更後、ソースの展開からやり直したら問題なくインストール完了し、動作するようになった。 ほんとうにありがとうございました。