Linux覚え書き


去る令和8年2月初頭、Copllotに質問などを投げかける形でWindowsMeとsambaの接続を 実現した時の事を防備録として残しておきます。記録の大半はこちらの質問などに対して Copllotが出力した内容です。基本的に、自力でsamba.confとかレジストリとかを弄ることができる というのが前提になっています。それができない方、そもそも何を言ってるのがわからない方は 「そっとじ」(;´д`Aでオナシャス・・・

Windows Me と Samba の相性

Windows Me は SMB1(NTLM 認証) しか使えません。 一方、現代の Samba(4.x 系)は SMB1 を既定で無効化 しており、NTLMv1 も拒否する設定になっています。 つまり、接続するには Samba 側で古い方式を“許可”する必要があります。 これはセキュリティ的には弱くなるため、レガシー専用ネットワークで使うのが前提です。

[global]
   server min protocol = NT1
   client min protocol = NT1
   ntlm auth = yes
   lanman auth = yes
   client lanman auth = yes
   client plaintext auth = yes
  1. 重要ポイント
  2. SMB1(NT1)を有効化
  3. LANMAN / NTLMv1 認証を許可

Windows Me 側の設定

Windows Me のネットワーク設定で以下を確認します。

TCP/IP 上の Microsoft ネットワークを有効化
Samba は TCP/IP で動くため、NetBEUI だけでは接続できません。
(Windows Me は NetBEUI を優先しがちなので注意)
ワークグループ名を Samba と一致させる
など。

ユーザー名と Samba のユーザーを一致させるには

Samba 側でユーザーを作成。なお、「winmeuser」は、Windows Me起動時のログオン名です。

sudo useradd winmeuser
sudo smbpasswd -a winmeuser

Windows Me のログオン名と一致させるとスムーズです。

共有フォルダ設定の例

[share]
   path = /srv/share
   read only = no
   guest ok = no

Windows Me からは:

\\samba-server\share

Windows MeからLAN経由でSambaが見えない場合・・・

原因1:nmbd がネットワーク初期化より先に起動してしまう(最有力)

Debian/Q4OS では、起動直後にネットワークがまだ UP していない状態で nmbd が起動すると、

  1. インターフェイスが見えない
  2. サブネットリストが作れない
  3. Permission denied で落ちる

という流れになります。 これは Samba 4.17 以降で特に起きやすい既知の問題です。

解決策1:nmbd をネットワーク初期化後に起動させる(最重要)

sudo systemctl edit nmbd.service

とし、nmbd serviceという設定ファイルを編集する。なお、このあたりになってくると設定ファイルの 場所とかテキストエディタの種類とかがディストリビューションの 違いによって変わってくるので各人で要調査(`・ω・´)

[Unit]
After=network-online.target
Wants=network-online.target

これらを追加・保存

sudo systemctl daemon-reload
sudo systemctl restart nmbd

あるいは・・・

sudo service nmbd restart

このようにコマンドを打ち込む。要はnmbdを再起動するべし

Windows Me 側で必ずやるべき設定(安定接続の基本)

@ ネットワークコンポーネントの確認

「マイネットワーク」→右クリック→「プロパティ」 以下が入っていることを確認。

TCP/IP → LAN アダプタ
Microsoft ネットワーク用クライアント
Microsoft ネットワーク共有サービス
ファイルとプリンタの共有

特に Microsoft ネットワーク用クライアント が無いと Samba に接続できない。

NetBIOS over TCP/IP を有効にする

Windows Me は NetBIOS が命綱。

「TCP/IP → LAN アダプタ」→「プロパティ」→「NetBIOS」
NetBIOS を有効にする

これが無効だと Samba が見えない。

WINS を使わない設定にする

「TCP/IP → LAN アダプタ」→「プロパティ」→「WINS」
WINS を使わない
「WINSを使う」チェックを外す

Samba 側で WINS を立てていないなら、Me が WINS を探して固まる。

DNS は空欄でも OK(LAN 内のみなら)

インターネットに繋ぐならルーターの IP を入れる。

LAN 内だけなら空欄でも動く。

ログオン方法を “Windows ログオン” にする

「コントロールパネル」→「ネットワーク」
優先ログオン:Windows ログオン

これが “Microsoft ネットワークログオン” だと パスワードキャッシュが壊れて Samba に繋がらないことがある。

共有レベルのアクセス制御を “ユーザー単位” にする

「コントロールパネル」→「パスワード」
ユーザー単位のアクセス制御

Windows Me は共有レベル認証が不安定なので、 Samba と合わせるならユーザー単位が安定。

Windows Me に必要なレジストリ調整(Samba 4.x との互換性向上)

1. LANMAN 認証を許可(最重要)

Windows Me は NTLMv2 を使えず、LANMAN 認証しか使えないことがある。

レジストリキー
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA
値を追加(DWORD)
LMCompatibility = 0

意味

0 → LANMAN / NTLM を許可
Samba 側の と相性が良い

これが無いと、Samba 4.x に接続できないことがある。

2. NetBIOS 名前解決を強制的に有効化

Windows Me は NetBIOS が命綱。 ネットワークが不安定な場合、強制的に有効化すると改善する。

レジストリキー
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP
値を追加(DWORD)
EnableNetbios = 1

効果

NetBIOS over TCP/IP を強制的に ON
Samba のブラウズリストが見えやすくなる

3. ブラウズマスタ関連の安定化(任意だが効果大)

Windows Me が “ブラウズマスタ争い” を起こすと Samba と競合する。

レジストリキー
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP
値を追加(DWORD)
MaintainServerList = 2

意味

0 → 参加しない
1 → 必要なら参加
2 → 常に参加(推奨)

Samba 側がブラウズマスタを取る設定なら、Me 側は 2 で安定する。

4. LMHOSTS を有効化(名前解決の補助)

NetBIOS が不安定な LAN では効果がある。

レジストリキー
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP
値を追加(String)
EnableLMHOSTS = 1

効果

LMHOSTS を参照するようになる
Samba サーバーの IP を固定できる

5. TCP/IP のタイムアウト短縮(接続が遅い場合)

古い TCP/IP スタックの遅延を改善。

レジストリキー
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP
値を追加(String)
TcpMaxDataRetransmissions = 3

効果

接続失敗時の再試行が減り、Samba への接続が速くなる

ここまでやったら、Windows MEからsambaへの接続ができるようになりました。 それにしても、スゴイ時代になったものです。AIに質問とかログとかを投げるだけで 様々なアドバイスとかが出てくるんですから(;´д`A


Homeに戻る