●逆襲のOS/2● | (2008.11.17)
|
Samba for OS/2インストール記
|
【目的】OS/2とWindows VistaやLAN DISKをネットワーク接続し、ディレクトリの共有やファイルのコピー等を行う。
【Peer for OS/2の問題点】
- OS/2のPeer(NetBIOS over TCP/IP)では、Windows Vistaとの接続ができない。OS/2→Vista、Vista→OS/2共にアクセス不能(少なくとも実用にならず)。
- 市販LAN DISK(Samba)との接続に支障が出る(EA付きファイルが書込不能)。
【解決法】
- Peer for OS/2の使用を止め、Sambaのclientとserverを使用する。
- 一方通行で良ければ、クライアント/サーバの一方のみでも可。
【結果】
- 基本的に成功。OS/2⇔Vista、OS/2⇔Linux間での接続を確認。
- LAN DISK(LACIE EDmini)への書き込みも成功(EA無効)。
- ネットワークドライブもローカルドライブと同様に扱えるようになった。
- アイコンの表示形式がローカルドライブ同様に自由に設定できる。
- アイコンのドラッグがデフォルトで「移動」になる。
- 市販NAS(Linux 2.4.x/Samba 2.2.x)が普通に使用できるようになった。
- 古い環境(Linux 2.2.x/samba 2.0.x)に固執する必要がなくなった。
- NASの自由度が広がり省電力性能・静音性・容量制限が大きく改善された。
- USBメモリ等がLAN経由で使用できるようになった。
- リムーバブルストレージを無理にローカルで使う必要も小さくなった。
安定性などいくつかの点で問題を残してはいるが、それらは設定のチューニング等で解決できる問題のような気がする。少なくとも、2011年8月現在、Peer for OS/2よりもかなり快適に使用できる環境が整っている。私が理想としていたのは、ACアダプタ/ファンレス駆動で2.5" HDD/SSDを使用し、メモリカード/USBメモリ類をリムーバブルストレージとして使用できるファイルサーバであったのだが、その実現に目処が立ったと言ってよい。
【留意点】
- Samba serverとSamba clientは全く別のプログラム。
- サーバは独立したプログラムでPeer(NetBIOS over TCP/IP)と排他的。
- クライアントはNetDriveのプラグインで、Peer(NetBIOS over TCP/IP)との共存も可能のようだ。
- インストールには数多くの付随ファイルが必要になる。
- 今回使用したsambaクライアントではネットワークプリンタへ接続できない。ネットワークプリンタを使用する場合はPeer for OS/2を併用する。
- Vistaと接続する場合は、Vista側のネットワーク認証レベルを下げておくこと。
■サーバのインストール
●入手すべきファイル
samba-3.0.31-os2-20080711-v2.wpi | Samba server本体
|
warpin-1-0-17.zip | WarpINインストーラ
|
baselayout.zip | Unixの基本的なディレクトリ構造と設定ファイル
|
libc-0.6.3-csd3.zip | DLL(本体部分用)
|
VROBJ.DLL | DLL(GUI部分用)
|
●事前の注意点
Samba serverをインストールするには、事前の準備がかなり必要になる。ここでは作業の概要だけを述べておくが(具体的な方法は後述)、すべて重要かつ必須の作業なので必ず実行すること。
- TCP/IPのバージョンを確認する。ver.4.1以上が必要。Warp 4.52付属のTCP/IPはver.4.32なので問題なし。バージョンはsyslevelコマンドで確認できる。
- インストールドライブはもちろんロングファイル名必須だが、Sambaの設定ファイルが格納されるx:\MPTN\ETCもロングファイル名必須。もし、\MPTNがFATドライブに作ってあったら、\MPTN\ETCディレクトリをHPFSドライブにコピーした上で、CONFIG.SYSの中の「SET ETC=...」の設定をコピーしたHPFS上のディレクトリに変更する。なお、MPTSで設定を変更すると、この設定は強制的に元に戻されるので注意。
- Samba serverとOS/2のNetBUEIは排他的なので、NetBIOS over TCP/IPの設定をあらかじめ削除しておかなくてならない。削除にはMPTSを使う方法もあるが、むしろ、PROTOCOL.INIとCONFIG.SYSを手作業で編集する方がよい。編集前のファイルを取っておけば、比較的簡単に元の環境に戻せる。Samba serverが一発で動作する可能性は低いので、復旧ルートを確保しておく事は重要(通常のOS/2のインストーラで入れ直すと、かなり面倒なことになる)。
- インストールを実行する前に、unixrootディレクトリを作成して、その中にbaselayout.zipを展開しておくこと。これは、unixの標準的な設定ファイルの格納場所のディレクトリ構造を模倣したもので、sambaのユーザーの登録などにはどうしても必要。また、このディレクトリの位置を環境変数UNIXROOTとして設定しておかなくてはならない。
- Samba serverのアーカイブにはzip形式とwpi(WarpIN)形式の二種類がある。基本的にwpi形式の方がインストールが楽なので、wpi形式が推奨されている。ただし、「samba-3.0.31-os2-20080711-v2.wpi」はそのままではwpi形式ファイルと見なされないようだ。[プロパティ|タイプ]で「WarpIN Archive」として登録しておくこと。どうもファイル名の途中にピリオドが入っているのが問題らしい。
- 必要なdllを取得して、x:\os2\dllにコピーしておくこと。
●インストールの下準備
- libcの中身とVROBJ.DLLをx:\os2\dllにコピーする。
- 適当なHPFSドライブ上に\unixrootというディレクトリを作成する。別の名前でもよいが、ルートにこの名前で作成しておくと判りやすくて便利だと思う。
- unixrootディレクトリにbaselayout.zipを展開する。
- CONFIG.SYSに次の2行を追加する。
SET UNIXROOT=g:\unixroot
SET TMPDIR=g:\trash
ここで、g:はHPFSドライブ、またtrashは適当なテンポラリ・ディレクトリの名前。
●NetBIOS over TCP/IPの削除
x:\IBMCOM\PROTOCOL.INIと\CONFIG.SYSの中から、以下の部分を削除する(http://svn.netlabs.org/sambaより)。なお、編集前のPROTOCOL.INIとCONFIG.SYSは必ずバックアップを取っておくこと。
【PROTOCOL.INI】
[IBMLXCFG]セクション | tcpbeui_nif = tcpbeui.nif
|
[NETBIOS]セクション | ADAPTER1 = tcpbeui$,1
|
[tcpbeui_nif]セクション | すべての行
|
【CONFIG.SYS】
DEVICE=x:\IBMCOM\PROTOCOL\TCPBEUI.OS2
RUN=x:\IBMCOM\PROTOCOL\NBTCP.EXE
DEVICE=x:\IBMCOM\PROTOCOL\LANPDD.OS2
DEVICE=x:\IBMCOM\PROTOCOL\LANVDD.OS2
DEVICE=x:\IBMLAN\NETPROG\RDRHELP.200
DEVICE=x:\IBMCOM\PROTOCOL\NETBIOS.OS2
DEVICE=x:\IBMLAN\NETPROG\VNETAPI.OS2
IFS=x:\IBMLAN\NETPROG\NETWKSTA.200 /I:x:\IBMLAN /N
SET NWDBPATH=x:\IBMLAN\NETPROG
SET DLSINI=x:\IBMLAN\NETPROG\NETGUI.INI
SET INIT_FILE_NAMES=netgui
SET INIT_FILE_RANGES=200
SET WPS_COMMUNICATION=YES
RUN=x:\IBMLAN\NETPROG\LSDAEMON.EXE
RUN=x:\IBMLAN\NETPROG\VNRMINIT.EXE
ここでいったんリブートを掛ける。
●サーバのインストール手順
- WarpINをインストールする。
- samba-3.0.31-os2-20080711-v2.wpiの[プロパティ|タイプ]で[現在のタイプ]として「WarpIN Archive」を追加する。
- samba-3.0.31-os2-20080711-v2.wpiをダブルクリックしてインストールを実行する。
- インストールが完了すると、rootのパスワードを要求してくるので、適当なパスワードを設定する。
●サーバの起動と確認
- Sambaフォルダの中に作成された[Samba status monitor]を起動する。
- Sambaの起動スイッチ(右の一番上にある緑のスイッチ)をクリック(シングルクリック)して、Sambaを起動する。
- 「smbd.exe」と「nmbd.exe」の「status」がともに「is running」になって、「PID」にそれぞれ番号が割り振られれれば起動成功。
- この段階で他PC(Vista等)から「guest」アカウント(パスワード不要)で、Sambaサーバに接続できるようになるはず。
| |
この方法で起動しない場合は、コマンドラインで「smb.cmd start」を実行してみる。もし、この方法で起動しなければ、インストールが根本的に間違っている可能性大。また、起動はするが、[Samba status monitor]で「not running」と出てしまう場合は、起動直後に落ちているわけで、おそらくNetBUEIの削除が完全ではないのではないかと思う。それでもわかんなきゃ、コマンドラインでsmbd.exeとnmbd.exeを別々に起動させてみるものも手かと。いずれにしても、Sambaの基本的な知識がないと少々キツイだろう。
|
---|
●サーバの設定
設定事項は二つ。一つは、ユーザーアカウント設定。上記の方法ではguestでしかログオンできないので不便。ホームユースでも、個々にアカウント割り振って、アクセス権も細かく設定する方がよい。けれども、このユーザーアカウントの設定方法がよく判らない(^_^; 少なくとも、単純に[Samba Users and Groups]を使えば済むというものではないらしい。やはり、いくつかの下準備が必要なようだ。これはもう少し勉強してから。
もう一つは、共有するリソースの設定。少なくとも、私の環境では、いきなり全ドライブを共有設定されてしまった。流石にこれは拙い(嫁さんに見られたら拙いデータだってあるのだ(^^;)。共有ディレクトリの設定は[Simple Samba Configuration Center]を使えばよい。これは比較的簡単。
■クライアントのインストール
●入手するファイル
ndfs310.zip | NetDrive本体
|
ndpsmb-1_0.zip | NetDrive用Sambaクライアント・プラグイン
|
libc-0.6.3-csd3.zip | DLL
|
●事前の注意点
- クライアントはNetDriveというプログラムのプラグインという形で提供されている。したがって、NetDriveのインストールが大前提。この際に注意しなければならないのが、NetDriveのバージョン。NetDrive 2.2.1以上が必須。Hobbesに掲載されている古いバージョンのNetDriveではSambaのプラグインは正常にインストールできない。
| |
とゆーか、プラグイン以前の問題として、古いNetDriveでは、CONFIG.SYSの途中に^Zを挿入してしまうというバグ(テキストエディタのEOFの扱いの問題?)があるため、そもそもNetDrive本体のインストールに失敗する。^Zを削除すればよいのではあるが。
|
---|
- もう一つ重要なのは、OS/2の拡張属性の取り扱い。このクライアントでは、拡張属性の無効/有効を選べるが、無効にすることを強く推奨する(デフォルトは有効)。拡張属性はOS/2のご自慢の機能の一つだが、互換性と言う点では極めて問題が多い。ネットワーク上のファイルのリネームができないとか、特定のファイルの書き込みのみが拒否されるような場合は、拡張属性で引っ掛かっている可能性が高い。
- ドライブにネットワーク上のリソースをマウントする場合、リソース名を手作業で入力する必要がある。しかも、リソース名を間違えると、クライアント・プログラムがハングしてしまうようだ。入力には細心の注意を払うこと(システムをリブートすれば済むハナシだが)。
- マウント時にリソース名を省略してワークグループ名をのみを指定すると、ワークグループ中のすべてのリソースをブラウズできる。この方がアクセスは簡単だが、使い勝手から言うと、個別のリソースをドライブに割り当てる方が便利だろう。
●クライアントのインストール手順
- まず、NetDriveをインストールし、リブートを掛ける。
- NetDriveが正常に動作していることを確認する(どうやって?)。
- NetDriveのディレクトリにSambaプラグインのアーカイブを解凍する(サブディレクトリを作成しないこと)。
- コマンドラインでinstpl.cmdを実行する。
インストールに成功するとコマンドラインに成功メッセージが表示される。もし、インストールに失敗したら、NetDriveのバージョンを確認すること。
●リソースのマウント
- NetDriveの[Control Panel]を開く。
- [Volume|Attach a new volume]で適当なドライブを作成する(たとえばP:)。
- [Resource|Mount Resource]を選ぶ。
- [smbfs]を選ぶ。
- [Propaties>>]をクリックする。
- ワークグループ名、サーバ名(IPアドレスでも可)、共有名(ディレクトリ名)、ユーザーID、パスワードを指定する。このとき、ワークグループ名のみ指定してリソース名を省略すれば、ワークグループ中に公開されているすべてのリソースが表示される。
【注意】設定が誤っていないのに正常に接続できない場合は、サーバ名の代わりにIPアドレスを指定してみるとよい。
【後日談】その後、サブマシンでのWindows VistaとMeの共存(HDDラックによる切替と完全静音化)にメドが付いたので、OS/2側をPeer for OS/2に戻した。Samba for OS/2ではネットワーク・プリンタへの接続や、CPUに負荷が掛かったときのトラフィックの途切れ(ネットワークに保存しているMP3データの再生時の音途切れ)などの問題が気になっていたので。こんだけ苦労したのにね〜。ま、Samba clientの方はPeerと共存可能なので、OS/2からVista/LANDISKに接続するときは使用しよう。それに、フォルダ内のアイコンの表示形式がローカルフォルダと同等な点などはSambaの方が優れているしね(つ〜か、Peerの仕様は酷すぎる)。
【後日談2】新たにボリュームをマウントしようとしたら、なぜかLinuxサーバに接続不能になってしまった。そこで、サーバ名の代わりにIPアドレスを指定したら、実にスンナリ接続できた。しかも、高負荷時のトラフィックの途切れも発生しにくくなった。むしろ、Peer for OS/2よりも優秀なくらい。まあ、先回とはマシン性能自体が異なっているので一概には言えないが、どうもIPアドレス指定だとパフォーマンスが上がるような気がする。これならば、Peer for OS/2からsamba clientに乗り換えたい。ローカルドライブと同じように、ドラッグが「コピー」ではなく「移動」になるのも非常に便利だし、何よりsamab 2.2.x/カーネル2.4.xに対応できるのが嬉しい。市販NASが使用できるので、古いLinuxマシンに固執しないで済む。容量制限や省電力性能で格段の改善が望める。
【逆襲のOS/2目次】
【ホーム】