FreeBSD QandA 1206

FreeBSD QandA

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


間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。