如果NFS服务器暂时不可用或者在系统启动时它不可达,那么在 /etc/fstab 中简单配置的自动挂载将不会起作用。这种情况下,你可能需要一个更为动态的解决方案来监控NFS服务器的可用性,并在它重新恢复服务时自动挂载共享目录。
你可以使用 autofs 来实现这个目标。autofs 是一种Linux服务,它允许你在访问时自动挂载文件系统,并在一段时间的不活动后自动卸载它们。这对于网络文件系统(如NFS)特别有用。
下面将通过一个安装使用实例,来介绍如何使用 autofs 来动态挂载NFS共享目录。在这个例子中,我们将会把来自 192.168.0.168 的三个NFS共享目录(电影、剧集、music)挂载到本地服务器(movies、tvshows、music)目录。此类场景适用于PVE宿主机黑群晖作为NFS服务器+LXC容器运行Jellyfin/Emby实现硬解播放的需求。当然 autofs 带给家庭、企业的便利使用不限于此,请自行探索。
配置教程
以下安装配置过程在 NFS 客户端(这里指 PVE LXC容器)主机上进行,具体安装步骤如下:
安装autofs和nfs客户端软件:
如果你的系统还没有安装autofs和NFS客户端软件,你可以使用包管理器来安装。对于基于Debian的系统(如Ubuntu),使用以下命令:
sudo apt-get update sudo apt-get install autofs nfs-common对于基于RHEL的系统(如CentOS),使用以下命令:
sudo yum install autofs nfs-utils配置autofs:
创建一个新的auto.master配置文件或编辑现有的文件。这个文件通常位于/etc/auto.master。在这个文件中,你需要指定挂载点和map文件。
使用文本编辑器打开auto.master文件:
sudo nano /etc/auto.master在文件中,添加以下内容:
/mnt /etc/auto.media --timeout=300 --ghost这告诉autofs,我们将使用一个叫做
auto.media的map文件来配置在/mnt目录下的挂载点,并设置超时为300秒。选项--ghost意味着在文件系统实际被请求之前,都可以看到预期的目录结构。而默认情况只有成功挂载才会显示目录结构。保存并关闭文件。
创建和配置map文件:
创建一个新的map文件,我们将其命名为
auto.media。使用文本编辑器创建并打开这个文件:
sudo nano /etc/auto.media添加以下内容到这个文件中:
# 媒体文件推荐的挂载选项 (nfsvers指NFS服务端版本,请根据自己情况修改) movies -fstype=nfs,rw,async,noatime,nfsvers=4,soft,timeo=600,retrans=3 192.168.0.168:/volume1/video/电影 tvshows -fstype=nfs,rw,async,noatime,nfsvers=4,soft,timeo=600,retrans=3 192.168.0.168:/volume1/video/剧集 music -fstype=nfs,rw,async,noatime,nfsvers=4,soft,timeo=600,retrans=3 192.168.0.168:/volume1/music保存并关闭文件。
设置适当的权限:
sudo chmod 644 /etc/auto.media重启autofs服务:
#基于Debian的系统 sudo service autofs restart #基于RHEL的系统 sudo systemctl restart autofs测试挂载点:
可使用
ls命令来分别查看这些目录的内容。ls /mnt/movies ls /mnt/tvshows ls /mnt/music
注意事项
autofs服务会在访问这些目录时自动挂载它们,并在一段时间不使用后自动卸载。你设置的超时时间是决定卸载的时间。- 当你使用
autofs 来管理NFS挂载时,你应该将相关的挂载配置从/etc/fstab 文件中移除,以避免可能的问题,并只通过autofs 来管理这些挂载。
写在最后
总结一下,通过使用 autofs,你可以确保即使在系统启动时NFS服务器不可用,或者在系统运行时NFS服务器变得不可用的情况下,NFS共享也会在服务器恢复后自动挂载。这为网络文件系统提供了一个更加健壮和灵活的自动挂载解决方案。

