Q. ノートパソコンに Samba をインストールしてから再立ち上げをすると、他の
Windows マシンのネットワークコンピュータに Samba を動かしているマシン
が出てきません。
A. 原因はいくつも考えられますが、これは PC カードイーサネット (PCMCIA
Ethernet Card) を使った場合の典型的な症状です。ここでは、Samba を例に
とって説明しますが、他にも Apache や named でも問題があることが知られ
ています。
一口で言うと FreeBSD の起動シーケンスで、PC カードの認識前に Samba
特に nmbd(8) が起動されてしまう事が原因です。
まず、PAO-FAQ の 606 番を読んでください。
<URL:http://home.jp.FreeBSD.org/~toshi/PAO3/PAO-FAQ.jp.html#606>
Samba については inetd(8) から起動させるようにする事でも問題を回避でき
ますが、inetd への登録は無条件に可能なわけでは無く、Samba 以外のプログ
ラムでもこの技が使えるという意味ではありません。Samba を ports/packages
からインストールしたのならば、以下の様な手順で inetd から動かすように
変更できます。
1. Samba の起動スクリプトを削除します。
# rm -f /usr/local/etc/rc.d/samba.sh
2. /etc/inetd.conf で、以下の2カ所 "#" のコメントマークをはずして、
---
# Enable the following two entries to enable samba startup from inetd
# (from the Samba documentation).
#
netbios-ssn stream tcp nowait root /usr/local/sbin/smbd smbd
netbios-ns dgram udp wait root /usr/local/sbin/nmbd nmbd
3. inetd に /etc/inetd.conf の変更を認識させます。
# kill -HUP `cat /var/run/inetd.pid`
FreeBSD 3.2-RELEASE からは標準で TCP Wrappers が有効になってますので、
/etc/hosts.allow の設定を間違うと全く使えなくて悩む事になります。詳し
くは hosts_access(5) や inetd(8) を確認してください。
もし、PC カードを使用中に抜き挿しするなら、/etc/pccard.conf のエントリ
に以下の行を追加します。PC カードデータベースの書式については
pccard.conf(5) や、PAO 方面のドキュメントを参考にしてください。
remove killall nmbd
これで他の Windows マシンのネットワークコンピュータから、Samba を動か
しているマシンにアクセス出来れば問題解決です。
グループ名: PC-card