我使用autofs在文件夹/ mnt / iso中挂载一些iso文件:
Fedora-13-x86_64-DVD.iso Fedora-14-x86_64-DVD.iso Fedora-15-x86_64-DVD.iso
# ls /mnt/iso/fedora.13/ # ls /mnt/iso/fedora.14/ # ls /mnt/iso/fedora.15/
完成autofs测试后.我强制卸载所有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 mount:
# 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/*
在客户端计算机中挂载nfs文件夹:
# mount -t nfs4 <nfs-server>:/mnt/iso /mnt
列出/ mnt的子树:
# ls /mnt/*
然后,您可以看到nfs客户端计算机中的所有内容.
但是,这会破坏autofs的目的,因为我需要先在autofs机器中显示一次内容.
有没有人有任何想法?我使用以下内容:
> Fedora 13 x86_64
> autofs-5.0.5-28
> nfs-utils-1.2.2.2-2
解决方法
我认为你在马问题之前有一个购物车,因为当你使用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
你甚至无法在服务器上找到那个文件frog,因为它有一个不同的东西安装在它上面,但NFS正在提供在层下!
简而言之,如果您想通过NFS导出文件系统,则需要在NFS启动时正确安装它们并导出它们,并且需要保持这些系统.导出使用autofs自行挂载的文件系统永远不会正常工作.您需要永久安装这些ISO才能通过NFS导出它们.