在源码路径下输入make menuconfig会出现内核的配置界面
Networking support ---> Networking options --->TCP/IP networking ---> IP: kernel level autoconfiguration
File systems ---> Networking File Systems ---> NFS client support(子级都选上)
File systems ---> Networking File Systems ---> Root file system on NFS
在linux服务端安装nfs服务
sudo apt-get install nfs-kernel-server
在nfs服务端的/etc/exports文件中添加一行:
/home/acat/aaa 172.213.0.18/24(rw,async,no_root_squash) *(rw)
这里的172.213.0.18是允许进行访问的客户端的ip
root@qemux86:~# ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:00:12:34:56
inet addr:172.213.0.18 Bcast:172.213.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:328 errors:0 dropped:0 overruns:0 frame:0
TX packets:370 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:32146 (31.3 KiB) TX bytes:32744 (31.9 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1%134535719/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:64 errors:0 dropped:0 overruns:0 frame:0
TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3200 (3.1 KiB) TX bytes:3200 (3.1 KiB)
然后重新启动nfs服务
sudo systemctl restart nfs-kernel-server.service
使用nfs客户端连接nfs服务端
这里使用的nfs客户端正是一个busybox系统
这里服务端的ip是192.168.43.92
wlp0s20f3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.43.92 netmask 255.255.255.0 broadcast 192.168.43.255
inet6 2408:84ee:1c:24bd:95e3:282c:91cc:513e prefixlen 64 scopeid 0x0<g
客户端连接服务端(mount -t nfs 192.168.43.92:/home/acat/aaa /home/root/hhh/)的时候可能会报错:svc: failed to register lockdv1 RPC service (errno 111).
root@qemux86:~# mount -t nfs 192.168.43.92:/home/acat/aaa /home/root/hhh/
svc: failed to register lockdv1 RPC service (errno 111).
mount: mounting 192.168.43.92:/home/acat/aaa on /home/root/hhh/ failed: Connection refused
这时,我们使用另一种参数来进行连接,即把ip地址前面的mount -t nfs替换为
mount -o port=2049,nolock,proto=tcp -t nfs
root@qemux86:~# mkdir bbb
root@qemux86:~# mount -o port=2049,nolock,proto=tcp -t nfs 192.168.43.92:/home/acat/aaa /home/root/bbb/
root@qemux86:~# ls
bbb hhh skels
root@qemux86:~# cd bbb/
root@qemux86:~/bbb# ls
a.c
root@qemux86:~/bbb#
取消挂载文件系统的时候一条命令就行了
root@qemux86:~# umount bbb