如何在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共享:
首先,创建一个目录,作为远程NFS共享的挂载点:
sudo mkdir /var/backups
挂载点是本地机器上的一个目录,NFS共享将被挂载。
通过以root身份或具有sudo权限的用户运行以下命令来挂载NFS共享:
sudo mount -t nfs 10.10.0.10:/backups /var/backups
其中
10.10.0.10
是NFS服务器的IP地址,/backup
是服务器正在导出的目录,/var/backups
是本地的挂载点。如果成功,则不产生任何输出。
如果您想指定额外的挂载选项,请使用
-o
选项。多个选项可以以逗号分隔的列表形式提供。要获得所有挂载选项的列表,请在你的终端输入man mount
。要验证远程NFS卷是否被成功挂载,请使用
mount
或df -h
命令。
一旦共享被挂载,挂载点就成为被挂载的文件系统的根目录。
当你手动挂载共享时,NFS共享的挂载在重启后并不持久。
用/etc/fstab
自动挂载NFS文件系统
一般来说,你会希望在系统启动时自动挂载远程NFS目录。
/etc/fstab
文件包含一个条目列表,它定义了在系统启动时如何挂载文件系统以及挂载什么文件系统。
为了在你的Linux系统启动时自动挂载一个NFS共享,在/etc/fstab
文件中添加一行。该行必须包括NFS服务器的主机名或IP地址、导出的目录以及本地机器上的挂载点。
使用下面的程序在Linux系统上自动挂载NFS共享:
为远程NFS共享设置一个挂载点:
sudo mkdir /var/backups
用你的文本编辑器打开
/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
是本地的挂载点。以下列形式之一运行
mount
命令,以挂载NFS共享:mount /var/backups mount 10.10.0.10:/backups
mount
命令,将读取/etc/fstab
的内容,并挂载到共享中。下次你重启系统时,NFS共享将被自动挂载。
解除对NFS文件系统的挂载
umount
命令从目录树中分离(取消挂载)已挂载的文件系统。
要分离一个已挂载的NFS共享,请使用umount
命令,后面跟上它被挂载的目录或远程共享:
umount 10.10.0.10:/backups
umount /var/backups
如果NFS挂载在fstab
文件中有一个条目,请将其删除。
当挂载的卷正在使用时,umount
命令将无法分离共享。要想知道哪些进程正在访问NFS共享,请使用fuser
命令:
fuser -m MOUNT_POINT
一旦你找到了这些进程,你就可以用kill
命令停止它们,并卸载NFS共享。
如果你在卸载共享时仍有问题,请使用 -l
(--lazy
) 选项,它允许你在一个繁忙的文件系统不再繁忙时立即卸载该系统。
umount -l MOUNT_POINT
如果远程NFS系统无法到达,使用-f
(--force
)选项来强制卸载。
umount -f MOUNT_POINT
使用 force 选项通常不是一个好主意,因为它可能会损坏文件系统上的数据。
总结
我们已经向你展示了如何挂载和卸载一个远程NFS共享。同样的命令适用于任何Linux发行版,包括Ubuntu, CentOS, RHEL, Debian和Linux Mint。
如果你有任何问题,请随时留言评论。