2007/07/02(月)サーバ入れ替え その6

2007/07/02 12:54 PC(Linux)
[6]カーネル再構築

カーネルソースをダウンロードしてきて再構築していく。

手順そのものは以下のように、いつも通りなのでコマンドラインだけ。


# cp /boot/config-2.6.18-4-686 .config (デフォルトオプションをコピーしてくる)

# make oldconfig

# make menuconfig

# make

# make install

# make modules

# make modules_install

# update-grub



update-grubじゃなくてもうちょっと、bzImageの管理方法確立した方が良いのかなあ? もうちょっと頻繁に構築するスタイルなら考えた方が良いのだろうけど。

(カーネルオプション)

・nat関係を全部チェックするのを忘れずに。

・電源管理オプションをちゃんと入れるとこの機種では結構消費電力が下がったように思うのだが、どれが効いたのか定かでない。


以下はまったところだけ。



scripts/kconfig/lxdialog/dialog.h:32:20: error: curses.h: そのようなファイルやディレクトリはありません



makeでlibncursesがらみが無くて怒られた。

# aptitude install libncurses5-dev
しておく。



VFS: Cannot open root device "hda1" or unknown-block(0,0)

Please append a correct "root=" boot option

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)



再構築後、起動に失敗した。

initrdがうまく更新されていなかったようなので、

# mkinitramfs -o /boot/initrd.img-2.6.21.4 2.6.21.4
しておく。initrdって更新が必要なものなんだっけ? 理解危ないなあ。というか一手順忘れてるのかもしれない。必要なくなる手順とかあるから何が何だかわからなくなってくるね。

2007/07/02(月)サーバ入れ替え その5

2007/07/02 12:40 PC(Linux)
[5]がりがりインストール

APTでばんばかインストール。
まずサーバ群をインストール。

# aptitude install apache2

# aptitude install mysql-server

# aptitude install samba

# aptitude install proftpd

# aptitude install ntpd

# aptitude install dhcp
一応便利ツール。

# aptitude install screen

# aptitude install dnsutils

# aptitude install fdclone

# aptitude install lv

# aptitude install hdparm

# aptitude install apt-show-versions

# aptitude install finger
scrennはfdcloneと相性が最悪なので、あまり使わないのだけれど。

ここら辺は無いと困る。カーネル再構築にもいるし。

# aptitude install bzip2

# aptitude install gcc

# aptitude install make

# aptitude install tar
ネットがらみ。

# aptitude install wget

# aptitude install awstats
エディタは当面標準でついてるnanoを使うことにしてemacsはまだ入れない。

後は忘れた。

2007/07/02(月)サーバ入れ替え その4

2007/07/02 12:40 PC(Linux)
[4]~ネットワークの立ち上げとAPTの整理まで

APTでネットからインストールできるようになるまでの流れ。なおここらあたりだいぶ作業ログが吹っ飛んでいるので一部うろ覚え。
(1)システム(カーネルとかブートローダとか)インストール

まずはetch(debian 4.0r0-i386-netinst)のCDイメージを使って、ウィザードに従ってインストールしていく。パーティションの分割とかは割愛。
ところで余談だが、この前HDDの復旧をしたときに初めてパーティションを細かく切ることの恩恵を理解した。HDD故障の際にデータ読みだしに極端に時間がかかるような状況になると、重要なデータのエントリポイントがわかるとわからないのでは大違いなのだね。データが残っているということと、現実的に復旧できる可能性はまた違うのだった。

閑話休題。

とりあえず今回はウィザードの設定を使わず、GRUBだけ入れてからソフトは個別にインストールしていくことにする。

あっという間に終了。

もう1個余談。debianは最新版はイメージで探せるのだが、最近旧版はイメージに関して全くミラーしなくなった。jigdoを使ってくれということらしい。BitTorronetなんてどれだけ時間かかるかわからないし、ミラーをさまようよりはjigdoのほうが手っ取り早いということを覚えておこう。

(2)ネットワークの立ち上げ

まずsshがないと始まらない。

# aptitude install ssh-server
そうそう、そろそろapt-getじゃなくてaptitudeを使うように習慣づけるようにする。

それから、とりあえずルータの中からつなぐことにしてnetwork interfaceの設定をしてやる。DHCPでもいいのだけど、今回は一応IPを固定したかったので、/etc/network/interfacesを書き換えてローカルアドレスを書いてやる。そんでifdown/ifup eth1。

nx6110はIEEE1394がeth0に、NICがeth1に割り当てられているようだ。DHCPを使わない場合、/etc/resolv.confにDNSサーバのIPアドレスを書いておく必要がある。

とりあえずgoogle.co.jpとかにpingが通ることを確認し、移行の作業をsshに切り替える。

(3)apt-lineの整備

debianスレのテンプレとかを参考に、/etc/apt/sources.listを書き換え。aptitude updateが成功することを確認。
iptablesを整備。基本的には過去のもののコピーしてinit.dにスクリプトを作り、update-rc.dする。カーネルを再コンパイルするまでは動かない機能があるかもしれないので、エラーが出た部分はコメントアウト。

とりあえず準備はできたかなっと。

2007/06/29(金)サーバ入れ替え その3

2007/06/29 14:42 PC(Linux)
[3]ノートPC+USBキーボードが使えるか?

何でこんな不毛なテーマを考えているかというと、2つの理由がある。
1つは、前回の記事との関連で閉じたままでの運用が可能かという話。もう1つはキーボードがないジャンクノートは果たしてサーバになりうるかという疑問からである。

実のところ、どういったPCにUSBキーボードを挿そうがLinuxカーネルが対応していないはずはないのだ。問題は、各ディストリが「インストールCDの段階で」それをケアしたカーネルを作っているかどうかである。そりゃあそうだ、キーボードがないんだから、sshで入れるまではなんとかUSBキーボードで処理しなきゃいけない。カーネルを作り直すにしたってそうだ。自前のカーネルを組み込んだインストールCDを作るのはできるんだろうけどちょっと労力。自分のLinuxとのつきあい方からすると、やっぱりオフィシャルのイメージでインストールできてほしい。

でもう結果だけ書く。全部debian系。

debian woody - ○

debian sarge - ×(無反応)

debian etch - ×(二重入力≒チャタリング状態)

ubuntu 7.04 - ○
knoppix4.xも試したはずだが、メモが残ってない。確か大丈夫だったように思う。

ブートローダまでは大丈夫でカーネルが動くとおかしくなるのでもういけない。それにしても明らかにdebianが無頓着だということがわかる。古いので大丈夫で、今のはだめとなるとむしろ期待が持てない。ここらへんubuntuからのフィードバックを期待するdebianコミュの人たちの気持ちがわかるなあ。

打開策はないわけではないのだろうけど、こんなくだらないところで悩みたくないなら、キーボードは最低限ついているノートPCでないと無理と確定。特によくよく考えれば、一部ファンクションキーが動かないとビデオ出力とかで困りそうだものね。サーバにするんだったらやっぱり最低限下半身完品ってことみたい。最近のノートはBIOSが外部出力に出せるものがほとんどなのでディスプレイは必ずしも無くてもよさそう。今回入手したnx6110のように、一部縦線とか表示不良ならベストですかね。もちろん完動品買えるならそれが一番いいんだけど。

2007/06/29(金)サーバ入れ替え その2

2007/06/29 12:20 PC(Linux)
[2]Wake-on-LAN(以下WOL)ができるようにする

あまり本質的でない話なのだが、ノートPCをサーバにしたときにちょっと悩むのが電源ボタンへのアクセスである。
省電力やホコリ対策で液晶は閉じて使うのが通常であるが、閉じた状態では現役のほとんどのノートPCでは電源ボタンにさわれない。当然ノートPCを開けばすむ話である。が、開かずに運用できるならば設置体積を節約できるという利点がある。メンテナンスなどでシャットダウンしなければいけない機会はあり、WOLができれば若干便利になる。以前挫折したWOLであるが、今回は比較的やりやすいノートPCということで再チャレンジしてみることにした。

結論から言うとできるようになった。どうやらWOLの仕組みに重大な勘違いがあったようだ。順に話を進めよう。

まず、以前の挫折時の話を整理しよう。

・マザーボード、NIC、PCIコネクタの位置等に相性がある

・スタンバイ(S3)からの復帰は成功確率が高いが、休止(S4)や停止状態(S5)からだと難しい

・WOLが成功する組み合わせで、停止->起動ができるときもあったが再現性がない
ということだった。

ここで注目すべきは再現性がないという点。「再現性がない」は、同じ状態と自分が思いこんでいたものが実は異なるものだったりすると話が変わる。これに気づいたのはnx6110で実験しているときに「Windows XPで終了させたとき」と「電源ボタン長押しで終了させたとき」の挙動が違うことを発見したからだった。つまりどうやら電源オフの状態というのは一意ではなく、「単に電源が切れている状態」というのとは違う、「OSがWOLに備えてNIC側になにかを設定した状態」というのがあるらしい。

わかってしまえば情報は見つかるようになるものである。たとえば、「Wake-on-lan 電源ボタン」とかでググるとヒントが色々見つかる。

http://www-06.ibm.com/jp/domino04/pc/support/Sylphd07.nsf/jtechinfo/SYJ0-03CEEF6

http://www.fmworld.net/biz/celsius/manual/03kamiki/8861330/h_bios12.html
つまり、電源ボタン長押しやケーブル引っこ抜きなどによって電源を切った場合ではWOLは働かない。電源ボタン長押しで停止->WOLを試していた以前の実験では元から成功するわけがなかったのだ。ちなみにこのことから、停電時に遠隔地から電源オンするというWOLの無茶な使い方はUDPブロードキャストという点をさっ引いても、さらに厳しそうだということもわかった。ことこの用途に関しては、そういった機能を備えた無停電電源や秋月のIP POWER(ただし当然ルーターはコンセント接続=電源オンじゃないとだめ)とかそっちを使うしかない。

さて、Windows XPは終了時に自動でこのWOL待機を設定しているようである。きちんとWindows上で終了手続きを踏めばS5からのWOLが成功するようになった。一方、Linuxのカーネル2.6では今のところそのようにはなっていない。終了時にソフトで待機設定をたたいてやる必要がある。探してみると、ethtoolというソフトでWOL関係の設定をいじれるようだ。

早速インストール。

# aptitude install ethtool
Fedora Core掲示板

http://bbs.fedora.jp/read.php?FID=8&TID=4112
を参考に、init.dにset_wolというスクリプトを作って、こう書いてやる。



#! /bin/sh
/usr/sbin/ethtool -s eth1 wol g



で、debian流のスクリプト組み込み。再起動時(run level 6)に設定する必要はないはずなので、終了状態(run level 0)だけでいいはず。

# chmod +x set_wol

# update-rc.d set_wol stop 89 0 .
haltさせて実験させてみたところ、問題なくWOLができるようになった。あー難しかった。

なお、Windows上からWOLさせるなら、

http://www.vector.co.jp/soft/win95/util/se241927.html

がいいようだ。
Linuxからでは、

http://packages.debian.org/stable/net/wakeonlan

とかでいい。

2007/06/28(木)サーバ入れ替え その1

2007/06/28 18:07 PC(Linux)
ez!goサーバが最近ポンコツ化してきたので、サーバを完全に入れ替えた。以下その作業録。

[1]機種選定

我が家のサーバを担ってきた、Logitec CosmoJet EZGO-80CF128A(AtoZのE3032SのOEM)、通称EZgo。こいつにはいくつか不満があった。
まず安定性が低かったこと。コンデンサの液漏れ→張り替えに代表される作りの安さに加え、サーバ機として致命的だったのがHDD問題。ほとんど新品状態のEZgoにLinuxをインストールした状態で、HDDエラーから全くアクセスできなくなるということが週一ペースであった。IBMからFujitsuのHDDに換えることで一時期改善はしたのだが、若干HDDがへたれてくるとまた起こるということの繰り返し。HDDエラー時に明らかにHDDを痛めてる音がするのも精神衛生上よくなかった。

Pen3世代のコンパクト機にありがちな騒音。ファンが大小2つついているのだがこれが非常にうるさい。小を止めると若干マシになるものの、C3 800MHzを組み込んだ状態でも上記のような問題があって止めていいのかどうか判断がつかなかった。

動作の遅さ。当然これはEZgoが悪いと言うよりも、C3 800MHzを載せた自分が悪いのだが、いかにサーバ機といえどもうちょっとPerlやRubyのcgiが軽快に動く環境であってほしい。

また全体的にインターフェースの作り込みが甘く、TV出力が当てにならなかったり、一時期はビデオ出力ですら不安定だったこともあった。

このような不満を抱いていた折、FujitsuのHDDがさらに不安定化したこともあってついにサーバ機交換を決断した。

さて上記の不満を解消した上で、EZgoの利点であった消費電力の低さを維持したい。

・安定

・Intelチップセット(安定性の一環?)

・20W未満

・Pen3 1GHz級のスピード

・静音
20W未満となるとEZgoと同様にACアダプタを電源としたPCでしか達成できない。そうするとノートかベアボーンかと言うことになるが、その他の条件を吟味するとEZgoの反省をふまえてベアボーンでは厳しくということになる。結局選択肢としてはノートPCしかない。

そこで、具体的には以下のような条件でノートPCを選んでみた。

・PenM世代

・Intelチップセット

・ビデオはチップセット内蔵(RADEONなどを別個に搭載しない)

・CD-ROM内蔵

・安く抑えるため液晶は表示不良でもよい

・あえて小型機は選ばない(高くなる可能性と、ファンノイズの問題)
結果、HP nx6110(CelM-360J=1.4GHz, Intel 915GML)の液晶不良のものが2万円ちょっとで入手できた。肝心の消費電力の方だが、ディスプレイを閉じた状態でバッテリーを外しOSでHaltを打ち続けるという条件では、ワットチェッカー読みで14Wと満足がいく数値だった。また、ファンノイズも十分静音といえる範囲で、EISTがあるPenMに差し替えればもっと低くなる可能性もあり、2kの追加投資をするかどうかは悩みどころ。

以下余談。HPのノートPCは本当に久々にさわったのだが、すばらしく出来がいい。nx6110はA4の中量級ノートなので持ち歩き用に買うことはないだろうが、ここ最近さわったIBM・NEC・DELLの同タイプノートよりも出来がよいように思う。IBMは堅牢性が売りだったのにずいぶんとちゃちくなってしまった感があり、今は質実剛健といえばHPなのかもしれない。

2007/05/29(火)進化し続ける春M

2007/05/29 18:00 PC(全般)
http://homepage3.nifty.com/k-takata/mysoft/springm.html
フォーカスが移るとファイル選択が外れる挙動は、春Mの仕様とあきらめていたけど解決したらなんと便利な! もう足を向けて眠れませんな。

個人的にはFindのひどいワイルドカードの実装が解決されれば(あるいはFind->Markとか正規表現とか)、あと20年は使えます(笑)。

2007/05/29(火)cygwinがらみの削除できないファイル

2007/05/29 17:53 PC(全般)
cygwinフォルダのlnkの削除方法に関して。

起動ドライブ変更後に旧ドライブのcygwinフォルダが消せなくなった。どうやら、.lnkファイルで引っかかっているようだ。

消そうとすると、

「ファイルまたはフォルダの削除エラー」ダイアログが表示され、


hogehogeを削除できません。アクセスできません。

ディスクがいっぱいでないか、書き込み禁止になっていないか、

またはファイルが使用中でないか確認してください。


というメッセージが表示される。

さて、原因はよくわからなかったが対処方法は発見した。

リンクがあるフォルダのプロパティを開き、セキュリティタブから、

詳細設定->所有者->所有者の変更->サブコンテナとオブジェクトの所有者を置き換えるにチェック->OK->OKで一度プロパティを閉じる。
もう一度、セキュリティタブから、

(*)詳細設定->アクセス許可->「子オブジェクトに適用するアクセス許可エントリを親から継承し、それらをここで明示的に定義されているものに含める」のチェックを「外す」->ダイアログが出たら「コピー」を選択
詳細設定->アクセス許可->「子オブジェクトすべてのアクセス許可エントリを、ここに表示されているエントリで子オブジェクトに適用するもで置換する」にチェック


  • >適用->OK->OKでプロパティを閉じる


これでフォルダ側にアクセス権を持っていれば、このショートカットも削除できるようになる。

セキュリティタブがない場合は、

エクスプローラ->フォルダオプション->簡易ファイルの共有を使用するのチェックを外す。
なお上記すべてWinXP Proの場合。

うーんWindowsのショートカットの実装がどうなってるかなんて考えたことなかった。相対リンクじゃないときにドライブレターが変わったところで、アクセスできないなんて馬鹿な話はないだろうし、となるとcygwinが結構特殊な方法でlnkを作ってるんじゃないだろうか。あるいは私が所有権やWindows Administratorのファイル管理権限についてあまり理解してないのか。

それにしてもオプション項目の日本語が細かいとこにいくにつれおかしくなってくるなあ。

(*)このステップは不要かも

2007/05/28(月)PCastTV2の衛星放送に関するiEPG情報

我が家ではマンション上部のコンバータによってUHF帯に衛星放送が流れてきているという特殊な事情がある。従って、特別なチューナーなしにUHF対応のアナログキャプチャボードで衛星放送が見られたりする。

さて、PC-MV5DX/PCIというキャプチャボードを愛用しているのだが、これの視聴ソフトPCastTV2が、EPGで衛星放送を扱えるようにできていない。PCastTV2はBuffaloブランドのキャプチャ製品共通のソフトであるが、対応機器に衛星チューナー搭載のものがないのが原因である。

そこで今回のミッションは、なんとかしてPCastTV2でUHF33,35チャンネルをNHK BS1,BS2のEPG情報に割り当て、GUIや録画ファイル名に反映させて幸せになるというもの。

[1]PcastTV2のインストール

そもそもPCastTV2はPC-MV5DX/PCIにインストールできるようになっていない。しかし動いてしまえばMV5DXに対応しているようである。従って、インストール時にレジストリをいじってやる。
[HKLM\SYSTEM\ControlSet*(使っているコントロールセット)\Control\DeviceClasses\{65E8773D-8F56-11D0-A3B9-00A0C9223196}##?#PCI#VEN_14F1&DEV_8800&SUBSYS_051E1154&REV_05#4&CF81C54&0&10F0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}#GLOBAL\Device Parameters

]の値
BUFFALO PC-MV5DX/PCI Video Capture



BUFFALO PC-MV52DX/PCI Video Capture

に書き換え、PCastTV2をインストール。
インストール後、文字列を元に戻しPCastTV2を起動。

このままだとPCastTV2がMV5DXを認識していない場合があるので、その場合はPCastTVを立ち上げる必要がある。

さらに録画しても容量0のファイルができる場合はドライバをインストールし直す。ここまでやればたぶんOK。

[2]pcast_iepgloc.datの設定

受信するEPG情報を決めているファイルは、

C:\PROGRAM FILES\BUFFALO\PCastTV_2\EPG\pcast_iepgloc.dat

である(標準のインストール先の場合)。
このファイル中の受信放送エリアの行は、



Lct=東京(東京)

7001=NHK総合<001>,7002=NHK教育<003>, ...



となっている。自分の受信エリアのLctを探し、その下の行を書き換える。

=の前の4桁の数字は、SO-NET TV王国

http://www.so-net.ne.jp/tv/bangumi/

中の放送局コード。
PCastTV2はEPG情報をここ決めうちでダウンロードしているようだ(EPGサイト設定できるけど、リンククリックしたときに開くだけっぽい)。

上記サイトで地域選び、番組表から番組名をクリックしアドレスをみたときに、?st_cd=となっている部分が放送局コードになる。
放送局名はTV王国にあわせる。<>は自分が設定したチャンネル。たとえば、9002=NHK衛星第2<035>と追記してやると、衛星第2の情報がダウンロードされ、PCastTV2のGUIに衛星第2の列が追加される。
[3]でも番組名が出てこないんですが・・・・・・

列が追加され、情報もダウンロードしているのに、なぜか番組タイトルが表示されない。どういうこっちゃ!? と思って調べた。
ダウンロードしたEPG情報は、

C:\PROGRAM FILES\BUFFALO\PCastTV_2\EPG

内の

SEPG.txt(は日付)

に記録される。これがTV王国が提供してる生データか、PCastがパースし直したものかは謎だが、それをさらに加工して表示用のデータ、

EEPG.txt(は日付)

に直している。
調べてみると、先の例でいう衛星第2=放送局コード9002の番組はSEPGの方には記録されているが、EEPGには記録されていない。そこで放送局コードの数字をいじって、PCastがどういう挙動をしているのか確認してみた。放送局リストみたいなものを持っていて、一致しないものを捨てているのかと思いきや、シンプルに、

放送局コードが、

・8999以下->通し

・9000以上->捨て
という挙動であるようだ(8999と9000の境界以外は適当にしか確認していない)。

TV王国のサイトを眺めてみると、9000以上はWOWOWやNHK衛星にしか使われていないようで、地上派オンリーだからそれでいいということらしい。

となってくるとこの判定部分を探せばいいということになる。ついにOllyDbgの出番が来た、それ解析解析~と・・・・・・思ったのだが、使用許諾確認したら逆アセンブル、書き換え禁止となっている。とはいえしゃくに障るので、バイナリ読むのだったら問題ないと考え、それらしい名前のCEpgDll.dllをバイナリエディタで開いてみた。

さて、一文字目を検査して8,9の場合分けだと探しづらい。この際、このコードを書いた人間が一番単純にやっていると考えて、パースしたあと、atoiで数値変換->比較という流れであると想定。

ねらいが正しければ、8999(0x2327)か9000(0x2328)がどこかに見つかるはず。

・・・・・・1カ所あった、28230000が(リトルエンディアン)。あれその前が、0x3Dになってる。3Dってたしか・・・

C・M・P

ここでほぼ確定。アドレス0x2C32からの、3D 28 23 00 00の部分をいじってやればいいっぽい。たとえば、9999(=3D F0 27 00 00)とかに。とはいえ使用許諾があるので書き換えはできないわけで。

Buffalo様何とかしてください。

2007/05/23(水)imgburnが凄い

2007/05/23 8:08 PC(全般)
フリーのライティングソフトではダントツで日本語の扱いが自由。

特にUDFオンリーにしたときが強く、UDFの規格ギリギリまで使える感じ。

2.3.2.0を軽く試してみたが、

,を含むファイル名:○

「ポ」「ソ」などSJISで引っかかりやすいファイル名:○

日本語ボリュームラベル:○(127byteくらいまでは確実)

ベリファイ機能:○
インターフェースがちょっと分かりづらいが、マスタリングも出来るしダイレクトに焼けるし動作も軽快。

今のところダメなのが、

・255文字のファイル名が127文字に切りつめられる
といった点。ただこれは「ファイル名」であって「パスの合計長」でないので大して問題にならないだろう。またbyteではなく文字数であるので日本語を含めばより安全になる(切りつめられる可能性が下がる)。

個人的にはWinCDRは,を含むファイル名がダメなのでフォルダのバックアップにはこっちを使っていこうかと思っている。Unicodeがらみで著しく怪しいファイル名なんかもImgBunnだとイメージ作れたりしてすばらしい(いいこと?)。Windows上のファイルをそのままメディアにバックアップするということでは最もファイル名を維持して焼けるソフトなんじゃないかな。
OK キャンセル 確認 その他