• 締切済み

sambaにおける2GBファイルの扱いについて

Sambaにより、LinuxからWindows側への2GB超ファイルの書き込みがうまく行かず、困っております。 マシン構成は、以下の通りです。 ・Windows XPにVM playerを載せ、Redhat Enterprise WS 3.0をインストール。 ・Linux側のkernelバージョンは2.4.21-4、sambaは3.0.0-14.3E。 ・マシンにUSB接続で外付HDD(NTFSフォーマット済)を接続。 ・Windows側にてUSB外付HDDに共有フォルダを設定し、linux側から以下の要領でマウント。 % smbmount //マシン名/データフォルダ名 /マウントディレクトリ名 -o lfs,rw,uid=500,gid=500,fmask=755,dmask=755,username=ユーザ名 ・smbmount自体は正常に機能しているように見える。 次に、作業経過は以下の通りです。 ・Linux側にて自作プログラムを走らせ、smbmountされた上記のディレクトリに2GBを超えるファイルを出力しようとすると、出力ファイルのサイズが約2.2GBになった時点で 「ファイルサイズ制限オーバー」というエラーが出て、coreを吐いてプログラムが終了する。 ・smbmountされたディレクトリではなく、内蔵HDD内のディレクトリに出力した場合は、問題なく出力ができる。  →自作プログラムや、linuxのkernelの問題ではないと判断。 ・sftpにて、Windows側からlinux側にアクセスし、上記で正常に出力できたファイルをUSB外付HDDにコピーすることは、問題なくできた。  →Windowsのファイルシステムの制限ではないと判断。 ・さらに、上記でsftpしたファイルを、改めてLinux側からsmbmountを通して見てみると、 % ls -la -rwxr-xr-x 1 user 18446744072949653120 1月25日 16:06 ファイル名 となり、とんでもない大きさとして見える。 解決法を教えていただけると幸いです。

みんなの回答

noname#39970
noname#39970
回答No.4

>時間止められなくて sambaのインストールしたバイナリ(のディレクトリ)ごと複製を取って、設定(/etc にあるやつ?)も複製 上位verに入れ替えてうまくいかないならすぐ戻す とか。

noname#39970
noname#39970
回答No.3

なんだか似たような物を発見 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1574143 3.0.0がlfs非対応であるのが原因かもしれないという話らしい。 ナンダソレ(´Д`;; ↑URLのだとかなり前の話で、にも関わらず3.0.20rc2で行けるかも、となっているので新しくしてみたらどうだろう。 最悪ソースからmakeで。

amu
質問者

補足

ありがとうございます。 今自分のマシンにインストールされているsambaがlfsをサポートしてるかどうかのチェックが、何らかの方法でできれば・・・と思っていたのですが、どうしょうもないのですかね。。。 使っているマシンの運用を長時間止められなくて、もしアップデートしてsamba自体が動かなくなると困ってしまう事態になるので、あまり冒険ができないのですが・・・・

noname#39970
noname#39970
回答No.2

http://www.google.co.jp/search?q=samba%202GB&hl=ja&lr=lang_ja 調べてみると LINUX→WIN で2GB超過は壁があるっぽい…けど件のverでは修正済であるハズ…(確かにsambaのせいだと思われる) もうちょっと調べないと判らないけど何かの参考になるかもしれないから一応のせとく

amu
質問者

お礼

ありがとうございます。 僕もかなりGoogleで調べたのですが、使用しているKernelバージョンもSambaもともに2GB超ファイルを扱えるはずなんですよね。 smbmount時のlsfオプションが効いていない可能性があるのですが、エラーが出ない為、わからないのです。このオプションが有効になっているかどうか、調べるいい方法があればいいのですが・・・

noname#39970
noname#39970
回答No.1

自作プログラム側のファイルポインタ(あるいはハンドル)が2GB超過を許す構造になっているのかどうか

amu
質問者

補足

内蔵ディスクに出力させた場合は問題なく、Sambaでマウントしているディスクでは問題が生じるので、Sambaを疑っています。

関連するQ&A