Mi ero imbattuto in questo problema mentre seguivo la guida di Diskless Arch e mi ha davvero rallentato. Condividerò qui i miei risultati, poiché sono curioso di sapere se funzionerà per chiunque altro.
Secondo la guida Diskless ho il filesystem di root del client diskless (i dati effettivi che devo esportare) in un'immagine di loopback, che è stata montata su /srv/des1:
/srv/des1.img on /srv/des1 type btrfs (rw,relatime,compress=lzo,discard,space_cache)
Ho quindi creato un mountpoint, /nfs/des1quindi eseguo il mount e confermo che posso vedere tutto:
# mkdir -p /nfs/des1
# mount --bind /srv/des1 /nfs/des1
# ls -l /nfs/des1
bin boot dev usr #[SNIP]
Facendo riferimento alla guida di Arch NFS , ho quindi inserito /etc/exportssul server quanto segue :
/nfs/ *(rw,no_root_squash,no_subtree_check,fsid=root)
/nfs/des1/ *{rw,no_root_squash,no_subtree_check,nohide)
Ho quindi eseguito un exportfs -ravserver sul server per applicare queste modifiche.
Tuttavia ho quindi montato la condivisione sul client di test con: mount server:/des1 /mnt/tmpsolo per scoprire che è una directory vuota, quando mi aspettavo che il filesystem rootless diskless fosse lì.
A questo punto ho provato praticamente tutto fino a quando qualcosa non mi ha portato a questa opzione nella exportspagina man:
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.
Quindi dopo aver provato tutto il resto ho scambiato questo in modo che il mio /etc/exportsassomigliasse a questo:
/nfs/ *(rw,no_root_squash,no_subtree_check,fsid=root,crossmnt)
/nfs/des1/ *{rw,no_root_squash,no_subtree_check)
Dopo aver letto la voce della pagina man, penseresti che ciò avrebbe lo stesso effetto del codice precedente, ma quando sono corso di exportfs -ravnuovo per registrare le modifiche, ho provato a rimontare dal client e ha funzionato!
/srv/foo --> /bar/foo?