Windowsの共有フォルダをLinuxでマウントして使用する方法
20150110

Windowsシステムをファイルサーバとして使用し、そのファイルサーバのディレクトリをネットワーク越しにマウントして使用する。

メリット
 1.Sambaでファイルサーバを実装する場合のデメリットを被らなくて済む。
  →固有文字等の文字化け対策の対応
  →何気に高い負荷問題の解消
 2.別途Windowsシステムを用意する事から、バックアップデータを別マシンに切り離す事が出来る。
  →仮想環境で動作させる場合は、このメリットは消失する。
 3.Windowsサーバ内のファイルを外部からFTP等を用いてアクセスする事が出来るようになる。
  →Windowsで外部向けサーバを立ち上げる必要が無くなる。

デメリット
 1.WindowsファイルサーバとLinuxサーバが別々に存在する為、物理的に2台のマシンが必要となる。
  →仮想環境を用いて1台とする事で回避可能。
 2.アクセス権限の設定を変更出来ない(パーミッションが強制2777)
  →FTPで公開する場合はchrootによるアクセス制限で対応する必要がある。
確認環境
 CentOS7.x
 CentOS6.x
 CentOS5.x
 Windows7

関連
 Windowsによるファイルサーバー
 SambaによるWINS及びマスタブラウザ設定
 →VSS(シャドウコピー)やWINSサーバーの設定等を記載してあります。
Windows機での作業
◆適当な場所にフォルダを作成し、後に確認する為のファイル(テキスト等)を置いておきます。

◆作成したフォルダをワークグループに対して共有を行う。
 →WindowsのVerにもよりますが、フォルダを右クリックして共有やらなんやらで簡単に実装出来ます。
 →Windows7やVistaで実装する場合、エラーが発生する場合があります。
   Windows7対応例 〜レジストリを設定〜
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    Size = 3
    MaxMpxCt = 255
    MaxWorkItems = 1024
    Sizeは数値の変更。他の項目は無ければDWORDで作成
    全て10進数
Linux機での作業
◆cifs-utilsをインストール
 [root@Server ~]# yum -y install samba-client ※CIFSのマウントのみならsamba-clientより下記導入のほうが良い。
 [root@Server ~]# yum -y install cifs-utils

◆マウントする先のディレクトリを作成
 [root@Server ~]# mkdir /win

◆実際にマウントする。
 [root@Server ~]# mount -t cifs -o user=win_name,password= //192.168.0.5/kyo-yu- /win
  Windows機のユーザー名   「win_name
  パスワード        「設定していない
  Windows機のIPアドレス   「192.168.0.5
  Windows機の共有フォルダ名 「kyo-yu-

◇Windows機のアカウントにてパスワードを設定している場合は以下の通り
 [root@Server ~]# mount -t cifs -o user=win_name,password=pass //192.168.0.5/kyo-yu- /win
  パスワード        「pass

◆以下のエラーが出力されて正常にマウント出来ない場合、上のほうの設定を参照
 [root@Server ~]# mount -t cifs -o user=win_name,password= //192.168.0.5/kyo-yu- /win
 mount error 12 = Cannot allocate memory
 Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)

  詳細については、Windowsのイベントログにエラーが吐き出されているはずなので、エラー文をGoogle先生にでも聞けば回答が得られるはずです。

◆正常にファイルが表示されているか確認する。
 [root@Server ~]# ls -l /win
 合計 0
 -rwxrwSrwx 1 root root 215902 8月 20 04:43 Windowsで作ったファイル名

◆最後に起動時に自動マウントさせる。
 fstabに登録する場合(通常)
  [root@Server ~]# echo //192.168.0.5/kyo-yu- /win cifs user=win_name,password=,defaults 0 0 >> /etc/fstab

 うまく行かない場合はrc.localにてマウントコマンドを実行してもらいましょう。
  [root@Server ~]# echo /bin/mount -t cifs -o user=win_name,password= //192.168.0.5/kyo-yu- /win >> /etc/rc.local

以上