NAS4Freeで別サーバのCIFSをマウントしFTPで公開する
背景
知り合いがWindows 7をファイルサーバにしており、共有フォルダをFTPで公開したいと申す。当初はFileZilla ServerでFTPを立てていたが、英語だし設定が面倒で知人自身に管理させるのは無理がある。そこで、NAS4Freeで共有フォルダをマウントし、ブラウザで簡単に設定が行えるFTP鯖代わり使ってしまおうと思った次第。
仮想マシン上で動かせば環境の復元も簡単だし、何よりセキュリティ面でも安心だし一石二鳥でウマー。
環境
NAS4Free 9.2.0.1
Windows 7 Professional
設定
nsmb.confでcharasetsを指定するとマウント時にlibiconv.soが無いと言われるので、シンボリックリンクを張る。
cd /usr/local/lib/
ln -s libiconv.so.3 libiconv.so
マウントポイント作成
mkdir /mnt/FileServer
nsmb.confを作って編集。
/etc/nsmb.conf
[default]
workgroup=WORKGROUP
[SERVERNAME]
addr=192.168.xxx.yyy
charsets=UTF-8:UTF-8
[SERVERNAME:USERNAME]
password=$$cryptedpasswd
注意点
fstabを編集。
-d,-fでファイルとディレクトリのパーミッションを設定してやるのがミソ。
/etc/fstab
//USERNAME@SERVERNAME/path_to_sharing /mnt/FileServer smbfs rw,-d=777,-f=777 0 0
動作確認
mount /mnt/FileServer
ls /mnt/FileServer
で正しくマウントされればNAS4Free起動時に自動マウントされるハズ。
メモ
マウントが「Cannot allocate memory」エラーで失敗する場合、共有先のリソースが枯渇しいる可能性が高い。イベントログに「非ページプール割り当ての制限に達したため、サーバーはシステムの非ページプールから割り当てることができませんでした」と出ていたら間違いない。
根本的な解決方法はWindows Serverを使えって事になるが、クライアント版でも以下のレジストリエントリを追加すると回避出来る模様。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\Parameters |
Size | DWORD | 3 |
IRPStackSize | DWORD | 50 |
MaxMpxCt | DWORD | 255 |
MaxWorkItems | DWORD | 1024 |
感想
思ったより簡単に実現出来た。NAS4Freeが元となるFreeBSDから構造が大きく変わっておらず、ユーザーランド等もほぼそのままで助かった。
用途特化系のディストリビューションって、フットプリントを削減するために必要最低限の機能しかなく、システム領域もカツカツだったりでカスタマイズするのが大変という印象があったが、一概にそうとも言えないんだなーと思いました。まる。
参考サイト
コメント