1:查看设备是否支持nfs功能
命令: cat /proc/filesystem
若有一行为 nodev nfs,则开发板Linux内核支持NFS,反之需要配置内核
[root@GEC6818 ~]#cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev tmpfs
nodev devtmpfs
nodev binfmt_misc
nodev debugfs
nodev sockfs
nodev pipefs
nodev anon_inodefs
nodev rpc_pipefs
nodev devpts
ext2
ext3
ext4
nodev ramfs
vfat
msdos
iso9660
"nodev nfs"
nodev nfs4
ntfs
nodev autofs
fuseblk
nodev fuse
nodev fusectl
可以看到我的开发板已经支持nfs服务。如果没有这个选项,请配置内核以支持nfs服务。
2.设置windows
打开网络适配器。找到开发板与电脑相连的网口。我的网口是以太网2.
双击internet协议版本 4(TCP/IPV4),设置IP地址。
这里我设置了IP地址为:192.168.137.1
2.设置ubuntu
选择桥接模式,并双击选择配置。
配置为桥接模式。 开启虚拟机即可。
选择桥接模式。并且桥接到开发板跟电脑相连的网卡。(我的电脑用wifi上网,开发板用网线与电脑的网口相连)
注意:这里的虚拟网络配置我的可以在ubuntu开启后配置也行。但是你的ubuntu可能不行。这时候要在开启ubuntu之前要配置好。
打开电脑端左下角的搜索,配置跟上面的ubuntu配置一样。
接着可以设置ubuntu的IP地址了。
我这里设置为:192.168.137.131
先安装并开启 Ubuntu 中的 NFS 服务,使用如下命令安装 NFS 服务:
sudo apt-get install nfs-kernel-server rpcbind
保证ubuntu能够上网。
接着配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports:
sudo vi /etc/exports
打开/etc/exports 以后在最后面添加如下所示内容:
gec@ubuntu:~$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/gec/linux/nfs *(rw,nohide,insecure,no_subtree_check,sync,no_root_squash)
重启 NFS 服务,使用命令如下:
sudo /etc/init.d/nfs-kernel-server restart
最后挂载文件。
gec@ubuntu:~$ sudo mount -t nfs -o nolock,vers=3 192.168.137.131:/home/gec/linux/nfs /mnt
在家目录创建linux/nfs文件夹,用于存放要挂载的文件。
3.设置开发板
[root@GEC6818 ~]#ifconfig eth0 192.168.137.100
设置开发板的IP为:192.168.137.100
#ubuntu 上ping 开发板
gec@ubuntu:~$ ping 192.168.137.100
PING 192.168.137.100 (192.168.137.100) 56(84) bytes of data.
64 bytes from 192.168.137.100: icmp_seq=1 ttl=64 time=1.96 ms
64 bytes from 192.168.137.100: icmp_seq=2 ttl=64 time=0.927 ms
64 bytes from 192.168.137.100: icmp_seq=3 ttl=64 time=0.911 ms
64 bytes from 192.168.137.100: icmp_seq=4 ttl=64 time=0.968 ms
64 bytes from 192.168.137.100: icmp_seq=5 ttl=64 time=0.943 ms
^C
--- 192.168.137.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 0.911/1.143/1.969/0.414 ms
#电脑端ping 开发板
C:\Users\lenovo>ping 192.168.137.100
正在 Ping 192.168.137.100 具有 32 字节的数据:
来自 192.168.137.100 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.137.100 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.137.100 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.137.100 的回复: 字节=32 时间<1ms TTL=64
192.168.137.100 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms
#电脑端 ping ubuntu
C:\Users\lenovo>ping 192.168.137.131
正在 Ping 192.168.137.131 具有 32 字节的数据:
来自 192.168.137.131 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.137.131 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.137.131 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.137.131 的回复: 字节=32 时间<1ms TTL=64
192.168.137.131 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 1ms,平均 = 0ms
这里我的ubuntu ping不了电脑,但是电脑可以ping ubuntu。同时我的开发板都不能ping ubuntu 和电脑端。。不要紧,只有一个ping 的通即可。这时开发板,电脑,ubuntu三者可以互ping 啦。。
前面我们在ubuntu已经挂载了目录。
即/home/gec/linux/nfs
这时我们可以在开发板上挂载这个目录了。
[root@GEC6818 ~]#mount -t nfs -o nolock,vers=3 192.168.137.131:/home/gec/linux/n
fs /mnt
输入以上命令即可。。
4,。验证一下
gec@ubuntu:~$ cd /home/gec/linux/nfs/
gec@ubuntu:~/linux/nfs$ ls
a.txt
gec@ubuntu:~/linux/nfs$ cat a.txt
chen jian hua
ubuntu进入/home/gec/linux/nfs
目录,有一个文件夹。叫a.txt,内容为chen jian hua
[root@GEC6818 ~]#cd /mnt/
[root@GEC6818 /mnt]#ls
a.txt
[root@GEC6818 /mnt]#cat a.txt
chen jian hua
开发板进入/mnt
目录下,可以发现有a.txt,这时我们修改一个内容为
[root@GEC6818 /mnt]#cat a.txt
chen jian hua
haha hahha haha
这时我们进去ubuntu的/home/gec/linux/nfs目录查看a.txt内容。
gec@ubuntu:~/linux/nfs$ cat a.txt
chen jian hua
haha hahha haha
发现内容已经更改了。