* 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/default/rc.conf に記述されていて、変更が不要なものは記載しない。
portmap_enable="YES" nfs_server_enable="YES" nfs_reserved_port_only="YES"
/etc/exports に次の内容を追記する。
/usr -ro -network 192.168.0 -mask 255.255.255.0 -maproot=root
/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 に次の内容を追記する。
rpcbind : 192.168.0.0/255.255.255.0 : allow
%su Password:
/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
このエラーが発生する場合は、上記(サーバ側の設定)の /etc/hosts.allow でクライアントからの接続が許可されていないかもしれない。
このエラーが発生する場合は、上記(サーバ側の設定)の /etc/exports に記述ミスがあるかもしれない。
再起動の度に mount コマンドを叩くのは大変なので、/etc/fstab に次のように記載しておく。
192.168.0.100:/usr /mnt/srv100/usr nfs ro 0 0
再起動する。