目次

NAS4Freeで別サーバのCIFSをマウントしFTPで公開する

背景

知り合いがWindows 7をファイルサーバにしており、共有フォルダをFTPで公開したいと申す。当初はFileZilla ServerでFTPを立てていたが、英語だし設定が面倒で知人自身に管理させるのは無理がある。そこで、NAS4Freeで共有フォルダをマウントし、ブラウザで簡単に設定が行えるFTP鯖代わり使ってしまおうと思った次第。

仮想マシン上で動かせば環境の復元も簡単だし、何よりセキュリティ面でも安心だし一石二鳥でウマー。

環境

設定

nsmb.confでcharasetsを指定するとマウント時にlibiconv.soが無いと言われるので、シンボリックリンクを張る。

cd /usr/local/lib/
ln -s libiconv.so.3 libiconv.so

マウントポイント作成

mkdir /mnt/FileServer

nsmb.confを作って編集。

|h /etc/nsmb.conf
[default]
workgroup=WORKGROUP
 
[SERVERNAME]
addr=192.168.xxx.yyy
charsets=UTF-8:UTF-8
 
[SERVERNAME:USERNAME]
password=$$cryptedpasswd

注意点

fstabを編集。 -d,-fでファイルとディレクトリのパーミッションを設定してやるのがミソ。

|h /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
SizeDWORD3
IRPStackSizeDWORD50
MaxMpxCtDWORD255
MaxWorkItemsDWORD1024

感想

思ったより簡単に実現出来た。NAS4Freeが元となるFreeBSDから構造が大きく変わっておらず、ユーザーランド等もほぼそのままで助かった。

用途特化系のディストリビューションって、フットプリントを削減するために必要最低限の機能しかなく、システム領域もカツカツだったりでカスタマイズするのが大変という印象があったが、一概にそうとも言えないんだなーと思いました。まる。

参考サイト