我使用autofs在文件夹/ mnt / iso中挂载一些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/
完成autofstesting后。 我强制unmount所有的iso文件夹:
# umount -l /mnt/iso/*
然后在/ etc / exports中输出/ mnt / iso:
/mnt/iso 192.168.0.0/24(ro,insecure,crossmnt,all_squash)
NFS服务也正常工作。 我可以通过nfs客户端从另一台机器挂载/ mnt / iso:
# mount -t nfs4 <nfs-server>:/mnt/iso /mnt
我可以在/ mnt /文件夹中看到所有的iso挂载:
# 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/*
提示
ls: cannot access /mnt/fedora.13/*: No such file or directory
我成功列出nfs客户端机器中的iso文件夹的唯一情况是使用以下步骤:
从客户机卸载nfs共享:
# umount /mnt
使用ls显示nfs服务器中/ mnt / iso的所有子树:
# ls /mnt/iso/*
autofs会自动挂载所有的iso文件。
在客户机上挂载nfs文件夹:
# mount -t nfs4 <nfs-server>:/mnt/iso /mnt
列出/ mnt的子树:
# ls /mnt/*
然后你可以在nfs客户端机器上看到所有的内容。
但是,这样做打破了autofs的目的,因为我需要先在autofs机器中显示一次内容。
有没有人有任何想法? 我正在使用以下内容:
我想你在这里有一个问题,那就是当你使用NFS导出一个文件系统的时候,它会locking源代码目录。 你试图在那个时候甚至没有可用的源码目录,只能在稍后通过挂载来放置。
这是行不通的,因为一旦你给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导出它们。