背景:
本地计算机访问远程服务器,并且改写服务器上的文件,通过NFS把服务器上文件所在的目录挂载到本地计算机目录,从而可以在本地目录改写。
首先服务端将自己的文件挂载出来,然后才能被客户端访问
在服务器上操作:
1.1 安装 NFS 服务端
sudo apt-get install nfs-kernel-server
如果出现错误:
dpkg: error processing package nfs-common (--configure):
subprocess installed post-installation script returned error exit status 10
dpkg: dependency problems prevent configuration of nfs-kernel-server:
nfs-kernel-server depends on nfs-common (= 1:1.2.8-9ubuntu12.3); however:
Package nfs-common is not configured yet.
dpkg: error processing package nfs-kernel-server (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
nfs-common
nfs-kernel-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
参考解决方案:Ubuntu dpkg报错: dpkg: error processing package
1.2 添加 NFS 挂载目录
$ cd /media/xxx/wxf
$ pwd
/media/xxx/wxf
sudo vi /etc/exports
添加内容:
/media/xxx/wxf *(rw,sync,no_root_squash)
前面是挂载的文件路径
*(rw,sync,no_root_squash)表示允许任何网段 IP 的系统访问该 NFS 目录
1.3 修改挂载目录的权限以及修改文件用户
$ sudo chmod -R 775 /media/xxx/wxf
$ sudo chown -R 775 /media/xxx/wxf
1.4 启动NFS服务
$ sudo /etc/init.d/nfs-kernel-server start
[ ok ] Starting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
$ sudo /etc/init.d/nfs-kernel-server restart
[ ok ] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
先启动NFS再重启NFS
2.1 安装 NFS 客户端
sudo apt-get install nfs-common portmap
2.2 创建本地映射的目录
$ sudo mkdir /home/xxx/mount
2.3 挂载服务端的文件到本地
sudo mount -t nfs -o nolock 192.168.2.168:/media/xxx/wxf /home/xxx/mount
192.168.2.168 为服务器的IP
2.4 查看是否挂载成功
$ df -H
Filesystem Size tmpfs
... 1.7G 54k 1.7G 1% /run/user/1000
/dev/sdb1 4.1T 3.7T 384G 91% /media/XXX/Elements
192.168.10.127:/media/XXX/wxf 8.0T 3.3T 4.3T 44% /home/XXX/mount
且到 /home/xxx/mount 目录,查看是否有需要挂载的文件
$ cd /home/xxx/mount
$ ls
01-5000 IA-SSD_PC OpenPCDet_ori YOLOv6
01-5000.zip lib OpenPCDet_zori yolov7
02-20000 OpenPCDet_ls output yolov7_inference
02-20000.zip openpcdet_lskitti pcl_1_9_1
IA-SSD OpenPCDet-master.zip TensorRT-8.2.5.1
挂载成功!!!
nfs 挂载会在每次重启后失效,需要手动重新挂载,这样很麻烦,故需要开机自动挂载
3.1 创建开机启动的脚本文件
$ cd /etc/init.d
$ sudo vim mount_nfs.sh
添加内容
#!/bin/bash
### BEGIN INIT INFO
# Provides: svnd.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the svnd.sh daemon
# Description: starts svnd.sh using starts-stop-deamon
### END INIT INFO
sudo mount -t nfs -o nolock 192.168.2.168:/media/xxx/wxf /home/xxx/mount
3.2 修改脚本的权限
sudo chmod 777 mount_nfs.sh
3.3 将脚本添加到开机执行的队列中
sudo update-rc.d mount_nfs.sh defaults 90
3.4 重启查看是否挂载成功