掛載到 autofs 掛載的 NFS 導出顯示內容為空
我使用 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/
完成 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 掛載:
# 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 機器中顯示一次內容。
有沒有人有任何想法?我正在使用以下內容:
- Fedora 13 x86_64
- autofs-5.0.5-28
- nfs-utils-1.2.2.2-2
我認為您在這裡遇到了本末倒置的問題,因為當您使用 NFS 導出文件系統時,它會鎖定到源目錄。您當時甚至試圖不提供該源目錄,並且稍後僅通過掛載將某些內容放在那裡。
這是行不通的,因為一旦您為 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 導出它們。