自宅サーバ上で動作させている Samba、今まで特に問題なく自宅の他のマシン (Linux、Mac OSX、Windows) からマウントして使っていました。
それが昨日、突然ある1台のマシンからのみ、マウントできなくなってしまいました。
結局解決はできたのですが、なぜこうなったのかは未だに疑問です。
というわけで、以下、解決への流れを。
自宅サーバ (Vine Linux 5.1/x86_64) 上で動かしている samba-3.3.10。
その共有にアクセスしているクライアントマシンは以下の通り。
- VineSeed/ix86
- VineSeed/ppc
- Mac OS X 10.5.8 Intel
- Mac OS X 10.5.8 PowerPC
- Windows Vista Home Basic
- Windows Vista Home Premium
このうち、なぜか OSX Leopard PowerPC のみ、昨日の朝からマウント不可能になってしまいました。マウントできない時のメッセージは以下の通り。
エラーコード -6602 ってなんですか。。。
マウントに失敗した時の Samba 側のエラーログはこんな感じ。
[2010/07/29 15:54:27, 0] lib/util_sock.c:matchname(1749) matchname: host name/address mismatch: ::ffff:192.168.0.251 != elmo [2010/07/29 15:54:27, 0] lib/util_sock.c:get_peer_name(1870) Matchname failed on elmo ::ffff:192.168.0.251 [2010/07/29 15:54:27, 1] librpc/ndr/ndr.c:ndr_pull_error(467) ndr_pull_error(11): ndr_pull_advance by 536870910 failed [2010/07/29 15:54:27, 1] librpc/ndr/ndr.c:ndr_pull_error(467) ndr_pull_error(11): Pull bytes 2 [2010/07/29 15:54:27, 0] rpc_server/srv_pipe.c:api_rpcTNP(2381) api_rpcTNP: srvsvc: SRVSVC_NETSHAREENUMALL failed.
はっきりいって、ようわからん。。。
手動でマウントできるかどうかをターミナルから確認。
elmo:~ shaolin$ mkdir /tmp/hoge elmo:~ shaolin$ mount_smbfs //homeuser:(パスワード)@oscar/Public /tmp/hoge
なんの問題もなくマウントされます。Finder にもフツーに登場。
マウントに成功した時の Samba 側のエラーログはこんな感じ。
[2010/07/29 16:19:11, 0] lib/util_sock.c:matchname(1749) matchname: host name/address mismatch: ::ffff:192.168.0.251 != elmo [2010/07/29 16:19:11, 0] lib/util_sock.c:get_peer_name(1870) Matchname failed on elmo ::ffff:192.168.0.251 [2010/07/29 16:19:11, 0] lib/util_sock.c:matchname(1749) matchname: host name/address mismatch: ::ffff:192.168.0.251 != elmo [2010/07/29 16:19:11, 0] lib/util_sock.c:get_peer_name(1870) Matchname failed on elmo ::ffff:192.168.0.251 [2010/07/29 16:19:11, 1] smbd/service.c:make_connection_snum(1119) __ffff_192.168.0.251 (::ffff:192.168.0.251) connect to service public initiall y as user homeuser (uid=570, gid=570) (pid 24231)
さて、何が違うのやら。
そういえば、Finder からマウントした場合、普通は /Volumes/Public
といった風に、/Volumes
以下にマウントポイントが作られるんやったよなぁ、と、以下を試す。
$ mkdir /Volumes/Public mkdir: /Volumes/Public: Permission denied
ん? /Volumes
のパーミッションがおかしいのか?
elmo:~ shaolin$ ls -lad /Volumes drwxr-xr-x@ 5 root admin 170 Jul 29 16:24 /Volumes
そらあかんわ。。。マウントしたくてもマウントポイントが作られなくてエラーになっていた、というところでしょうか。
というか、なんでこうなってもうたんやろう。謎。ちなみにこの OSX Leopard PowerPC マシンは、ずっと立ち上げっぱなしでした。
ちなみに、フツーの OSX ではこんな感じ (のはず)。
bart:~ shaolin$ ls -lad /Volumes drwxrwxrwt@ 3 root admin 102 7 29 15:27 /Volumes
というわけでパーミッションを修正。
elmo:~ shaolin$ sudo chmod 1777 /Volumes Password: elmo:~ shaolin$ ls -lad /Volumes drwxrwxrwt@ 5 root admin 170 Jul 29 16:24 /Volumes
ついでに、なぜか Finder 上で /Volumes
フォルダが見えるようになってたので、こちらも修正。
elmo:~ shaolin$ sudo SetFile -a V /Volumes
なんでパーミッションやら EA (拡張属性) やらが変わってしまってたのかは謎やけど、とりあえず意図する動作に戻ったということで、よしとしましょう。