FreeBSD8.0Rでmountを利用する

* FreeBSD 7.1R 7.2R でも同じ。

当サイトにおいて、バックアップ(カテゴリー)の中でmount についての記載を行う理由は、後のrsync(LAN内におけるrsync)の前段階としての話題として取り扱うためである。

たとえば、2台のFreeBSD機があり、一方のファイル群を他方から同期バックアップしたい場合などにrsyncを用いると有効であるが、ssh接続の際のパスワード入力がネックとなる。鍵認証方式についてもよくわからない。めんどくさい。実は、運用中のサーバが危機迫っており、てっとり早く対応するために、本稼動サーバのパーティションを、バックアップサーバからmountして、さらにrsyncで定期的な同期バックアップを行おうと考えている。

今回は、下記のマシン構成を例にして、LAN内におけるrsyncを前提とした、クライアント側から、サーバ側パーティションをマウントする方法を記載する。

決めるマウント(サーバ側)機のIPアドレスここでは192.168.0.100/24とする
決めるマウント(クライアント側)機のIPアドレスここでは192.168.0.200/24とする

サーバ側の設定

%su
Password:

/etc/rc.conf

/etc/rc.conf に次の内容を追記する。なお、/etc/default/rc.conf に記述されていて、変更が不要なものは記載しない。

portmap_enable="YES"
nfs_server_enable="YES"
nfs_reserved_port_only="YES"

/etc/exports

/etc/exports に次の内容を追記する。

/usr  -ro -network 192.168.0 -mask 255.255.255.0 -maproot=root

[tcp] 192.168.0.100:/home: Permission denied

/etc/exports の注意点として、複数のディレクトリをエクスポートする場合、同一ディスクパーティションにあるディレクトリ、たとえば、/usr と /usr/ports を別々に指定することはできない。これを行うと、クライアント側からマウントを行う際にエラーが表示される。実は、おもいっきりハマッタのがここ。うちのサーバ機は物理的なハードディスク1台を1つのパーティションとしてあり、/etc /var /home それぞれをパーティション分けしていない。つまり下記はNGとなった。

# df
Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
/dev/ad0s1a  37324044 10050948 24287174    29%    /

の場合で、/dev/ad0s1a に /etc /usr /var などが存在し、それぞれをパーティション分割していない場合に次のような記述は無効。

/etc   -ro -network 192.168.0 -mask 255.255.255.0
/usr   -ro -network 192.168.0 -mask 255.255.255.0
/var   -ro -network 192.168.0 -mask 255.255.255.0

次のような場合はOK。

#df
Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
/dev/ad0s1a    128990   42696    75976    36%    /
/dev/ad0s1g  37565604 5449712 29110644    16%    /usr
/dev/ad0s1e    257998   36354   201006    15%    /var
/etc   -ro -network 192.168.0 -mask 255.255.255.0
/usr   -ro -network 192.168.0 -mask 255.255.255.0
/var   -ro -network 192.168.0 -mask 255.255.255.0

FreeBSDを再起動した後、次のコマンドを実行して確認する。意図したパーティションが表示されていない場合は、設定を見直す。

# showmount -e

/etc/hosts.allow

/etc/hosts.allow に次の内容を追記する。

rpcbind : 192.168.0.0/255.255.255.0 : allow

クライアント側の設定

%su
Password:

/etc/rc.conf

/etc/rc.conf に次の内容を追記する。なお、/etc/default/rc.conf に記述されていて、変更が不要なものは記載しない。

nfs_client_enable="YES"

再起動する。

マウントを試してみる

# df
Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
/dev/ad0s1a  37350724 9362234 25000434    27%    /
 
# cd /mnt
# mkdir srv100
# mkdir srv100/usr
# mount -t nfs 192.168.0.100:/usr /mnt/srv100/usr
 
# df
Filesystem        1K-blocks    Used    Avail Capacity  Mounted on
/dev/ad0s1a        37350724 9362232 25000436    27%    /
192.168.0.100:/usr 75685352 4382866 65247658     6%    /mnt/srv100/usr

[tcp] 192.168.0.100:/home: RPCPROG_NFS: RPC: Port mapper failure - RPC: Authentication error

このエラーが発生する場合は、上記(サーバ側の設定)の /etc/hosts.allow でクライアントからの接続が許可されていないかもしれない。

[tcp] 192.168.0.100:/home: Permission denied

このエラーが発生する場合は、上記(サーバ側の設定)の /etc/exports に記述ミスがあるかもしれない。

/etc/fstab

再起動の度に mount コマンドを叩くのは大変なので、/etc/fstab に次のように記載しておく。

192.168.0.100:/usr  /mnt/srv100/usr   nfs   ro   0   0

再起動する。

freebsd7.1r/mount.txt · 最終更新: 2009/12/16 18:55 by vdobv
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0