挂载到autofs挂载的NFS导出显示空内容

Modified on: Wed, 14 Aug 2019 04:00:02 +0800

我使用autofs在文件夹/ mnt / iso中安装一些iso文件:

Fedora-13-x86_64-DVD.iso Fedora-14-x86_64-DVD.iso Fedora-15-x86_64-DVD.iso

autofs工作正常,我可以看到iso文件的内容:

Fedora-13-x86_64-DVD.iso
Fedora-14-x86_64-DVD.iso
Fedora-15-x86_64-DVD.iso

完成autofs测试后。我强制卸载所有iso文件夹:

# ls /mnt/iso/fedora.13/
# ls /mnt/iso/fedora.14/
# ls /mnt/iso/fedora.15/

然后我在/ etc / exports中导出/ mnt / iso:

# umount -l /mnt/iso/*

NFS服务也正常运行。我可以通过nfs客户端从另一台机器挂载/ mnt / iso:

/mnt/iso        192.168.0.0/24(ro,insecure,crossmnt,all_squash)

我可以在/ mnt /文件夹中看到所有iso mount:

# mount -t nfs4 <nfs-server>:/mnt/iso /mnt

但是,当我尝试列出每个文件夹的内容时:

# ls /mnt
dr-xr-xr-x 15 nobody nobody 4096 2011-06-11 10:23 .
drwxr-xr-x 24 root   root   4096 2011-02-08 08:45 ..
drwxr-sr-x  7 nobody nobody 4096 2010-05-13 09:06 fedora.13
drwxr-sr-x  7 nobody nobody 4096 2010-10-22 02:32 fedora.14
drwxrwsr-x  7 nobody nobody 4096 2011-05-14 03:50 fedora.15

屏幕上没有显示任何内容。使用这样的命令

#  ls /mnt/fedora.13

提示

#  ls /mnt/fedora.13/*

我成功列出nfs客户端计算机中iso文件夹内容的唯一情况是使用以下步骤:

从客户端计算机卸载nfs共享:

ls: cannot access /mnt/fedora.13/*: No such file or directory

使用ls显示nfs服务器中/ mnt / iso的所有子树:

# umount /mnt

autofs将自动挂载所有iso文件。

在客户端计算机中挂载nfs文件夹:

# ls /mnt/iso/*

列出/ mnt:

的子树

# mount -t nfs4 <nfs-server>:/mnt/iso /mnt

然后,您可以看到nfs客户端计算机中的所有内容。

但是,这会破坏autofs的目的,因为我需要先在autofs机器中显示一次内容。

有没有人有任何想法?我使用以下内容:

  1. Fedora 13 x86_64
  2. 的autofs-5.0.5-28
  3. NFS-utils的-1.2.2.2-2
  4. 醇>

最佳答案

我认为你在马问题之前有一个购物车,因为当你使用NFS导出文件系统时,它会锁定到源目录。你试图在那个时候没有那个源目录,只能稍后通过mount安装一些东西。

这不起作用,因为一旦你给NFS一个共享内容的句柄,它总是会共享那个东西,即使它最终位于一层坐骑下面。

假设你设置了一个带有文件'frog'的目录并用nfs导出它:

[server] $ mkdir /mnt/test && touch /mnt/test/frog
[server] $ echo '/mnt/test *(ro)' >> /etc/exports
[server] $ exportfs -a

然后你将它安装在某个客户端上,你会看到文件frog如预期的那样:

[client] $ mkdir /mnt/test
[client] $ mount -t nfs server:/mnt/test /mnt/test
[client] $ ls $/mnt/test
frog

现在假设您在服务器上的该文件夹上安装了其他内容:

[server] $ mkdir /mnt/test2 && touch /mnt/test2/fish
[server] $ mount -o bind /mnt/test2 /mnt/test
[server] $ ls /mnt/test
fish

漂亮。但是nfs服务的是什么?

[client] $ ls /mnt/test
frog

你甚至无法在服务器上找到那个文件青蛙,因为它上面有一个不同的东西,但是NFS正在为层下服务!

简而言之,如果您想通过NFS导出文件系统,则需要在NFS启动时正确安装它们并导出它们,并且需要停在附近。导出使用autofs自行挂载的文件系统永远不会正常工作。您需要永久挂载这些ISO才能通过NFS导出它们。

作者:Caleb

相关问答

添加新评论