2012/02/13 (月)

2012-02-13:CIFS VFS: Send error in SessSetup = -12

Linux から samba マウントしている Windows7 上のフォルダがいきなり使えなくなった。

% ls -alF /mnt/win7folder
ls: /mnt/win7folder にアクセスできません: メモリを確保できません

「メモリを確保できません」って、なんじゃそりゃ。メモリはあるぞ?
と思って、ログ出てないかなと調べたら /var/log/messages に、

Feb 13 15:14:59 pollux kernel:  CIFS VFS: Send error in SessSetup = -12

のログ。
このメッセージでググると social.technet.microsoft.com の投稿がひっかかった。

Error while mounting Windows 7 shared on Linux/Samba

ここのフォローの中に

Open regedit goto HKEY_LOCAL_MACHINE ->SYSTEM ->CurrentControlSet ->Services ->LanmanServer -> Parameters. Then click createkey and create a DWORD with the name SMB2. The value should automatically be set as 0, which is correct to turn it off. Restart computer and fixed. To remove the fix and reenabled SMB2 simply remove the DWORD from the place above in the registry.

とあったので、指示に従って Windows7 側で regedit.exe 起動して、HKEY_LOCAL_MACHINE ->SYSTEM ->CurrentControlSet ->Services ->LanmanServer -> Parameters に SMB2 というキーを作成して、Windows7 再起動。
無事にまた Linux からマウントして使えるようになった。

comment

2007/05/29 (火)

2007-05-29:vmware の中からホストの windows 上のファイルをいじる

現在わたしは普段持ち歩きの Let’s note R4 と会社のデスクトップで vmware を使っている。
R4 では VMware Workstation 5.5.4、デスクトップは VMware Server 1.0.2。
どちらも Windows XP SP2 がホストで、virtual machine の中身は Vine Linux 4。同じイメージを使い、適宜ファイルを virtual machine 同士で rsync して同期をとる運用。
R4 では Workstation を使っているので vmware-tools の vmhgfs モジュールを利用して、Windows 上に(vmware 上での)共有フォルダを作り、Windows からも virtual machine からもファイルを読み書きすることが可能。
しかしデスクトップで使っている Server では同じことができない。

さぁ、どうしよう。
まぁ、答えは Windows の共有フォルダと smbmount だよね、ということで Windows の共有フォルダ設定の話題。
前置きが長くてごめん。

Windows ではターゲットのフォルダを右クリックして「共有とセキュリティ」を押して「フォルダを共有する」を選んであげれば、簡単にそのフォルダを他から共有できる。
ただ、細かいアクセス制御をしたいよ!という向きにはこれだけではだめ。
今回は

同一ホストの vmware の中の子からだけアクセスを許可したい

ので、いくつか細かい設定をしなければいけない。

まず、てきとーなフォルダで「ツール→フォルダオプション」から表示タブの詳細設定の中の「簡易ファイルの共有を使用する(推奨)」のチェックをはずす。
続けて共有したいフォルダを作る。場所は適当。フォルダ名は英数のみにしたほうが無難かな。
作ったフォルダを右クリックして「共有とセキュリティ」を押します。

  • 「このフォルダを共有する」を選択。
  • 共有名はフォルダと同じ名前が無難でしょう。
  • ユーザー数制限は 3 くらいにしとけばいいかな。
  • アクセス許可を押す。
    • Everyone をさくっと削除。
    • 追加を押してユーザー名を入れて OK を押す。
    • アクセス許可を聞かれるので、すべて許可をチェック。
  • 「Windows ファイアウォールの設定を表示します。」を押す。
    • 「例外」タブの「ファイルとプリンタの共有」をはずす(これは油断すると復活するものらしい。新しく共有フォルダを増やしたら注意)。
    • vmware の Virtual Network がブリッジ接続の場合は VMnet1 を、NAT の場合は VMnet8 を選び「設定」を押す。
    • 「追加」で localhost に対して UDP137, UDP138, TCP139, TCP445 を開ける。外部ポート内部ポートをそれぞれ同一で設定した。

以上でアクセス制限系設定はおわり。

vmware の Guest からのマウントは通常の samba のマウントといっしょ。

% sudo mount -t smbfs \
    -o username=[Windowsユーザー名],uid=[Virtualmachine内UID],gid=[Virtualmachine内GID], \
       rw,fmask=644,dmask=775 \
    //[Windowsアドレス]/[共有フォルダ名] [Virtualmachine内マウント先]

sudo のパスワードと、Windows でのパスワードを打ってマウント完了。

comment