文章目录
系列文章推荐
Linux文件系统目录结构
Linux必备基础
Linux构建一个deb软件安装包
前言
本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。如果本篇对您有帮助的话希望能一键三连,万分感谢。
正文
NFS服务器是什么?
网络文件系统,类unix系统中使用
搭建NFS环境
Ubuntu安装NFS 服务端
sudo apt install nfs-kernel-server -y
NFS服务器安装完后,会在根目录下面的etc文件夹里面生成一个exports文件
配置NFS 服务端
(1)、首先需要创建共享文件夹
sudo mkdir -p /home/nfs/workdir //-p表示如果文件夹不存在则创建
(2)、打开/etc/exports文件,下面就可以在exports文件里面添加NFS服务器配置的内容
sudo vim /etc/exports
(3)、添加配置信息
/home/nfs/workdir *(rw,sync,no_root_squash)
- /home/embedfire/workdir:指定分享文件名。
- *:所有网段都可以读写
- rw:读写权限
- sync:资料同步写入到内存与硬盘中
- no_root_squash:root用户具有挂载目录的全部操作操作权限
(4)、更新exports配置
sudo exportfs -arv
该命令的参数说明如下:
• -a:全部 mount 或 umount 文件/etc/exports 中的内容。
• -r:重新 mount 文件/etc/exports 中的共享内容。
• -u:umount 目录。
• -v:在 exportfs 的时候,将详细的信息输出到屏幕上。
(5)、查看NFS共享情况
showmount -e
开发板安装NFS客户端
野火开发板执行以下命令
sudo apt install nfs-common -y
查看NFS服务器共享目录
查看野火开发板IP,192.168.31.88
查看Ubuntu虚拟机IP,192.168.40.128
发现问题,两个IP不在同一网段,开发板ping不通虚拟机,但是虚拟机能ping通开发板
问题原因:
虚拟机网络选用了NAT模式,应该选择桥接模式
选择桥接模式后,重启虚拟机,此时IP为192.168.31.195,与开发板变成同一网段
并且开发板能ping通主机了
关于虚拟机网络的三种模式可参考:
VMware虚拟机三种网络模式:桥接模式,NAT模式,仅主机模式
接着在开发板中执行以下命令,查看共享文件夹
showmount -e +”NFS服务端IP”
但是执行后又出现报错,找不到这条命令,尝试重装也不行
博主千辛万苦,最后重装了NFS客户端得以解决
重装后再执行就可以看到共享文件夹了,真是一波三折
此时使用type命令查看
挂载NFS文件系统
sudo mount -t nfs ”NFS服务端IP”:/home/nfs/workdir /mnt
- -t nfs:指定挂载的文件系统格式为nfs
- /home/nfs/workdir:指定NFS服务器的共享目录
- /mnt:本地挂载目录
进入开发板/mnt目录新建一个文件helloworld.txt
此时在虚拟机共享文件夹中可以看到此文件了
取消挂载
当客户机在网络上无法找到 NFS 共享的目录时,如开发主机关机时,在 NFS 的客户机的终端常常会输出一些提示,或在使用 ls 命令查看共享目录会导致长时间等待,这时可以对目录使用umount 命令取消挂载,示例如下:
# 以下命令在开发板上运行
sudo umount /mnt
使用该命令时以要取消挂载的目录作为参数即可,没有输出表示执行正常。如果在当前挂载的目录进行 umount 操作,会提示“device is busy”。建议取消挂载时,先切换到家目录“~”,在进行umount 操作。
启动服务器端的NFS服务器命令
sudo service nfs-kernel-server restart
客户端的挂载目录无法显示文件时
尝试客户端命令
查看NFS服务器上所有共享目录 showmount –e ip_address
查看服务器上哪些共享目录被挂载 showmount –d ip_address
尝试强制卸载
umount /本机挂载点 (加选项-f进行强制卸载)
然后重新挂载
sudo mount -t nfs ”NFS服务端IP”:/home/nfs/workdir /mnt