ページ

2010年12月15日水曜日

Sambaサーバへのファイルコピーでエラーがでる

Express5800 S70 RBにCentOS 5.5 x86_64をインストールした。

DLNAサーバとして使用する為にSambaをインストールして立ち上げた。

最初に困ったのがSELinuxの設定である。

単純にLinuxのボリュームを使うのであれば

# sesetbool samba_export_all_rw on

として、Sambaにファイルやディレクトリーへの書き込みを許可し、対象となるディレクトリーに

# chcon -t samba_share-t {対象となるディレクトリ} -R

で、コンテキストタイプを変更してやるだけである。


しかし、今回は外付けのFATフォーマットのUSBディスクである。

この場合、コンテキストタイプを変更しても、マウントのたびに初期値に変更されてしまう。

で、Samabを起動するときに、コンテキストタイプを変更してやったが、新しく書き込まれたファイルのコンテキストタイプが初期値となってしまい、削除も変更もできなくなってしまう。

あきらめて、smbdをSELinuxの保護対象から外すことにした。

# setsebool smbd_disable_trans on

こうすることで、問題なく読み書きができるようになった。


しかし、今度は新たな問題が・・・

大きなファイルをコピーしようとすると、「write_data: write failure in writing to client 192.168.xx.xx. Error パイプが切断されました」と表示されてコピーに失敗する。

Windows側のユーザ名が日本語(最初の頃はローマ字のユーザ名を使っていたのだが、何度もXPをインストールしているとデフォルトが日本語なので日本語にしてしまった。しかし、VistaからはデフォルトがASCII文字に戻っている。マイクロソフトはユーザフォルダー名もそうだが、仕様をころころ変更するので困る)なのが原因かもしれない・・・

Sambaサーバに接続する場合はユーザ名を聞かれるので入力しているが、しばらくすると切断されてしまうことがある。

こうなるとネットワーク上にSambaサーバが表示されなくなる。

DOS窓からnet useコマントで接続しようとしても、別のユーザ名で二重ログインはできないと言われてしまう。

しかたがないので、net use /delete \\サーバ名 で切断してから接続しなおしているが・・・

ここにヒントが隠されているのか?

夜間バックアップではローカルドライブにネットワークドライブを割り当ててから行っているので、コピーする前にローカルドライブにネットワークドライブを割り当ててからコピーしてみることにした。

しかし、同じ症状でエラーがでてしまう。困ってしまった。


syslogを見てみると「startsmbfilepwent_internal: failed to set 0600 permissions on password file /etc/samba/smbpasswd. Error was Permission denied」と表示されている。

WinBindを使っていないなら停止すると良いとの情報もあったがダメだった。

ただ、WinBindは使っていないので停止しておくことにする。


ためしに、ホームディレクトリーにコピーすると問題なくコピーできた。

あれ? 昨日は確かUSBディスクにコピーできたはずなのだが・・・


う~ん、FAT以外なら問題ないということなのか・・・?


いろいろ試してみると、2GBのファイルならコピーできるが3GB以上になるとダメだ。

FAT32だから4GBなら判るのだが・・・3GBでダメなのは・・・なぜ?


解決しました!

Sambaのバージョンが古かったみたいです・・・

インストールしていたのが、Samba3.0だったのですが、Samba3.3に入れなおすとエラーが出なくなりました。

2010年12月16日追記

ところが、今日もエラーがでました。やっぱりコピー先のファイルシステムがFATだとダメみたいだ・・・とほほ

0 件のコメント:

コメントを投稿