如何在 Linux 中挂载 NFS 共享

网络文件系统 (NFS) 是一种分布式文件系统协议,允许您通过网络共享远程目录。使用 NFS ,您可以在系统上挂载远程目录,并使用远程文件,就像它们是本地文件一样。

在 Linux 和 UNIX 操作系统上,您可以使用该 mount 命令在本地目录树中的特定挂载点上挂载共享 NFS 目录。

在本教程中,我们将向您展示如何在 Linux 机器上手动和自动挂载 NFS 共享。

挂载 NFS 客户端软件包

要在 Linux 系统上挂载 NFS 共享,首先需要挂载 NFS 客户端软件包。软件包名称因 Linux 发行版而异。

  • 在 Ubuntu 和 Debian 上挂载 NFS 客户端:

    sudo apt update
    sudo apt install nfs-common
    
  • 在 CentOS 和 Fedora 上挂载 NFS 客户端:

    sudo yum install nfs-utils
    

手动挂载 NFS 文件系统

挂载远程 NFS 共享与挂载常规文件系统相同。

要在给定挂载点上挂载 NFS 文件系统,请使用 mount 命令,格式如下:

mount [OPTION...] NFS_SERVER:EXPORTED_DIRECTORY MOUNT_POINT

使用以下步骤在 Linux 系统上手动挂载远程 NFS 共享:

  1. 首先,创建一个目录作为远程 NFS 共享的挂载点:

    sudo mkdir /var/backups
    

    挂载点是要挂载 NFS 共享的本地计算机上的目录。

  2. 通过 root 身份或具有 sudo 权限的用户运行以下命令来挂载 NFS 共享:

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

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

    成功时,不会产生任何输出。

    如果要指定其他 mount 选项,请使用该 -o 选项。可以提供多个选项作为逗号分隔列表。在你的终端中键入 man mount 获取所有挂载选项的列表。

  3. 要验证是否已成功挂载远程 NFS 卷,请使用 mountdf -h 命令。

挂载成功后,挂载点将成为已挂载文件系统的根目录。

手动挂载共享时, NFS 共享挂载在重新启动后不会保留。

自动挂载 NFS 文件系统

通常,您需要在系统引导时自动挂载远程 NFS 目录。

/etc/fstab 文件包含一个条目列表,用于定义在系统启动时将如何以及将挂载哪些文件系统。

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

使用以下过程在 Linux 系统上自动挂载 NFS 共享:

  1. 为远程 NFS 共享设置挂载点:

    sudo mkdir /var/backups
    
  2. 使用文本编辑器打开文件 /etc/fstab

    sudo nano /etc/fstab
    

    将以下行添加到 /etc/fstab 文件中:

    # <file system>     <dir>       <type>   <options>   <dump>	 <pass> 
    10.10.0.10:/backups /var/backups  nfs      defaults    0       0
    

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

  3. 运行以下列表中任一 mount 命令挂载 NFS 共享:

    mount /var/backups
    mount 10.10.0.10:/backups
    

    mount 命令将读取 /etc/fstab 并挂载共享的内容。

    下次重新引导系统时,将自动挂载 NFS 共享。

卸载 NFS 文件系统

umount 命令从目录树中卸载已挂载的文件系统。

要卸载已挂载的 NFS 共享,请使用 umount 命令,后跟已挂载的目录或远程共享:

umount 10.10.0.10:/backupsumount /var/backups

如果 fstab 文件中有 NFS 挂载的行条目,请将其删除。

umount 挂载的卷正在使用时,该命令将无法卸载共享。要找出正在访问 NFS 共享的进程,请使用以下 fuser 命令:

fuser -m MOUNT_POINT

找到进程后,可以使用该 kill 命令停止它们并卸载 NFS 共享。

如果您仍然无法卸载共享,请使用 -l(--lazy) 选项,该选项允许您在繁忙的文件系统不再忙时立即卸载它。

umount -l MOUNT_POINT

如果远程 NFS 系统无法访问,请使用 -f(--force) 选项强制卸载。

umount -f MOUNT_POINT

使用强制选项通常不是一个好主意,因为它可能会破坏文件系统上的数据。

结论

我们已经向您展示了如何挂载和卸载远程 NFS 共享。相同的命令适用于任何 Linux 发行版,包括 Ubuntu , CentOS , RHEL , Debian 和 Linux Mint 。