知り合いが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を作って編集。
[default] workgroup=WORKGROUP [SERVERNAME] addr=192.168.xxx.yyy charsets=UTF-8:UTF-8 [SERVERNAME:USERNAME] password=$$cryptedpasswd
注意点
smbutil crypt 平文パスワード
で得られる文字列を指定する。NAS4Freeにsmbutilが含まれていないので、ここだけは別のマシンを用意する必要がある。まぁ、仮想マシンで適当なLiveCDを動かせば済むだろうから、良い時代になったもんだ…。
fstabを編集。 -d,-fでファイルとディレクトリのパーミッションを設定してやるのがミソ。
//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から構造が大きく変わっておらず、ユーザーランド等もほぼそのままで助かった。
用途特化系のディストリビューションって、フットプリントを削減するために必要最低限の機能しかなく、システム領域もカツカツだったりでカスタマイズするのが大変という印象があったが、一概にそうとも言えないんだなーと思いました。まる。