Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2024/12/21 11:44:57.596 (台灣標準時)

NetBSD での NFS と amd の設定

NetBSD での、 NFS 及び amd の設定の仕方は以下の通り。

NFS サーバでの作業

まず、 NFS サーバとなる計算機での設定について整理する。

/etc/rc.conf

/etc/rc.conf に以下の記述を追加する。ここでは、 10.20.30.1 が NFS サー バであると仮定する。
rpcbind=YES
mountd=YES
nfs_server=YES
lockd=YES
statd=YES

デーモンの起動

必要なデーモンを起動する。

rpcbind

最初に、 rpcbind を起動する。
# /etc/rc.d/rpcbind start
Starting rpcbind.

mountd

次に、 mountd を起動する。
# /etc/rc.d/mountd start
/etc/rc.d/mountd: WARNING: /etc/exports is not readable.
/etc/exports というファイルがないので、 mountd が起動できなかった。シ ステムをインストールしたばかりの状態だと、このファイルは存在しない。新 たに作成する必要がある。 /etc/exports は以下のような内容とすればよい。
/data0 -network 10.20.30.0 -mask 255.255.255.0 -maproot=root
/data1 -network 10.20.30.0 -mask 255.255.255.0 -maproot=root
/etc/exports ファイルを作成すれば、今度は mountd が起動する。
# /etc/rc.d/mountd start
Starting mountd.
showmount コマンドを使って、 /etc/exports に書き込んだディレクトリが export されているかどうかを確認する。
# showmount -e 10.20.30.1
Exports list on 10.20.30.1:
/data0                             10.20.30.0 
/data1                             10.20.30.0 

nfsd

更に、 nfsd を起動する。
# /etc/rc.d/nfsd start
Starting nfsd.

NFS クライアントでの作業

NFS サーバでの設定が終わったら、今度は NFS クライアントで設定を行う。 NFS クライアントは 10.20.30.100 であると仮定する。

/etc/rc.conf

まず、 /etc/rc.conf に以下の記述を追加する。
rpcbind=YES
nfs_client=YES
lockd=YES
statd=YES

デーモンの起動

必要なデーモンを起動する。

rpcbind

rpcbind を起動する。
# /etc/rc.d/rpcbind start
Starting rpcbind.

NFS マウント

showmount コマンドを使って、 NFS マウントしたいディレクトリが見えるか どうか確認する。
# showmount -e 10.20.30.1
Exports list on 10.20.30.1:
/data0                             10.20.30.0 
/data1                             10.20.30.0 
NFS サーバのディレクトリをマウントしてみる。
# df
Filesystem       1K-blocks       Used      Avail %Cap Mounted on
/dev/dk0          56928776    1632720   52449618   3% /
tmpfs              1048444      70344     978100   6% /tmp
kernfs                   1          1          0 100% /kern
ptyfs                    1          1          0 100% /dev/pts
procfs                   4          4          0 100% /proc
tmpfs              1048444          4    1048440   0% /var/shm
# mount -t nfs 10.20.30.1:/data0 /mnt
# # df
Filesystem         1K-blocks       Used      Avail %Cap Mounted on
/dev/dk0            56928776    1634656   52447682   3% /
tmpfs                1048444      70896     977548   6% /tmp
kernfs                     1          1          0 100% /kern
ptyfs                      1          1          0 100% /dev/pts
procfs                     4          4          0 100% /proc
tmpfs                1048444          4    1048440   0% /var/shm
10.20.30.1:/data0  492358832   69379396  398361496  14% /mnt
期待通りにマウントすることができた。 以下のようにすれば、マウントを解除することができる。
# umount /mnt
IP アドレスではなく、ホスト名を使ってマウントできる方が便利である。そ のためには、 /etc/hosts に記述を追加しておけばよい。例えば、以下のよう な記述を /etc/hosts に追加する。
10.20.30.1      nb00
こうしておけば、以下のコマンドでマウントすることができるようになる。
# mount -t nfs nb00:/data0 /mnt
# df /mnt
Filesystem    1K-blocks       Used      Avail %Cap Mounted on
nb00:/data0   492358832   69499752  398241140  14% /mnt
# umount /mnt

amd の設定

必要になったときにいちいち root になって mount コマンドを実行して NFS マウントし、必要なくなったらまた root になって umount するというのは面 倒である。 amd を使うと、必要になったときに自動で mount してくれるよう にすることができる。

/etc/rc.conf

/etc/rc.conf に以下の記述を追加する。
amd=YES

ディレクトリの作成

必要なディレクトリを作成する。
# mkdir /amd
# mkdir /net
# mkdir /etc/amd

/etc/amd.conf

/etc/amd.conf というファイルを準備する。雛形をコピーする。
# cp -pi /usr/share/examples/amd/amd.conf /etc/
# chmod 644 /etc/amd.conf
/etc/amd.conf には、必要ではない記述も含まれているので、編集する。
# cd /etc
# cp -pi amd.conf amd.conf.orig
# ls -l amd.conf*
-rw-r--r--  1 root  wheel  328 Jan 23 19:49 amd.conf
-rw-r--r--  1 root  wheel  326 Jan 16 01:47 amd.conf.orig
# vi amd.conf
# diff -c amd.conf.orig amd.conf
*** amd.conf.orig       Sat Jan 16 01:47:48 2021
--- amd.conf    Sat Jan 23 19:49:36 2021
***************
*** 8,15 ****
  dismount_interval =   900
  map_type = file
  
! [ /cd ]
! map_name =            /etc/amd/cd
  
  [ /net ]
  map_name =            /etc/amd/net
--- 8,15 ----
  dismount_interval =   900
  map_type = file
  
! #[ /cd ]
! #map_name =           /etc/amd/cd
  
  [ /net ]
  map_name =            /etc/amd/net

/etc/amd/net

/etc/amd/net を準備する。雛形をコピーする。
# cp -pi /usr/share/examples/amd/net /etc/amd/
# chmod 644 /etc/amd/net
雛形のままだと、 read-only でのマウントしかできないので、 /etc/amd/net を編集する。
# cd /etc/amd
# ls -l
total 4
-rw-r--r--  1 root  wheel  338 Jan 23 19:50 net
-rw-r--r--  1 root  wheel  338 Jan 16 01:47 net.orig
# vi net
# diff -c net.orig net
*** net.orig    Sat Jan 16 01:47:48 2021
--- net Sat Jan 23 19:50:16 2021
***************
*** 5,8 ****
  #
  /defaults     type:=host;rhost:=${key};fs:=${autodir}/${rhost}/root
  *             host==${key};type:=link;fs:=/                           \
!               host!=${key};opts:=ro,soft,intr,nodev,nosuid,noconn
--- 5,8 ----
  #
  /defaults     type:=host;rhost:=${key};fs:=${autodir}/${rhost}/root
  *             host==${key};type:=link;fs:=/                           \
!               host!=${key};opts:=rw,soft,intr,nodev,nosuid,noconn

デーモンの起動

amd デーモンを起動する。
# /etc/rc.d/amd start
Starting amd.

amd による自動マウントの確認

/net/nb00/data0 にアクセスすれば、 amd により自動的に NFS マウントが行 われる。
# ls -l /net/nb00/data0
total 4
drwxr-xr-x  4 root  wheel  512 Oct 11 20:40 netbsd
# df nb00:/data0
Filesystem    1K-blocks       Used      Avail %Cap Mounted on
nb00:/data0   492358832   69499752  398241140  14% /amd/nb00/root/data0


Frequently accessed files

  1. Computer___Python/20220518_0.html
  2. Computer___Network/20230726_00.html
  3. Misc___Taiwan/20240207_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___FreeBSD/20220621_0.html
  6. Computer___Python/20220715_0.html
  7. Computer___Network/20230508_00.html
  8. Food___Taiwan/20220429_0.html
  9. Computer___Network/20240130_00.html
  10. Computer___NetBSD/20220817_3.html
  11. Computer___Python/20220410_0.html
  12. Computer___Network/20240416_00.html
  13. Computer___NetBSD/20230119_00.html
  14. Computer___Debian/20210223_1.html
  15. Computer___Python/20221013_0.html
  16. Computer___Python/20210124_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Computer___NetBSD/20240101_02.html
  20. Science___Math/20220420_0.html
  21. Computer___Python/20240101_00.html
  22. Computer___NetBSD/20220808_0.html
  23. Computer___TeX/20230503_00.html
  24. Science___Astronomy/20220503_0.html
  25. Computer___NetBSD/20230515_00.html
  26. Computer___Network/20220413_1.html
  27. Computer___NetBSD/20210127_0.html
  28. Computer___TeX/20231107_00.html
  29. Computer___Python/20220816_1.html
  30. Computer___Python/20230717_01.html


HTML file generated by Kinoshita Daisuke.