Ubuntu 20.04 搭建NFS文件系统

简介: Ubuntu 20.04 搭建NFS文件系统

关于 NFS文件系统 释义请转至笔记:NFS文件系统


安装NFS服务

$ sudo apt install nfs-kernel-server    # 安装
$ sudo systemctl start nfs-kernel-server.service    # 启动点击复制复制失败已复制


服务配置

默认情况下, NFS 服务器上定义了某个共享目录,则该目录及其子目录下的所有文件都可被访问。 出于对安全的考虑,客户端任何需要超级用户(即 root 用户, UID=0 & GID=0 )权限的文件操作都默认映射到 UID=65534GID=65534 的用户,即 Ubuntu 系统中的 nobody:nogroup


例如客户端使用 root 权限在挂载的共享目录中创建文件时,该文件的属主和属组自动变为 nobody:nogroup ,而非 root:root


创建共享目录

$ sudo mkdir -p /var/nfs/gernel
$ sudo mkdir -p /var/nfs/public
$ sudo chown nobody:nogroup /var/nfs/gernel点击复制复制失败已复制


修改 /etc/exports 文件

为了使 NFS 服务器定义的共享文件可被指定的客户端主机访问,需要在服务器端的 /etc/exports 文件中添加对应的记录。 该文件的格式如下:

Directory Host(Options ...) Host(Options) #comment点击复制复制失败已复制


关于 /etc/exports 文件的详细语法格式可参考 man exports


示例:

/var/nfs/gernel  192.168.56.0/24(rw,insecure,sync,no_subtree_check)
/var/nfs/public  *(ro,insecure,sync,no_subtree_check)
/home/starky 192.168.56.1(rw,insecure,no_root_squash,sync,no_wdelay,no_subtree_check)点击复制复制失败已复制


配置解释:

  • 第一条纪录表示 192.168.56.0/24 子网中的所有主机都可挂载 var/nfs/gernel 目录并拥有读写(rw)权限
  • 第二条纪录表示所有主机都可挂载 /var/nfs/public 目录且拥有只读(ro)权限
  • 第三条纪录表示客户端 IP 地址为 192.168.56.1 的主机可以挂载 /home/starky 目录并拥有读写权限,而且任何 root 权限(UID=0 , GID=0)的文件操作都不默认映射给 nobody:nogroup,而保持属主(组)仍为 rootno_root_squash
  • insecure 选项:允许通过任意端口的远程访问
  • sync 选项:强制NFS 服务器在响应请求之前将文件的改动写入磁盘(强调客户端和服务端文件内容的一致性,但会降低文件操作的效率
  • no_wdelay: 若有写操作则立即执行,应与sync配合使用
  • no_subtree_check 选项:禁用 subtree_checksubtree_check 用来设置服务器在收到请求时,检查该文件是否在指定目录结构中依旧可用(该选项会在某些情况下发生错误:重命名某文件的同时,该文件在客户端打开)。


更新配置使其生效

$ sudo exportfs -a点击复制复制失败已复制


客户端挂载

查看可用共享目录

$ showmount -e 192.168.56.102
Exports list on 192.168.56.102:
/home/starky                        192.168.56.1
/var/nfs/public                     *
/var/nfs/gernel                     192.168.56.0/24点击复制复制失败已复制


创建挂载点

$ sudo mkdir -p /mnt/nfs/gernel
$ sudo mkdir -p /mnt/nfs/public
$ sudo mkdir -p /mnt/nfs/starky点击复制复制失败已复制


挂载远程目录

$ sudo mount 192.168.56.102:/var/nfs/gernel /mnt/nfs/gernel
$ sudo mount 192.168.56.102:/var/nfs/public /mnt/nfs/public
$ sudo mount 192.168.56.102:/home/starky /mnt/nfs/starky点击复制复制失败已复制


系统启动时自动挂载共享目录

可编辑 /etc/fstab 文件令挂载共享目录的 mount 操作成为系统的固定配置(手动输入的 mount 命令属于临时挂载,重启会自动卸载),使得系统重启后可以自动挂载远程文件系统。


/etc/fstab 文件的示例内容如下:

# filesystem                    mountpoint       fstype  flags                        dump    fsck
192.168.56.102:/var/nfs/gernel  /mnt/nfs/gernel  nfs     rw,bg,intr,hard,nodev,nosuid 0       0
192.168.56.102:/var/nfs/public  /mnt/nfs/public  nfs4    ro,bg,intr,soft,nodev,nosuid 0       0
192.168.56.102:/home/starky     /mnt/nfs/starky  nfs     rw,bg,intr,hard
目录
相关文章
|
1月前
|
Ubuntu Linux Shell
使用ramdisk启动ubuntu文件系统(pivot_root)
使用ramdisk启动ubuntu文件系统(pivot_root)
|
2月前
|
存储 Ubuntu Linux
NFS服务部署全攻略:从零到一,轻松驾驭网络文件系统,让你的文件共享像飞一样畅快无阻!
【8月更文挑战第5天】NFS(网络文件系统)能让网络中的电脑无缝共享文件与目录。基于客户端-服务器模式,用户可像访问本地文件般透明操作远程文件。部署前需准备至少两台Linux机器:一台服务器,其余作客户端;确保已装NFS相关软件包且网络通畅。服务器端安装NFS服务与rpcbind,客户端安装nfs-utils。
62 4
|
2月前
|
Ubuntu 网络协议 搜索推荐
Ubuntu系统上定制文件系统
基于全志T507H处理器设计研发的OKT507-C开发板为例进行介绍。 Forlinx Desktop(Ubuntu)系统基于Ubuntu官方为嵌入式设备制作的操作系统-Lubuntu,该操作系统具备apt-get、ldd等常用的命令,若需要安装软件则直接apt-get在线安装即可,不需进行交叉编译移植等繁琐操作。但是每次重新烧写镜像之后,之前安装的软件就得重新安装,比较繁琐,如果需要批量操作则每块开发板都需要去apt-get安装,这样会大幅增加工作量,很不便于批量化生产。 能不能把软件一起打包到镜像呢?这样每次烧写完就不用再去apt-get在线安装了。答案当然是肯定的,这就涉及到文件系统
38 1
|
2月前
|
存储 Linux 网络安全
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
|
4月前
|
Ubuntu 网络协议 搜索推荐
在Ubuntu系统上定制文件系统
在Ubuntu上定制全志T507H开发板的文件系统,包括解压文件系统、安装QEMU、修改配置、挂载文件系统、安装软件及打包文件系统。使用QEMU模拟器来挂载和操作文件系统,通过`apt-get`在线安装所需软件,例如minicom。最后,将定制的文件系统打包成新的ISO镜像,用于烧录到开发板,实现预装软件的自动化流程,简化批量生产中的系统配置步骤。
51 7
|
4月前
|
Ubuntu
蓝易云 - 解决ubuntu文件系统变成只读的方法
请注意,上述操作可能会导致数据丢失,所以在操作前最好备份重要数据。如果问题依然存在,可能需要考虑更深入的系统诊断或者重装系统。
117 1
|
4月前
|
Ubuntu
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
ubuntu搭建NFS服务 磁盘共享 nfs 搭建
148 2
|
11月前
|
Linux
第八章 NFS文件系统:
第八章 NFS文件系统:
132 1
|
5月前
|
Ubuntu 网络协议 搜索推荐
Ubuntu系统上定制文件系统
基于全志T507H处理器设计研发的OKT507-C开发板为例进行介绍。 Forlinx Desktop(Ubuntu)系统基于Ubuntu官方为嵌入式设备制作的操作系统-Lubuntu,该操作系统具备apt-get、ldd等常用的命令,若需要安装软件则直接apt-get在线安装即可,不需进行交叉编译移植等繁琐操作。但是每次重新烧写镜像之后,之前安装的软件就得重新安装,比较繁琐,如果需要批量操作则每块开发板都需要去apt-get安装,这样会大幅增加工作量,很不便于批量化生产。 能不能把软件一起打包到镜像呢?这样每次烧写完就不用再去apt-get在线安装了。答案当然是肯定的,这就涉及到文件系统
35 0
|
5月前
|
Ubuntu 网络协议
开发板挂载 Ubuntu 的 NFS 目录
开发板挂载 Ubuntu 的 NFS 目录
下一篇
无影云桌面