HOME / コンピュータTips / Solaris / smbfsとautomount

Date: 2008/07/26 |  このエントリーをはてなブックマークに追加  |  Tags: Solaris, OpenSolaris, smbfs, automount, autofs, auto_master, landisk, samba, Windowsサーバ, Windows共有

smbfs

smbfsは、Windowsで使われている共有を、SolarisやOpenSolaris側でマウントするファイルシステム。元来、samba系でLinuxのみ提供されていたり、Rumbaと言われるものがあったが、それと目的を同じとするもの。

これを利用することで、IO DATAの landiskなど、WindowsサーバなどのWindows共有をCIFSマウントすることができる。landiskも本来Linuxなので、nfsでマウントさせてくれても良いような物であるが、我々はニッチだから仕方がない。共有方法が1つふえるだけで、果てしなく面倒そうであるし(笑)

事前準備

マウントしようとして下記のエラーがでてきたら、

mount_smbfs: service "svc:/network/smb/client:default" not enabled.

次のようにenableにしておく。

pfexec svcadm enable svc:/network/smb/client:default

マウント方法

ここを見る

  • http://docs.sun.com/app/docs/doc/819-2240/mount-smbfs-1m
  • http://docs.sun.com/app/docs/doc/820-2429/automountsharetask

これだけではあまりにアレなので

mount -F smbfs //user:password@landisk/share /mnt

などという形でマウントできる。

automountを利用する

実はgnomeのnautilusのアドレスバーで、

smb://landisk/share

と入力すると、普通にファイルを読むことが出来る。

ただこの場合、ダブルクリックしてもいくつかのプログラムがsmb://から始まる方式に対応していないため、ファイルを実際に読むことが出来ない。

そこで、mountすればこのようなファイルをマウントすることが出来るが、一々、手でマウントするのは面倒。

/landisk

というディレクトリを共有ポイントにして、automountを利用する。

nsswitch.conf

automountは、nsswitch.confを参照し、automountのマップをどこから参照するか決める。

cat /etc/nsswitch.conf | grep automount

結果

automount:  files

filesと書いてあれば、/etc/auto_master以下を参照するわけ。

auto_masterの記述

たとえば、こう。

/landisk	auto_landisk
  • nobrowseをつけるかどうかはお好きに。

これをつけることで、auto_landiskを利用すると明記された。

これも忘れずに

mkdir /landisk

auto_landisk

こんな感じで列挙する。

test	-noprompt,uid=kohju,gid=justplayer,fstype=smbfs //kohju:password@landisk/test

すると、auto_masterで、/landiskが指示され、タブ区切りの最初の文字であるtestでtestというマウントポイント、つまり、/landisk/testが指定されている。マウントオプションは真ん中のパラメタ、右のパラメタはマウントするためのリソース名。

利用方法

まずautofsを起動する

svcadm enable autofs

以降、/landisk/testにアクセスするだけ。

トラブルシューティング

autofsの設定変更は、

  1. 全てのディレクトリ参照プロセスを終了する。
  2. autofsを念のため確実にdisable
  3. 実際のマウントがあった場合はdisable後にumountする。

マウントポイント自体は一件マウントされてるように見えないが、実はautomountプロセスがマウントしてるときがある。特に、誰かがそのボリュームを触っている時は、autofsは死んだように見えても握ってるときがある。そう言うときは、マウントポイント、マウントポイントが収容されているディレクトリ事umountをかけるとよい。

ログはdmesgで参照可能。

雑感

色々問題はでる。たとえば、wineでWindowsのボリュームをみて実行しようとすると、こんなエラーがでたり・・・・(笑

wine: could not load L"Z:\\landisk\\test\\Program Files\\HOGE\\MOGE.EXE": Bad EXE format for 

もちろん、これは普通にコピーすれば実行できる((もしかしたら、対抗がlandiskだからかもしれない。landiskはsambaで提供してるのであって、純粋なwindowsサーバでもないし))

また、当然なのであるが、ユーザ名を指定した以上、そのユーザでしかアクセスがでいない。nfsのようにマウントはマウント、ユーザ権は様々というわけではないので、ここは仕方がない。

個人的にはcifsはファイルシステムではなくて、ファイル転送プロトコルの一種だと思っているので、このあたりは仕様の限界か。

まぁ。一々、コピーしなくても、いろいろ触れるのは良いところかな。

wineはもう少し調べてみようかなぁと。


コンピュータTips/Solaris

Recent Updates