1、安装 NFS 确保Linux联网
sudo apt-get install nfs-kernel-server
2、创建一个目录,并在该文件下创建一个文件,用于测试nfs。
sudo mkdir /nfs
sudo mkdir /nfs/rootfs
cd /nfs/rootfs/
sudo vim test.txt
在里面随便加点内容 esc :wq 保存退出就可以了
3、配置/etc/exports 文件内容
末行添加
/nfs/rootfs *(rw,sync,no_subtree_check,no_root_squash)
解释:
这是 NFS (Network File System) 挂载选项的一部分,通常在 /etc/fstab
文件中定义,用于配置 Linux 系统如何挂载网络文件系统。下面是对这个挂载选项每一部分的解释:
-
/nfs/rootfs
:这是挂载点的路径,即 NFS 文件系统在本地系统上被挂载的位置。在这个例子中,NFS 文件系统将被挂载到本地的/nfs/rootfs
目录。 -
*
:这个星号*
通常表示 NFS 服务器的地址。在/etc/fstab
文件中,你可能会看到 IP 地址或者主机名代替星号。星号在这里可能是用来占位,实际的服务器地址需要被替换为具体的值。使用*的话就是不限定客户端 -
(rw,sync,no_subtree_check,no_root_squash)
:这是一组挂载选项,用于控制 NFS 挂载的行为:-
rw
:表示挂载的文件系统是可读写的(read-write)。 -
sync
:表示所有操作都将同步执行。也就是说,当数据被写入时,它会立即被写入磁盘,而不是被缓存。 -
no_subtree_check
:通常 NFS 会检查挂载点是否是文件系统的子树。如果设置了no_subtree_check
,这个检查会被跳过。这可以提高性能,但可能会牺牲一些安全性。 -
no_root_squash
:在 NFS 中,root_squash
是一种安全特性,它将远程 root 用户的权限降低到匿名用户。no_root_squash
选项会禁用这种行为,允许远程 root 用户保持其 root 权限。
-
4. Ubuntu17.10及以后版本需要增加以下配置,因为新版本Ubuntu只支持nfs 3和nfs 4,而uboot默 认使用nfs 2 linux@ubuntu:~ $
sudo vi /etc/default/nfs-kernel-server
//下面是添加的内容RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
5. 重启NFS服务。
sudo service nfs-kernel-server restart
6. 使用下面的命令,将共享目录挂在到/mnt目录下,并修文件。
sudo mount -t nfs localhost:/nfs/rootfs /mnt
vim /mnt/test.txt
如果提示权限不够 需要给test.txt 文件权限 我这里给的是最高权限
sudo chmod 0777 test.txt 在/nfs/rootfs 这个文件路径下
7. 使用下面的命令,查看原来的文件已经被修改。
cat /nfs/rootfs/test.txt
8. 使用下面的命令取消挂载。
sudo umount /mnt