coLinuxと他のマシンでデータを共有する方法として、 私はsmbfsではなくNFSを使っています。 それは私はLAN上にファイルサーバとしてLinuxを立ち上げており、 Linux間でのファイル共有はやはりNFSが適当だと思うからです (このFile ServerではSambaが動いているので、 smbfsでファイルを読み書きすることも可能です)。
以前は、colinuxがNFS機能をサポートしていなかったり(0.6.0以前)、 UDPでまともに通信できなかったりしたのですが、 最近のcolinuxではそういうこともありません。
なので、ここではごく普通のNFS接続の方法を説明することになります (しかし歴史的な事情によりNFS over TCPという方法を説明します)。
なお、NFSサーバはLinuxカーネルのNFSサーバ機能(Kernel NFS Server) を使うこととします。 User space NFS serverというのもあるのですが、 私は使っていないのでなんともいえません。
このページの説明中では、 coLinuxとホストPCはブリッジ接続している状況を前提にしています (ネットワーク的には、このページの状況です)。 また、coLinuxのホスト名を「colinux」、LAN上のLinuxのホスト名を「linux」とします。(ルータ接続でもNFSは問題なく動きます)
|
ここで紹介する内容NFSでファイル共有するといってもcoLinxをサーバとするか、 クライアントにするかで2パターンかあります。
以下では、それぞのパターンについて説明していきます。 サブタイトルの「XXXX→YYYY」は、 XXXXがNFSサーバとなってYYYYがクライアントになることを表します。 Linux→coLinuxの場合この場合の注意点は、以下の3点です。それぞれ説明します。
NFSサーバの構築ここはLAN上のLinuxでの設定です。 カーネルの設定確認とりあえず、今動いているカーネルの設定を調べて見ましょう。 カーネルの設定情報は/bootディレクトリにconfigあるいは config-2.x.x (2.x.xはカーネルのバージョン番号)という名前で 保存されています(と思います)。 私の場合は、config-2.6.7でした。これをgrepしてみましょう。 root@linux# cd /boot root@linux# grep NFS config-2.6.7 CONFIG_NFS_FS=m CONFIG_NFS_V3=y CONFIG_NFS_V4=y # CONFIG_NFS_DIRECTIO is not set CONFIG_NFSD=m CONFIG_NFSD_V3=y CONFIG_NFSD_V4=y CONFIG_NFSD_TCP=y この場合、「CONFIG_NFSD=m」「CONFIG_NFSD_TCP=y」と なっているのでOKです。 もしこれらが「is not set」となっていたらカーネルを再構築しましょう。 カーネルの再構築に関しては、説明が長くなってしまいますので、 詳しくは他のサイトを参照してください。 ポイントとしては「Code maturity level options」で 「Prompt for development and/or imcomplete code/drivers」を 選択すること。
もう一つは、「File systems → Network File Systems」で、 「NFS server support」と「Provide NFS server over TCP support」を 選択することです。
NFSサーバの設定NFSサーバ機能をサポートしたカーネルが動いたら、 NFSサーバの設定をしましょう。 まずは、必要に応じてNFSサーバ機能を有効にするための サポートパッケージをインストールします。 /usr/sbin/rpc.nfsdというファイルが存在していたら、 既にインストールされているかもしれません。 Debianの場合は、nfs-kernel-serverというパッケージを入れればOKです。 次に、NFSで外部に公開する(exportする)ディレクトリや、 接続を許可するホストを設定します。 これは、/etc/exportsというファイルで指定します。 NFSサーバの/homeディレクトリと/cdromディレクトリを 公開する場合は以下のようになります。 このファイルの192.168.10.0/255.255.255.0というのは、 接続を許可するIPアドレスの範囲です。 私は、LAN内のIPアドレスを192.168.10.1〜で割り振っているのでこ のようになります(coLinuxもブリッジ接続なので192.168.10.xとなります)。
root@linux# cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
/cdrom 192.168.10.0/255.255.255.0(rw)
/home 192.168.10.0/255.255.255.0(rw)
もし、coLinuxをルータ接続としている場合には、 ホストPC・coLinux間のネットワークアドレスも公開アドレスとして 追記する必要もあります。 NFSサーバの起動設定が完了したらNFSサーバを起動しましょう。 これは各ディストリビューションの流儀に従ってください。 Debianの場合は以下のコマンドでOKです。
root@linux# /etc/init.d/nfs-kernel-server restart
NFSクライアントの構築これはcoLinuxでの設定です。 まず、NFSクライアントのサポート機能を入れます。 これはnfs-commonパッケージに入っているので、インストールします。 root@colinux# apt-get update root@colinux# apt-get install nfs-common あとはマウントするだけです。 以下のコマンドでマウントします。 ここで「-o tcp」と付けることがポイントです。 これにより「NFS over TCP」が有効となります。
root@colinux# mount -t nfs -o tcp linux:/home /mnt
うまくいったら、必要に応じて/etc/fstabに書き込んで、 次回起動時に自動的にマウントされるようにしておきましょう。
root@colinux# cat /etc/fstab
/dev/cobd0 / ext3 defaults 0 1
proc /proc proc defaults 0 0
/dev/codb1 none swap sw 0 0
linux:/home /home nfs defaults,tcp 0 0
ユーザIDの管理正しくはネットワーク内でNISサーバを動かすべきなのですが、 coLinuxで新しくユーザを追加するときに、 NFSサーバでのそのユーザのユーザIDと一致するようなユーザIDで追加しています。 グループを追加するときも、 NFSサーバとグループIDが一致するようにして追加しています。 こうしないと、特に/homeディレクトリをNFSでマウントしたときに 面倒なことになります。 coLinux→Linuxの場合この場合はほとんど上記の「Linux→coLinux」のパターンと一緒です。 NFSクライアントとなるLinuxの方でマウントするときに 「-o tcp」をつけるのを忘れないようにしましょう。 NFSサーバの構築これはcoLinux上での設定です。 最近のcoLinuxは標準のカーネルでNFS機能と NFS over TCP機能がサポートされているので、 カーネルのコンパイルをする必要はありません。 サポートパッケージをインストールしてしましょう。 root@colinux# apt-get update root@colinux# apt-get install nfs-kernel-server 次に、/etc/exportsを編集して外部に公開するディレクトリを指定します。 /homeディレクトリをIPアドレスが192.168.10.xのホストに公開するならば以下のようになります。
root@colinux# cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
/home 192.168.10.0/255.255.255.0(rw)
NFSクライアントの構築これはLAN上のLinuxの設定です。 Linuxのディストリビューションの流儀に従って、 NFSクライアントのサポート機能をインストールしてください。 Debianなら以下の様な感じです。 root@colinux# apt-get update root@colinux# apt-get install nfs-common あとは以下のようにマウントするだけです。 ここでも「-o tcp」をつけることにより 「NFS over TCP」が有効としています。
root@linux# mount -t nfs -o tcp colinux:/home /mnt
ユーザIDの管理この場合も、 coLinuxとLAN上のLinuxでのユーザIDを一致させておきましょう。 それが一番楽です。 |
| SEO | 仕事 花 | 掲示板 レンタルサーバー プロフ SEO | |