两台计算机之间可以自动安装 NFS 共享吗?

两台计算机之间可以自动安装 NFS 共享吗?

我在网络上有一台台式机和一台笔记本电脑。每台电脑的 fstab 都在另一台电脑上挂载了 NFS 共享,因此我可以访问其中任意一台电脑上的文件。如果台式机先启动,然后我打开笔记本电脑,笔记本电脑就会挂载台式机上的共享。但台式机显然不会挂载笔记本电脑上的共享,因为台式机启动时笔记本电脑还没有开机。或者反之亦然,这取决于哪台电脑先启动。所以每天我都必须sudo mount -a打开先启动的那台电脑,也就是没有挂载共享的那台电脑。有没有办法让一台电脑看到另一台电脑连上网络并挂载共享?还是我必须继续手动挂载其中一台电脑?

答案1

关于根据网络状态运行脚本的一个问题这颗小宝石

1. 简介

autofs 是一个根据需要自动挂载目录的程序。自动挂载仅在访问时挂载,并在一段时间不活动后卸载。​​因此,与通过 fstab 进行静态挂载相比,自动挂载 NFS/Samba 共享可节省带宽并提供更好的整体性能。

sudo apt-get install autofs

4.1. 编辑 /etc/auto.master

以下步骤在 /nfs 创建一个挂载点,并根据 /etc/auto.nfs 中指定的设置(我们将在下一步中创建)对其进行配置。

在终端中输入以下内容:

sudo nano /etc/auto.master

在 /etc/auto.master 末尾添加以下行:

/nfs /etc/auto.nfs

4.2. 创建 /etc/auto.nfs

现在我们将创建包含自动挂载程序映射的文件:

$ sudo nano /etc/auto.nfs

此文件应为每个 NFS 共享包含单独的一行。行的格式为 {mount point} [{mount options}] {location}。如果您之前已在 /etc/fstab 中配置静态挂载,则参考这些配置可能会有所帮助。请记住,此处指定的挂载点将相对于 /etc/auto.master 中给出的挂载点。

以下行适用于使用旧版本 NFS(版本 4 之前)的共享:

server   server:/

这将在 /nfs/server/ 创建一个新的挂载点,并挂载主机名是 server 的机器导出的 NFS 根目录。

4.2.1. NFSv4

如果您的 NFS 共享使用 NFSv4,则需要将此情况告知 autofs。在这种情况下,上述行将显示如下内容:

server   -fstype=nfs4   server:/

客户端需要对 /etc/default/nfs-common 进行相同的更改才能连接到 NFSv4 服务器。

In /etc/default/nfs-common we set:

NEED_IDMAPD=yes
NEED_GSSD=no # no is default

4.3. 卸载静态挂载并编辑 /etc/fstab

如果您之前已将 NFS 共享配置为静态挂载,那么现在是时候卸载它们了。

$ sudo umount /server

接下来,删除(或注释掉)/etc/fstab 中的相应条目。

#server:/ /server/ nfs defaults 0 0

4.4. 重新加载 /etc/init.d/autofs

输入更改后,运行以下命令重新加载 autofs:

$ sudo reload autofs

如果在旧版 Ubuntu 上工作,并且该方法不起作用,请尝试:

$ sudo /etc/init.d/autofs reload

如果在 Natty 中工作,并且不起作用,请尝试:

$ sudo /etc/init.d/autofs restart

4.5. 确保它能正常工作

为了访问共享并验证它是否正常工作,请在 shell 中输入以下内容:

$ ls /nfs/server

如果您看到 NFS 共享已列出,恭喜您!您已通过 autofs 成功挂载 NFS!如果您想了解更多高级信息,请继续阅读。

相关内容