概要 | LinuxにWindows共用フォルダをマウントする. ※ここでいう「Windows共用フォルダ」というのは,SMB (Server Message Block) / CIFS (Common Internet File System) でネットワーク内に公開されているフォルダの意味です.方式がSMB/CIFSであれば,Windowsである必要はなく,LinuxマシンやNASのSambaなどにも適用できます(というか,ぶっちゃけNASのSambaでしか試してないです). |
---|---|
検証環境 |
マウントする側のLinuxマシン: ubuntu 13.04 x86_64 共有フォルダ提供側: NAS Buffalo LinkStation mini, LS-WSXL2.0/R1 (Samba 3.0.30-1.4.osstech) |
$ sudo mount -t cifs //192.168.11.3/share /mnt
ぶっちゃけ これだけ.
ここでは,IPアドレス192.168.11.3
で公開されている“share
”という共有名のフォルダを,/mnt
にマウントしている.//192.168.11.3
という表現は,Windowsでの“\\192.168.11.3
”に相当するコンピューター名を指定するときのCIFS特有の表現.IPアドレスではなくコンピューター名もかけるが,コンピューター名を指定する場合,あらかじめ名前解決をおこなっておく必要があることに注意.
あとはマウントしたファイルを read-only にするとか,権限をどうするかなどの設定をくわえたりするけど,そのあたりはぐぐれ.
おそらく必要になるのは,-o user=hatai,uid=hatai,gid=hatai
みたいな感じだ.user
が共有フォルダ提供側のアカウント,uid
とgid
がマウントしたLinux側でのフォルダの所有者と所有グループ.普通にマウントすると所有者がroot
になってしまったりして不便なので,適当に変更する必要があるかもしれない.
コンピュータ名(ls1)を参照する方法は名前解決ができない場合,次のようなエラーになる(あらかじめ名前が解決できる方法が与えられている場合は この指定方法でマウントできる).
$ sudo mount -t cifs //ls1/share /mnt mount error: could not resolve address for ls1: Unknown error
smbclient
を使う(smbclientでは特に何もしなくてもコンピュータ名が使えるので,ここではコンピュータ名ls1
を指定している).
$ smbclient -L ls1
[1] | CIFS (Common Internet File System) (e-Words) |
[2] | Server Message Block (SMB) (Wikipedia) |
[3] | 基礎から学ぶWindowsネットワーク: 第20回 ファイル共有プロトコルSMB/CIFS (@IT) |
[4] | Samba (official) |
[5] | Samba (Wikipedia) |