Samba で USB-HDD のファイルを共有しようとしてコケる

外付けのUSBハードディスクに保存してる音楽を他の Windows PC から参照できるようにしたくて、設定したけれども初めうまくいかなかった。
うまくいかなかった理由は USB-HDD が FAT32 だったから。


共有したいフォルダを右クリック -> 共有のオプション
で、出てきたダイアログの「このフォルダーを共有する」にチェックを入れる。すると Samba がインストールされてないという旨の表示が出るので指示にしたがってインストールする。
アカウント作る(?)のも面倒くさいので「ゲストによるアクセス(ユーザーアカウントを持たない人々向け)」にチェックを入れて、「 Create Share 」をクリック。
アクセスできるようにパーミッションを変更しますよというようなダイアログが出て、「自動的にパーミッションを付加する」をクリックした。


この後、ターミナルで

sudo smbpasswd -a ユーザ名

と打ち、 Samba のパスワードとその確認を入力する。
そして Samba を再起動。

sudo /etc/init.d/samba restart


ここでもう繋がってていいはずなんだけど繋がらなかった。
理由はパーミッションがなかったから。 vfat なので個別に設定できないのでパーミッションを変えてマウントしなおした。

sudo mkdir /media/disk
sudo mount -t vfat -o codepage=932,iocharset=utf8,uid=0,gid=0,umask=000 /dev/sdb1 /media/disk

(codepage=932:HDDのファイル名はShift_JIS, iocharset=utf8:システムで使ってるのがUTF-8, uid=0:所有者が root, gid=0:所有グループが root, umask=000:パーミッションが777)←たぶんこんな感じ
uid のところは自分のユーザー名を指定しておいた方が、共有の設定で root にならなくてもいいのでいいのかもしれない。


ここでフォルダーの共有の設定をやり直す。USB-HDDの所有者がrootなのでrootで。

sudo nautilus

として、右クリック -> 共有のオプション とやって以下略


これでやっと参照できるようになった。よかったよかった。
他に、 Windows だと Norton とかが邪魔をして繋がらないことがあるらしい。


参考:
realtime.at - Domain gecatcht
俺様Linux備忘録 Linux(Ubuntu)とWindowsでファイル共有してみる
http://mlog.euqset.org/archives/vine-users/077711.html
http://www.web2-labo.com/windows_vista.html