2008年12月 7日 (日)

Ubuntuサーバー

Serveros_3  ubuntuサーバーをインストールしてみました。今までサーバーはDebianだったのですが、ルートディレクトリのハードデイスク容量が足りなくなり、不要なものを外すか、別パーテーションにインストールし直すかで、結局再インストールすることにしました。今度はデスクトップLinuxで主流になりつつあるUbuntuがサーバー版も出したということで、Ubuntuサーバーを使いました。UbuntuがDebian派生ということもあったので安定性も間違いないとも思ったからです。インストールはデスクトップ版と異なりキャラクターベースですが、簡単に終わりました。この辺はデスクトップ版と同様にWindowsのインストールよりも簡単です。sambaの設定なども自分の環境に合わせて設定ファイルを書き直す程度で完了です.ただインストールしたままだとIPアドレスが自動(DHCP)モードになっています。固定アドレスにするためDebianと同様の/etc/network/interfacesの設定ファイルがあるので、ここを変えてみましたが、再起動しても設定ファイルの通りに固定アドレスにならず、自動取得モードのままです。Ubuntuのフォーラムで検索したら、インストール時にネットがつながらないようにして固定アドレスにするしか無いと書いてあります。デスクトップ版Ubuntuでは、GUIで設定したので、このような問題が無かったのですが、デスクトップ版を元に開発したUbuntuサーバーはGUI版特有の別の設定ファイルがあるようです。以前Redhatでもネットワークの設定で同じように悩んだことがありましたが、サーバーでこのような不明確な部分があると使いにくいので、結局Debinをまたインストールしました。
 実はこのインストールは11月中旬に行ったのですが、今日この記事を書くために再度フォーラムを覗いたら、11月24日の投稿で固定アドレスにするやり方が書いてありました。やはりGUIでの設定方法でした。おまけにNetwork Managerにバグがあって一度アップデートしないとだめだということも書いてありました。
 やはりサーバーはこれからも本家Debianを使っていくことにしました。使いやすさを追求するとGUIの設定になるのはいいのですが、サーバーで使うには内部の設定ファイルの仕様が分からないと不安です。
 しかしデスクトップ版としてのUbuntuは使いやすく、サーバー以外のLinuxは全てUbuntuにしています・・・

| | コメント (0) | トラックバック (0)

2008年12月 4日 (木)

プログラム移植

Photo  前に、データを消してしまって何とか復元した話をしましたが、あれはC言語とTcl/Tkを組み合わせて作った五目並べのプログラムでした。かなり手強い五目並べです。これは20年以上前に作ったものですが、最初は行番号付きで変数名もアルファベット2文字程度が使える初期の頃のベーシック言語で作りました。そのとき以来新しいプログラム言語を習得する毎に、その言語に移植してきたものです。ベーシックからC言語、マイクロソフトのC言語でMFC(マイクロソフトファンデーションクラスライブラリ)を使ってGUIを実現しました。その後、C++、そしてLinuxのJAVAに移植、最後にC言語とTcl/Tkの組み合わせで作りました。その最後に作ったものを一瞬でDeleteしてしまったのです。で、復元後こんどはC言語の部分も含めてTcl/Tkで書き直しました。というのもC言語で作るとWindowsとLinuxの両方で動かすためにはC言語の開発環境をその両方で作る必要があるのですが、もう開発環境を作るのが面倒になってきたのです。(年のせい?)いろいろ考えているうち、Tcl/Tkで全て作ってしまったほうが、動作環境も含めて簡単に構築できるので、Tcl/Tkで書き直しました。一箇所の変換ミスを除けば、変換は一週間程度の機械的作業でした。Tcl/Tkは、プログラム用言語としては、あまり人気がないようですが、我々アマチュアがたまに使うには、手ごろでとても使いやすいです。自称プログラム言語マニアの自分としては、C++、JAVAなどをはじめて使ったときにはCなどと比較してオブジェクト指向などやなかなか作りやすくすばらしい言語と思ったものですが、パソコンを変えるたびに開発環境を作るのが苦痛になって、つい疎遠になっていました。しばらくぶりにまたプログラムをいじりたくなったので五目並べを引っ張り出したのです。こんど使って見たいと思ったのはRubyかPythonでした。どちらもオブジェクト指向の魅力のある人気の言語です。ところが実際はTcl/Tkを使っているうちに、これで十分だという気になってきました。理由は自分にとって
 環境構築がとても楽
 GUIの作成が簡単
 日本語が自由に使える
 実用的な使える機能がある。
 思ったことを実現しやすい。
 いざとなるとincr Tclを使ってオブジェクト指向のプログラムも作れる
 言語仕様がかわいくて作ったプログラムに愛着を感じる?(個人的感想)
などなど、これでいいやと思うようになってきました。さしあたり今までC言語などで作ってきたものをできれば全部移植できればと思っています。

でもエンフィールド・写真・車と・・・いろいろやりたいことがあって実際はなかなか手がまわりません。・・・ということで今日は・・・なんだかやりたいことの決意表明のようになってしまいました。

| | コメント (0) | トラックバック (0)

2008年9月25日 (木)

データ復元

 久しぶりに、サーバのデータを整理していたら見事に大事なディレクトリを消去。一瞬、何が起こったか、自分が何をしたか、理解したくない衝動が・・・、しかし非情な現実は数秒後に、容赦なくやってきました。Linuxの場合には、ext2ファイルの復元コマンドは、あるのですが、ext3ファイルの場合には、ネットで探しても見つかりません。市販品にはあるようなのですが・・・・。色々調べたらgrepコマンドで一応ディスクの中身を見ることができそうなので、キーワードで検索して関連するブロックを拾いだすことにしました。こんな感じです。

   grep -a -b "abcd" /dev/sda3

 実際には、リダイレクトでファイルに落とし、必要なデータを拾い出します。しかし何度も編集したデータなので、かなり引っかかってきます。あまりにも多いので適当に当たりをつけて、必要な部分を拾い出してエディタで繋ぎ合わせて何とか復元。ソースファイルが何本で、関連するファイルがどれかも忘れているので大変でした.。幸い、makefileを見つけてファイルの数と関連を何とか思い出してきましたが・・・。C言語で作ったソースファイルをコンパイル、エラーを取り除いて動作確認。久々のC言語とコンパイラの環境設定に手間どりましたが、何とか復元。ふ〜〜〜。
 ちなみに一気にディレクトリを消してしまった危険なコマンドは、rm -r "dir" でした。これを管理者権限でやってしまいました。音もなくあっという間に消えます・・・

| | コメント (0) | トラックバック (0)

2007年9月19日 (水)

ルーターその2

 ルーター交換後、クロックアップで通信速度が大幅に上がることがわかったので、余っているAMD・K2の200MHzパソコンを導入してみました。その結果、最速で30Mb以上となりました。22Mbからの大幅な増加です。これ以上は、通信回線(CATV)の速度あるいはクライアントパソコンの動作速度に依存しているようで、クライアントパソコンを直接CATVに接続しても変わらないようです。契約CATV回線の公表最大速度は35Mbのベストエフォートタイプです。
 ルーター用パソコンは消費電力を少なくするためハードディスク・CD-ROM装置等の使わないものは全て外しています。
 ルータソフトのFloppyfwはバージョン3.0xの最新のものを使いました。LANカードは一般的に市販されている実績のあるものを使用したので、IPアドレス等の基本的なものを設定するだけで動作しました。

| | コメント (0) | トラックバック (0)

2007年9月11日 (火)

ルーター

我が家のインターネット接続環境は、CATV回線を使用し、ルーター経由で、数台のパソコンへ配信しています。今まで、ルーターは1000円で購入した古いパソコン(486DX100Mhz)を使ってました。それにフロッピーディスク一枚で立ち上げられるルーターソフトfloppyfwを導入していたのです。しかし、夜間はファンの音がうるさく、消費電力も多いので、市販のルーターを導入することにしました。しかしこれが、実際に使用してみると、あまりにも遅く、家族(娘・嫁)からも不評を買ってしまったのです。実際、あまり遅いので、設定を確認したら、どうもネットワークアドレスとネットマスクの設定がうまくいってないようですが、設定メニューが無いのでどうすることもできません。また元に戻しました。はるかに早く、市販品には戻れないようです。
 仕方がないので、手持ちのファンの音が静かで、CPUの性能が少し上(ペンティアム75MHz)のジャンクパソコンを、利用することにしました。ネットワークボードは、新品2個購入。古いルータと同じチップが使われているボードを購入して、ソフトは同一のものをそのまま使えるようにしました。新品を使用したのは、すぐに動かなかった場合を考慮して、古いルータもいつでも使えるようにしたかったからです。自分だけならいいのですが、家族も使っているので、インターネットが使えない状況を極力少なくしなければならないのです。しかし実際にはあっさりと動作したので、古い機種は、予備機として残してあります。通信速度は12Mbpsから20Mbpsへアップしました。
 Floppyfwのソフトはバージョン1.015を使っていますが、現在は3.0xがアップロードされているのでバージョンアップを検討しています。但しファイヤウォールの設定が、1.xxの時代はipchainsだったのが3.xxではIptablesになっているので、設定方法を少し勉強してから構築する必要があります。このバージョンアップで何のメリット・何が違うのか?分かりませんが・・・・・。
 現在は、動作クロックを75MHzから100MHzまであげています。通信速度は約1割程度上昇しました。

| | コメント (0) | トラックバック (0)

2007年7月 3日 (火)

VINEのインストール

 古いパソコン166MHz Mem196MBがWindowsでの稼動が、セキュリティ上や安定性の面から使いづらくなったので、Linuxを載せる事にしました。最初Debianを載せる予定でしたがAMD-K5 CPUがキャッシュにバグがあって、インストールできませんでした。このタイプのCPUはサポートしないようです。そこで前からVineでは動作確認していたので、これを導入することにしました。サーバー用途では、Linuxをずっと使っていましたが、デスクトップとしては、しばらくぶりでした。インストールは簡単に済み、動作確認して見ましたが、オフィスソフトのワープロ・表計算ソフトも簡単に動きました。以前と違い、動作も安定して、表計算ソフトも簡単にグラフ作成まで行ってみましたが、簡単に作れました。Windowsから乗り換えても十分実用に使えそうです。OSの安定性は、XPよりもありそうです。XPの場合には時々、固まってしまう場合(しばらくほって置くと正常に戻る)がありましたが、これはそのようなことが無く全く安定しています。
 パソコンの良く知らない嫁にも使わせましたが、最初は画面構成が変わったので戸惑っていましたが、インターネットのみの使用のせいか、すぐに慣れたようです。

| | コメント (0) | トラックバック (0)

2007年6月24日 (日)

PCMCIAをlinuxで使う。(メモ)

 PCMCIAに限らず、PnPカードを使用する場合、最初にリソースを割り当てる必要があります。Windowsでは立ち上げると勝手に設定してくれます。通常はその後linuxを立ち上げても、そのまま使えるようになります。しかし、中にはlinuxで使おうとするとリソースが設定されていない場合があります。これはWindowsが自動設定した情報をESCDに書き込まないためです。書き込ませるためにはWindowsでリソースの設定を手動で行う必要があります。手動で設定された場合にはWindowsの終了時にESCDに書き込まれます。しかし私の所有している東芝PV3000では手動設定ではWindowsでも正常動作しなくなります。リソースの設定が自動で設定された値と同じでも動作しないのです。linuxで使おうとすると、カードは認識しているのに割り込みが出ないのでBIOSをチェックして見ろとメッセージが出ますが、BIOSも古くて、設定ができないのでちょっと悩みました。linuxにあるisapnptoolsのようなツールを使うことも考えましたが、現バージョンのDebian sargeではサポートしていないようです。ソースをいじって動かすことも考えましたが、今後、使う可能性は少なく、一回使うだけのために作るのも面倒になったのでPCMCIAを使うことは断念しました。
 現在、東芝PV3000は使っていません。BIOS自体があまりにも古く、サポートし続けることが、困難になったためです。しかし、今後も同様のことがあるかもしれないので、メモとして残すことにしました。

用語:

ESCD(Extended System Configuration Data)
 BIOS の PnP 設定情報を記録してある不揮発性のデータベース。PnP デバイスのリソース設定情報を格納するだけではなく,非 PnP デバイスの設定情報も格納している(非 PnP デバイスであることも記録しています)ので,衝突を回避することができます.ESCD データは普通チップに保存されるため電源を落しても消えませんが,ハードディスクにデータを保持するタイプのものもあります(??).

ICU(ISA Configuration Utility)
 Plug and Play機能を持たないISA拡張カードをPlug and Play環境で使用できるようにするソフトウェア。
 Plug and Play対応の拡張カードは、システムの起動時に各種システムリソース(IRQやI/Oアドレスなど)が動的に割り当てられるが、Plug and Play非対応の従来の拡張カード(legacyカードと呼ばれる)では、これらのシステムリソースをジャンパなどで固定的に設定するようになっている。こうしたlegacyカードのシステムリソース情報を、Plug and Playカードが認識できるようにするのがICUの働きである。legacyカードとPlug and Playカードを混在させて利用する場合には、このICUにより、legacyカードが使用するシステムリソース値を設定(登録)しておく必要がある。これにより、Plug and Playカードは、起動時にlegacyカードが使用しているシステムリソースを避けて、自分自身が使用するリソース値を設定できるようになる。

| | コメント (0) | トラックバック (0)

2007年6月21日 (木)

サーバーのバージョンアップその2

 Debianのインストールは、無事に済みましたが、いろいろな設定をする必要があります。といってもWinowsファイル共有のためのSambaの設定とCUPSでのプリンタ設定のみです。基本的にはインストール時に終わっていますが、Sambaの管理者登録とユーザー登録が必要です。今回は、ユーザー固有のファイルと共有ファイルの設定をしました。プリンタ設定はブラウザで行いました。従来システムは別パーテーションで立ち上がりますので、必要な場合は、いつでも使えるようになっています。

| | コメント (0) | トラックバック (0)

2007年6月19日 (火)

サーバーのバージョンアップ

 サーバーのディスク容量が、完全に足りなくなったので、シリアルーATAタイプの320GBハードディスクに交換することにしました。ただ現在使っているOSのデビアンsaergeは、そのままではシリアルーATAをサポートしていないので、この際ecthへのバージョンアップも合わせて行います。実はハードウェアもシリアルーATAをサポートしていないのでインターフェイスカードも購入しました。
 ハードウェアをセットしてOSのバージョンアップをします。ネットワークからインストールしますので、最初にネットインストールに必要なCDイメージのみをダウンロードします。CDに焼いてインストール開始。デビアンは、再インストールをしないでアップグレード出来ますが、やったことが無いので、ここは別パーティションに再インストールです。このためのパーティションは最初から用意してあります。
 インストール直後の立ち上げでGRUBがうまく動作しませんでした。原因はFDISKでパーティションのIDの設定がうまくいかなかったようです。とりあえず元のLINUXで変更したら、GRUBがうまく動くようになりました。WindowsでのFDISKとLinuxのFDISKでは若干動作が異なっているのかもしれませんが、特にこれ以上は追求する暇が無いので確認していません。

 

| | コメント (0) | トラックバック (0)

2006年12月 4日 (月)

usb メモリーをSwapメモリーとして使う

 これは、現在使用しているサーバーの設定記録なので、特に興味がない方は読み飛ばしてください。

 usb メモリーをSwapメモリーとして使いました。これはハードディスク上にSwapメモリーを配置してSwapメモリーを激しく使うようなアプリを使用すると、シーク動作も激しくなりハードディスクの寿命が低下するためです。以前はSwap専用のハードディスクを使って防いでいましたが、これも寿命がつきましたので、機械的動作の無いUSBメモリーを使うことにしました。(メインメモリーが十分にある場合には、スワップメモリーにアクセスする頻度が少なく、必要性はあまり無いとは思いますが・・・。)
 usbメモリーはlinuxの場合(Windowsも同様)、接続するusbメモリー等が増えると名称が固定しないので、毎回立ち上げ時にlinux側でSwapメモリーにアクセスできない可能性があります。そこでudevを使ってこれを解決しました。
 udev の設定は/etc/udev/rules の中に設定ファイルを書き込みます。ファイル名は・・・.rules と決まったサフィックス(拡張子)が必要です。
udevinfo コマンドで /sys/block/sda を調べると
$ udevinfo -a -p /sys/block/sda
  looking at the device chain at '/sys/devices/pci0000:00/0000:00:10.2/usb1/1-1/1-1.1':
    BUS="usb"
    ID="1-1.1"
    DRIVER="usb"
    SYSFS{bConfigurationValue}="1"
    SYSFS{bDeviceClass}="00"
    SYSFS{bDeviceProtocol}="00"
    SYSFS{bDeviceSubClass}="00"
    SYSFS{bMaxPower}="  2mA"
    SYSFS{bNumConfigurations}="1"
    SYSFS{bNumInterfaces}=" 1"
    SYSFS{bcdDevice}="0100"
    SYSFS{bmAttributes}="c0"
    SYSFS{detach_state}="0"
    SYSFS{devnum}="3"
    SYSFS{idProduct}="2517"
    SYSFS{idVendor}="067b"
    SYSFS{manufacturer}="Prolific Technology Inc."
    SYSFS{maxchild}="0"
    SYSFS{product}="USB Mass Storage Device"
    SYSFS{speed}="480"
    SYSFS{version}=" 2.00"

設定ファイル 10-local.rules に識別情報を次のように書き込みました。

BUS="usb", KERNEL="sd*", SYSFS{product}="USB 2.0 Storage Device", NAME="%k", SYMLINK="usbda%n"

 こうすることにより、udevstart または linux 再立ち上げ後に
usb メモリにアクセスできるようになり
  fdisk /dev/usbda
とすると、パーテーションを設定することができ認識されていることが分かります。
後はパーティーションを必要なら切って使います。今回は256MBのメモリーを分けずに使用しました。スワップメモリーのID設定とフォーマットをして
 Swapon  -p 3 /dev/usbda1  (プライオリティ 3)
を実行します。

Swapon -s を実行すると
Filename                                Type            Size    Used    Priority
/dev/hda8                               partition       112412  0       1
/dev/sda1                               partition       253912  0       3
となり、設定されたことが分かります。
linux 立ち上げ時に設定されるように、/etc/init.d の中に ファイル名 local  のスクリプトを書きます。今回は
case    "$1"    in
        start)
                echo    -n "Starting swap /dev/usbda1:"
                swapon  -p 3 /dev/usbda1
                echo    "."
                ;;

        stop)
                echo    -n "Shutting down swap /dev/usbda1:"
                swapoff /dev/usbda1
                echo  "."
                ;;

    ・

    ・

として、これを update-rc.d defaults  local  5 95
として実行レベル毎に設定しました。

| | コメント (2) | トラックバック (0)

2006年11月 1日 (水)

サーバー不調

 写真と音楽データの保存用として使用していたファイル&プリンタサーバーが不調になりました。時々落ちるようになったのです。幸いディスクにアクセスしているときは落ちなかったのでデータは無事でしたが、PCIバス関係に深刻なエラー発生というメッセージが出ました。カバーを開けて、PCIバスにつながっているUSBボードとLANボードを外し清掃後、再度取り付けたところ今度はネットワークに完全にアクセスしなくなりました。LANボードの認識に失敗したとのメッセージが出てるので、LANボード不良と思われます。早速ヨドバシでボードを購入し、再度立ち上げたら動作はしますが、しばらくすると、またPCIバス関係に深刻なエラー発生とメッセージが出ます。そこで今度は部品取り用に保管しておいた同一形式のPCからバスボードを外して交換しました。この後、連続使用でも全くエラーが出なくなり故障は完治しました。この故障の原因として考えられることは、前にUSBボードを取り付ける時(古いPCなのでUSB1.1を2.0にするため)にLANボードを入れなおしたのですが、うかつにも電源を入れたまま行ったので、この時バスボードとLANボードの両方が同時に痛んでしまったのだと思われます。(使用OS Debian GNU/Linux)

| | コメント (0) | トラックバック (0)