jz2440使用深度系统挂载nfs网络文件系统

NFS(Network FileSystem,网络文件系统 ),是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样 。

NFS服务器所共享文件或目录记录在/etc/exports文件中。

** 安装NFS **

mkdir /home/topeet/nfs_root   # 新建目录, 目录随意起名字,此处为nfs_root, 此目录为nfs共享目录
 
 sudo apt install nfs-kernel-server # 安装nfs服务
 
 sudo echo "/home/topeet/nfs_root *(rw,sync,no_root_squash,no_subtree_check)" >> /etc/exports  # 编辑权限
 
    # /home/topeet/nfs_root    :nfs客户端加载目录
    # *                        :允许所有的网段访问,也可以使用具体的IP
    # rw                       :挂接此目录的客户端对该共享目录具有读写权限
    # sync                     :资料同步写入内存和硬盘
    # no_root_squash           :root用户具有对根目录的完全管理访问权限。
    # no_subtree_check         :不检查父目录的权限。
    # Tips: *和后面的括号之间无空格


 sudo service portmap start  # 重启portmap
 sudo /etc/init.d/rpcbind restart  # 重启rpcbind 服务
 sudo /etc/init.d/nfs-kernel-server restart  # 重启nfs服务
 
 
 sudo /etc/init.d/nfs-kernel-server status  # 测试nfs服务是否成功


# 在客户端挂载服务,如此客户端/mnt目录下的内容就是共享目录nfs下的内容
 sudo mount -t nfs ip:/home/topeet/nfs_root /mnt  # ip为nfs server的IP
 
 
 umount /mnt/  # 取消挂载
 
 
 ls /mnt  # 查看结果
 # 结果 bin  dev  etc  home  lib  linuxrc  mnt  proc  root  sbin  sys  tmp  usr 

但是今天使用的PC机是深度系统deepin-15.10.1,由于系统内核较新,导致使用正常的开发板挂载nfs网络文件系统失败,终端中报错:VFS: Unable to mount root fs via NFS, trying floppy。

查找相关的Ubuntu挂载网络文件系统的资料,资料发现从Ubuntu17.04开始,nfs默认只支持协议3和协议4,而kernel中默认支持协议2,所以才会出现挂载失败的情况,现有两种方法可以解决该问题:

1. 设置Ubuntu18.04系统中的nfs服务支持协议2,修改nfs配置文件 /etc/default/nfs-kernel-server,在文件末尾加入一句:RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"。因此,对于深度系统,也进行同样的修改,就搞定了。

2. 如果kernel版本较高支持nfs协议3的话,可以在Uboot传到Kernel的bootargs参数中加入'nfsvers=3',使kernel使用nfs协议3。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值