NFS网络文件系统是一种分布式文件系统协议,使您可以通过网络共享远程目录。

使用NFS,您可以在系统上挂载远程计算机目录,并像对待本地文件一样使用远程计算机文件。

NFS协议是未加密的协议,并且与Samba不同,它不提供用户身份验证。使用客户端IP地址或主机名来限制客户端对服务器的访问。

在本教程中,我们将介绍如何在Linux 挂载NFS共享。要在Linux系统挂载NFS共享,您首先需要安装NFS客户端。客户端包名称在Linux发行版之间有所不同。

安装NFS客户端

在客户端计算机,我们仅需要安装挂载远程NFS文件系统所需的软件工具。

如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux mint。请运行命令sudo apt update && sudo apt install nfs-common安装NFS文件系统挂载软件。

如果你的计算机运行的是基于RedHat的Linux发行版,例如CentOS,Fedora。请运行命令sudo yum install nfs-utils安装NFS文件系统挂载软件。

sudo apt update && sudo apt install nfs-common
sudo yum install nfs-utils

挂载 NFS文件系统

挂载远程NFS共享与挂载常见文件系统一样。要挂载NFS文件系统,请使用mount命令mount [OPTION...] NFS_SERVER:EXPORTED_DIRECTORY MOUNT_POINT

NFS_SERVER是NFS服务器的地址。EXPORTED_DIRECTORY是NFS导出的目录。最后是挂载点MOUNT_POINT,挂载点是本地计算机的目录。

在Linux系统挂载NFS共享目录。首先,创建一个目录作为NFS共享目录的挂载点,在教程中我们将创建挂载点/var/backups运行命令sudo mkdir /var/backups

要本地计算机挂载NFS共享目录,你需要以root或具有sudo权限的用户登录。

sudo mount -t nfs 10.10.0.10:/backups /var/backups命令将会挂载NFS共享目录/backups,挂载点是/var/backups。成功时,不会产生任何输出。

sudo mkdir /var/backups 
sudo mount -t nfs 10.10.0.10:/backups /var/backups

如果要指定其他挂载参数,请使用-o选项指定多个参数,多个参数之间使用逗号分隔。

如果需要获取所有的挂载参数,请在终端运行命令man mount。要验证NFS共享目录是否已成功挂载,请运行mountdf -h命令

当NFS共享目录挂载成功后,挂载点就会成为本地文件系统的目录。此种方式的挂载NFS文件系统时,重新启动本地计算机后你需要再次运行mount命令重新挂载。

df -h

/etc/fstab 自动挂载NFS文件系统

通常,您需要在本地计算机启动时自动挂载远程NFS共享目录。/etc/fstab文件包含一个挂载点列表,这些条目定义在系统启动时将在何处以及如何挂载文件系统。

要在Linux系统启动时自动挂载NFS共享,请在/etc/fstab文件中添加一行。该行必须包含NFS服务器的主机名或IP地址,NFS共享目录以及本地计算机的挂载点。

首先在本地计算机创建NFS共享目录的挂载点,运行命令sudo mkdir /var/backups

然后使用喜欢的文本编辑器打开/etc/fstab文件。在本教程中,我们将使用vim编辑器打开文件/etc/fstab

10.10.0.10是NFS服务器IP地址,/backup是NFS共享目录,/var/backups是本地挂载点。

编辑完成后,保存文件并退出vim编辑器。然后你只需运行mount命令即可挂载NFS文件系统。

mount命令将读取/etc/fstab文件的记录并挂载未挂载的记录。下次重新引导系统时,将会自动挂载NFS共享目录。

sudo mkdir /var/backups
sudo vim /etc/fstab
sudo mount
# <file system>     <dir>       <type>   <options>   <dump>	<pass>
10.10.0.10:/backups /var/backups  nfs      defaults    0       0
/etc/fstab

卸载NFS共享文件系统

umount命令从目录树中卸载已挂载的文件系统。要卸载已挂载的NFS共享,请使用umount命令,后跟已挂载的目录或NFS共享目录。

如果/etc/fstab文件中配置自动挂载NFS共享目录,请将其删除或者在该行的开头添加#注释掉。

例如本教程示例,可以运行命令umount 10.10.0.10:/backupsumount /var/backups卸载NFS文件系统。

umount 10.10.0.10:/backups
umount /var/backups

如果你在卸载NFS共享时,遇到文件系统繁忙或者其它进程访问着NFS共享。你可能需要找到哪些进程正在访问NFS共享。

命令fuser -m MOUNT_POINT可帮助找我们到正在访问NFS共享目录的进程,MOUNT_POINT是挂载点。

在本教程示例挂载点是/var/backups ,则fuser查找进程的命令是fuser -m /var/backups

fuser -m /var/backups

找到正在访问NFS共享目录的进程后,可以使用kill命令将其终止,然后卸载NFS共享。

如果仍然存在卸载的问题,请使用umount命令的-l/--lazy选项,该选项可让您在文件系统不再繁忙后立即将其卸载。

如果无法访问远程NFS共享,请使用-f/--force选项强制卸载。通常,使用强制选项不是一个好主意,因为它可能会损坏文件系统的数据。

结论

我们已向您展示如何挂载和卸载远程NFS共享。相同的命令适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian和Linux Mint。如有任何疑问,请随时发表评论。