如何通过NFS共享硬盘

如何通过NFS共享硬盘

我有两台装有 raspbian 操作系统的机器。

第一台机器连接了 HD USB。

Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  362M     0  362M   0% /dev
tmpfs          tmpfs     367M  5.0M  362M   2% /run
/dev/mmcblk0p2 ext4       29G  852M   27G   4% /
tmpfs          tmpfs     367M     0  367M   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     367M     0  367M   0% /sys/fs/cgroup
/dev/mmcblk0p1 vfat      240M   23M  217M  10% /boot
/dev/sda2      fuseblk   2.8T  1.3T  1.5T  46% /media/biblio
/dev/sda1      vfat      300M  380K  299M   1% /media/EFI
tmpfs          tmpfs      74M     0   74M   0% /run/user/1000

我想/dev/sda2与第二台机器共享。这就是我所做的:

在第一台机器上安装 portman 和 nfs 服务器:

$ sudo apt-get install nfs-kernel-server
$ sudo apt-get install portmap

在第二台机器上安装nfs客户端:

$ sudo apt-get install nfs-common

添加一行/etc/exports

/media/biblio *(rw)

然后,在第二台计算机中,我尝试显示在第一台计算机中共享的文件:

showmount -e 192.168.1.128

但我收到这个错误:

clnt_create: RPC: Program not registered

为什么。我究竟做错了什么?谢谢。

答案1

showmount命令正在尝试查询rpc.mountd守护程序。正常情况下,此时应该已经在运行了。

安装 nfs-kernel-server 时是否收到任何错误消息?如果您尝试手动启动或重新启动脚本会发生什么情况?

pi@nfsserver:~ $ sudo /etc/init.d/nfs-kernel-server stop
[ ok ] Stopping nfs-kernel-server (via systemctl): nfs-kernel-server.service.
pi@nfsserver:~ $ showmount -e
clnt_create: RPC: Program not registered
pi@nfsserver:~ $ sudo /etc/init.d/nfs-kernel-server start
[ ok ] Starting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
pi@nfsserver:~ $ showmount -e
Export list for nfsserver:
pi@nfsserver:~ $ ps -ef | grep [m]ountd
root      1599     1  0 20:23 ?        00:00:00 /usr/sbin/rpc.mountd --manage-gids

rpc.mountd会经常登录/var/log/syslog。如果它正在启动(手动或通过 systemd),那里应该有一些东西。

rpc.mountd实际启动时,它将尝试向端口映射器注册其端口。您可以要求端口映射器显示它所在的端口。如果它正在运行,但没有显示端口,则可能存在端口映射程序问题。

pi@nfsserver:~ $ rpcinfo -p | grep mount
    100005    1   udp  40783  mountd
    100005    1   tcp  59249  mountd
    100005    2   udp  56682  mountd
    100005    2   tcp  34875  mountd
    100005    3   udp  49762  mountd
    100005    3   tcp  55881  mountd

最后,如果showmount -e在服务器上工作,但showmount -e [host]在客户端上不起作用,则它们之间可能存在网络/防火墙问题。

重新启动 OSMC 服务器并尝试添加以下内容(请将其编辑到您的问题中,而不是作为注释):

ps -ef | grep rpc (on server)
rpcinfo -p (on server)
rpcinfo -p [server] (from the client)
showmount -e [server] (from the client)

答案2

在第二台机器上从头开始重新安装 Raspbian 后,一切正常。我不知道为什么。

谢谢大家的帮助。

相关内容