Saya telah menemukan masalah ini saat mengikuti panduan Diskless Arch , dan itu benar-benar memperlambat saya. Saya akan membagikan temuan saya di sini, karena saya ingin tahu apakah ini akan berhasil untuk orang lain.
Sesuai panduan Diskless, saya memiliki sistem file root klien diskless (data aktual yang perlu saya ekspor) dalam gambar loopback, yang telah dipasang di /srv/des1
:
/srv/des1.img on /srv/des1 type btrfs (rw,relatime,compress=lzo,discard,space_cache)
Saya kemudian membuat mountpoint /nfs/des1
kemudian menjalankan mount, dan mengkonfirmasi bahwa saya bisa melihat semuanya:
# mkdir -p /nfs/des1
# mount --bind /srv/des1 /nfs/des1
# ls -l /nfs/des1
bin boot dev usr #[SNIP]
Mengacu pada panduan Arch NFS , saya kemudian memasukkan yang berikut ini di /etc/exports
server:
/nfs/ *(rw,no_root_squash,no_subtree_check,fsid=root)
/nfs/des1/ *{rw,no_root_squash,no_subtree_check,nohide)
Saya kemudian menjalankan sebuah exportfs -rav
di server untuk menerapkan perubahan ini.
Namun saya kemudian me-mount share pada klien uji dengan: mount server:/des1 /mnt/tmp
hanya untuk menemukan itu adalah direktori kosong, ketika saya mengharapkan sistem disk-root-files berada di sana.
Pada tahap ini saya mencoba hampir semuanya sampai sesuatu menuntun saya ke opsi ini di exports
halaman manual:
crossmnt
This option is similar to nohide but it makes it possible for clients
to move from the filesystem marked with crossmnt to exported filesystems
mounted on it. Thus when a child filesystem "B" is mounted on a parent "A",
setting crossmnt on "A" has the same effect as setting "nohide" on B.
Jadi setelah mencoba yang lain saya bertukar sekitar ini sehingga saya /etc/exports
tampak seperti ini:
/nfs/ *(rw,no_root_squash,no_subtree_check,fsid=root,crossmnt)
/nfs/des1/ *{rw,no_root_squash,no_subtree_check)
Setelah membaca entri halaman manual Anda akan berpikir ini akan memiliki efek yang sama dengan kode sebelumnya, tetapi ketika saya berlari exportfs -rav
lagi untuk mendaftarkan perubahan, kemudian mencoba untuk remount dari klien dan itu berhasil!
/srv/foo --> /bar/foo
?