CentOS 7からWindowsの共有フォルダをマウント

CentOS 7からWindowsの共有フォルダ(CIFS)をマウントしたメモ

必要なソフトウェアのインストール

# yum install cifs-utils

参考: Windowsの共有フォルダをLinuxにcifsマウントする際のハマりどころ - Qiita

マウント

# mkdir /mnt/hoge # mount -t cifs -o vers=3.0,sec=ntlmv2,username=user_name,password=password,domain=domain_name,ro,file_mode=0444,dir_mode=0555 //server_name/share_name /mnt/hoge
vers
SMBのバージョン.指定しないと1.0になるが,接続先が最近のWindowsだと接続できないらしくてハマった.Windows Vista/Server 2008の場合は2.0, Windows 7/Server 2008R2の場合は2.1, Windows 8/Server 2012の場合は3.0を指定.
sec
認証方式.ntlmだとセキュリティ上の問題があり上手くいかないことがあるらしい.特に理由がなければntlmv2でよさそう.
username
password
domain
ユーザー名,パスワード,ドメイン名.接続先がドメインに所属していなければdomainはいらない?
ro
読み取り専用でマウント.読み書きしたいときはrwを指定.
file_mode
ファイルのモード(パーミッション).デフォルトだと0755になったが,実行や書き込み権限が不要なら0444とかにしておく.
dir_mode
ディレクトリのモード(パーミッション).デフォルトだと0755になったが,書き込み権限が不要なら0555とかにしておく.

文字コードなどは特に気にしなくても日本語のファイル名を正しく表示できた

man mount.cifsとすると詳しい説明が得られる

自動マウントの設定

mountコマンドで正常にマウントできることを確認したら,/etc/fstab に追記することで,起動時に自動マウントするように設定できる.

//server_name/share_name /mnt/hoge cifs vers=3.0,sec=ntlmv2,...(options) 0 0

Keep Alive

クライアント側のバグなのかプロトコルの仕様なのか,一度マウントしても数分間アクセスしないでいるとファイルにアクセスできなくなる.それどころか,アクセスしようとしたプロセスが固まってCtrl+Cもきかなくなり,なにもできなくなる.umountすらも固まるが,umount -lするとアンマウントできる.

対処法を色々調べたところ,softオプションやdirectioオプションをつけるとよいというような情報を見つけたが,どれも上手くいかず,結局,次のようなスクリプトを書いてcronで10分おきに実行するようにした.

#!/bin/bash function keepalive () { echo ${1} start_time=`date +%s` timeout 10 touch ${1}/keepalive.txt end_time=`date +%s` time=$((end_time-start_time)) if [ $time -gt 8 ] ; then echo timeout, re-mount umount -l ${1} mount -a fi } keepalive /mnt/hoge keepalive /mnt/fuga keepalive /mnt/piyo
技術系 > ソフトウェア | comments (0) | trackbacks (0)

コメント

コメント投稿






トラックバック