LANDISK HDL4-GをNFSサーバにする[追記あり]

2013年2月20日NAS,パソコン・インターネット

LANDISK HDL4-GをNFSサーバにします。設定には、dpkgもapt-getも不要です。ただし、当然ですが、telnetなどでloginできるようになっている事が必要です。

以下の内容を実行すると、LANDISKを壊してしまうかもしれません。自己責任でお願いします。また、データの事前バックアップもしておいた方が良いと思います。

HDL4-Gのtelnetを有効化した理由は、NFSサーバにしたかったからでした。

インストールするnfsは、unfs3です。ここは、NFS v3にこだわります。NFS v2とv3の違いについて、次のページに比較表が載っています。ありがとうございます。

一番重要なのは、ファイルサイズの違いでしょうか?

portmapは、最初からインストールされていたので、それを使う事にします。

NFSサーバ化にあたり、次のページを参考にしました。ありがとうございます。

えびめも(2007-12-11)
基本的な方法。dpkgを使わないインストール方法、自動起動の設定方法について
nfs-user-server – odawaraの「はてな de メモ」
Linuxをホストにする場合のインストール方法について
LANDisk Home(HDL2-G)をいじる:NFSサーバのインストール(unfs3) – アヒルのように歩きアヒルのようにガーガー鳴くならそれはきっとアヒルに違いない – Yahoo!ジオシティーズ
unfs3について

それでは、実際の手順の説明に入ります。

  1. unfs3のインストール
  2. /etc/exportsの設定
  3. NFSの起動
  4. NFSの確認
  5. 自動起動の設定

作業は、全てLANDISK HDL4-Gの中でします。

(1)unfs3のインストール

まずは、unfs3のインストールです。パッケージのアーキテクチャはarmを選びます。当たり前ですが、armelは動きませんでした。

(追記 2013-02-20 21:52 Sargeのunfs3は、次の所からダウンロードで来ます。)

# cd /
# mkdir work
# cd work
# wget http://archive.debian.org/backports.org/pool/main/u/unfs3/unfs3_0.9.15+dfsg-1~bpo.1_arm.deb
# ar x unfs3_0.9.15+dfsg-1~bpo.1_arm.deb
# cd /
# tar xvzf work/data.tar.gz
# rm -rf work

tar xvzfをやる前に、tar tvzfで、ファイルの中身を確認しておいた方が、安全だと思います。

(2)/etc/exportsの設定

次に、/etc/exportsを作ります。共有ディスクは、/mnt/sataraid1/shareにある様です。例を示しますが、環境に合わせて、内容は変更して下さい。

/mnt/sataraid1/share/itunes 192.168.1.0/24(rw,insecure,no_subtree_check)
/mnt/sataraid1/share/username 192.168.1.0/24(rw,insecure,no_subtree_check)

insecure,no_subtree_checkを設定しているのは、Mac OS Xで使う事を考えているからです。

(3)NFSの起動

nfsを起動します。

# mount -o remount,ro /
# /etc/init.d/portmap start
# /etc/init.d/unfs3 start

(4)NFSの確認

nfsの起動確認をします。

# rpcinfo -u 127.0.0.1 nfs
プログラム 100003 バージョン 3 の準備が完了し待機中です
# showmount -e 127.0.0.1
Export list for 127.0.0.1:
/mnt/sataraid1/share/itunes    192.168.1.0/24
/mnt/sataraid1/share/username  192.168.1.0/24

nfsが起動しました。バージョン3です。exportもうまく行っている様です。

(5)自動起動の設定

電源を入れたとき、自動起動するように設定します。

# mount -o remount,rw /
# update-rc.d portmap start 43 S . start 32 0 6 . start 18 2 3 4 5 . stop 81 1 .
Adding system startup for /etc/init.d/portmap ...
   /etc/rc1.d/K81portmap -> ../init.d/portmap
   /etc/rc0.d/S32portmap -> ../init.d/portmap
   /etc/rc2.d/S18portmap -> ../init.d/portmap
   /etc/rc3.d/S18portmap -> ../init.d/portmap
   /etc/rc4.d/S18portmap -> ../init.d/portmap
   /etc/rc5.d/S18portmap -> ../init.d/portmap
   /etc/rc6.d/S32portmap -> ../init.d/portmap
   /etc/rcS.d/S43portmap -> ../init.d/portmap
# update-rc.d unfs3 defaults 25
Adding system startup for /etc/init.d/unfs3 ...
   /etc/rc0.d/K25unfs3 -> ../init.d/unfs3
   /etc/rc1.d/K25unfs3 -> ../init.d/unfs3
   /etc/rc6.d/K25unfs3 -> ../init.d/unfs3
   /etc/rc2.d/S25unfs3 -> ../init.d/unfs3
   /etc/rc3.d/S25unfs3 -> ../init.d/unfs3
   /etc/rc4.d/S25unfs3 -> ../init.d/unfs3
   /etc/rc5.d/S25unfs3 -> ../init.d/unfs3
# mount -o remount,ro /

update-rc.dに-nオプションをつけると、実際の実行の前に、どのようなリンクが作られるかを確認できます。

以上で終わりです。後は、Linux(Ubuntuなど)から、NFSマウントしてみてください。

$ sudo mount -t nfs 192.168.1.200:/mnt/sataraid1/share/itunes /mnt

(追記 2012-03-18 21:18)

showmountで、フォルダがexportされていない場合、/etc/exportsの書き方に間違いがあるかもしれません。unfsdに"-T"オプションをつけると、記述のチェックができます。

また、/etc/exports以外のファイルを指定する事もできます。例えば、/mnt/hda5/work/exportsに置いて、内容のチェックをするには、次のようにします。

そして、もしエラーがあると、次の結果となります。

# cat /mnt/hda5/work/exports
/mnt/sataraid1/share/not_exist 192.168.1.0/24(rw,insecure,no_subtree_check)
# /usr/sbin/unfsd -e /mnt/hda5/work/exports -T
Parse error in `/mnt/hda5/work/exports'

exportsで指定したディレクトリが無いと、エラーになります。記述にエラーがあると、exportできません。

(追記 2013-02-20 21:52)

インストールしたものの、なんだか挙動が変だったので、実際には使っていません。

Posted by お市のかた