Windows共用フォルダ(SMB/CIFS)をマウント

概要 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)

ファイル システム タイプに cifs を指定

$ 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が共有フォルダ提供側のアカウント,uidgidがマウントした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

Links

[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)

はたいたかし / exlight.net
2013-10-13 初稿
Home > Linux > Windows共用フォルダをマウント