Windowsの共有フォルダをマウント

どうもsmbclientが入ってないらしいので、mountを使ってsmbfsをマウントすることができなかった。ので、apt-cache pkgnamesをいろいろ見てたらsmbfsなんてまんまな物を見つけたので、apt-get install smbfsする。で、ためしにmountコマンドでマウントしてみた。codepageは共有フォルダ側の文字コードで、iocharsetはマウントする側の文字コードらしい。Ubuntuは基本的にutf8だって。普通はeuc-jpな気もするけど。

mount -t smbfs -o username=iselix,password=PASSWORD,codepage=cp932,iocharset=utf8 //192.168.2.1/home /mnt/vista_home

で、ファイル名も文字化けしないでマウントできたんだけど、なぜか/etc/fstabに書いて起動時にマウントさせてみると、マウントしない上に動作が不安定になる。いろいろ調べてみたら、fstabに書くときはsmbfsだといろいろ問題があるみたい。何かのオプションを指定するとファイル名が文字化けするとか。そういう時はsmbfsじゃ無くてcifsを使うといいみたい。以下、実際に/etc/fstabに書き足した内容。

//192.168.2.1/home /mnt/vista_home cifs credentials=/etc/smbcredentials,iocharset=utf8 0 0

cifsはsmbfsと違ってcodepageを指定しなくていいみたい。あと、user=hoge,password=fuga見たいな書き方もできるんだけど、fstabは誰でも読めちゃったりするからpasswordを平文で置いておくのはとても怖い。ので、credentialsオプションでファイルを指定してやれば大丈夫。指定したファイルはrootしか読み書きできないようにしておく。ま、credentialsファイルには平文で書いてあるから、rootになられちゃ意味が無いんだけどね。以下、smbcredentialsに書いた内容。

username=iselix
password=PASSWORD

ちなみに、smbfsでcredentials使うときは、=の前後に半角スペースを入れててもいいんだけど、cifsは入れちゃいけない。これで少しひっかかった。これで起動時に自動マウントも問題なくできるようになった。smbfsのときとlsしたときの文字の色が違うのがちょっと気になるけど、気にしない。