web-dev-qa-db-ja.com

Mac OSは、スリープ後にSMB共有に接続できません。

ローカルのWindows 2008ファイルサーバーのSMB共有に最近(3週間前の)MacBook Proで問題なくアクセスしていましたが、数日間は(再)接続できません)サーバーがスリープモードから復帰した後。

Finderは "接続中..."と表示し、無期限にハングします。コマンドライン(mount -t smbfs)。これはWiFiとケーブルの両方で発生します。ネットワークをオフにしてから再度オンにしてみました。役立つのは再起動だけです。

ヒントはありますか?

明確にするために編集してください:スリープ状態に置かれているのはサーバーではなくMacです。また、スリープ状態にする前に共有を切断すると、起動後に再接続できることもわかりました。

別の編集:

さらに調査を行い、ネットワークトラフィックを盗聴しました。 MacはNetBIOS名のクエリとステータス要求(NBSTAT)をサーバーに送信し、サーバーは応答します。その後、MacはSMB=接続を開くはずですが、何も実行されません。これ以上パケットは続きません。

そして、本当の問題がより深いことに気づきました。サーバー側でタイムアウトになった古い接続がまだアクティブであると考えているため、新しい接続を開かないようです。ただし、そのマウントポイントまたは/ Volumesディレクトリのみにアクセスしようとするプログラムはすべてハングし、強制終了することさえできません。 umount /Volumes/share-ハングします。 ls /Volumes-ハングします。 kill -9これらのいずれか-助けにはなりません。また、任意のアプリケーションでファイルを開くダイアログを開くと、同様にハングアップします!

役立つ唯一のことはハードリブートです。 OSXのSMB実装にタイムアウトした接続がこのような何かを引き起こす可能性がある場合、根本的に何か問題があるようです。

15
Andreas

MacBook Proでも同じ問題が発生します。私はここの指示に従いました http://blog.djmnet.org/2009/02/09/macs-needing-unix-network-geekery/ と私の問題は解決したようです。

6
ddbailie

ねえ、私は最近2010 MBPで同じ問題を抱えていました。解決策は2つのことの組み合わせであることがわかりました。

1つ目はカーネルTweak(基本的にTCP_NODELAY on the connections)、これはターミナルで実行できます:

Sudo sysctl -w net.inet.tcp.delayed_ack=0

第二に、ファイルのアクセス許可/ DS_Storeファイルを扱います。通常、Windows共有をセットアップすると、Macには読み取りアクセス権のみが付与されます。 Finderは、表示するすべてのフォルダにそれらを作成しようとし、最終的にハングする可能性があります。したがって、これを解決するには2つのオプションがあります。Windowsマシンで十分なファイル権限を有効にするか、Finderがこれらのファイルをネットワーク共有に作成しないようにします。私はFinderがそれらを作成するのを無効にすることを好みます、それはターミナルで次のコマンドを実行することによって行うことができます:

defaults write com.Apple.desktopservices DSDontWriteNetworkStores true

実行後は再起動する必要があります。

4
dantheman

私は問題を解決する手助けはできませんが、もう少し詳細を追加することができます。これはWindows 7でも発生し、OS Xデバイスは、Windows共有がスリープ状態になったときにも接続されている必要があります。 OS Xを切断またはスリープしてからスタンバイWindowsを使用すると、この問題は発生しません。

私もこれに対する解決策を本当に望んでいます。

編集:他の多くの人々が検索した後、同様の問題がありました:

2
Jazradel