sea side she side

写真と山、資格が好きなアラフォーエンジニアのブログ

Linux NFSへMacからmountする

      2011/03/20

自宅のMacはminiなのでHDDの容量も少なく、デジタル一眼のRAWデータの処理に困っていました。外付けHDDで対応はしていたのですがRAIDではないし。それを一時しのぎでsamba経由でつないでいました。

でもどうせならと思い、Server入れ直しついでにNFS経由にかえました。が、トラブルが発生。その対応記録です。

/fsにRAIDを組んだアーカイブ用のディスクがLinux上にあります。

まず、/etc/exportsを編集。

/fs 192.168.0.0/24(rw,root_squash,sync)

サービスを起動してきます。

# /etc/rc.d/init.d/portmap start
# /etc/rc.d/init.d/nfs start
# /etc/rc.d/init.d/nfslock start

サービス自動起動の登録。

# chkconfig nfs on
# chkconfig nfslock on
# chkconfig portmap on

サーバ側はこれでおしまい。

Mac側にマウントしたいところのディレクトリを作成する。

$ mkdir ~/fs

実際にマウントする。

$ sudo mount -oresvport,intr,soft,tcp SERVER:/fs ~/fs

で、ここで発覚。今まであたりまえにアカウントとuid、gidをそろえてきていたのですがMacはデフォルトのまま(そもそも変えられるのかしら?)。uidとgidをマッピングさせる機能があると日本語manにはあるのですがこれは嘘。嘘というよりは日本語manの更新がされていないだけで今は使えなくなっている機能らしい。あきらめてMac側のuidとgidを変えることにしました。

CentOS側はuid:500(xxxx) gid:500(staff)、Mac側はuid:501(xxxx) gid:20(staff)。staffの名前がMac側で使われてしまっているので仕方なく500でusersにすることにしました。名称は不一致だけどgidではかわらないので許容範囲。先にわかってたらCentOS側を変えてたのになぁ。

# dscl . -change /Users/xxxx UniqueID 501 500
# dscl . -change /Users/xxxx PrimaryGroupID 20 500
# dscl . create /groups/users gid 500

所有権が501だったものをすべて500に変更。ただしやるまえにnfsはいったん解除しておかないとnfs先まで探しにいっちゃうので時間がかかる。

# find / -xdev -user 501 -exec chown xxxx:500 {} \;

これでおしまい。

 - IT