Virtualização: siga os links simbólicos em VirtFS (9p) share

1

Eu tenho uma pasta na máquina host que possui links simbólicos para outro dispositivo. Assim

$ ls -all ~/folder_to_share
...
file1
file2
linked_dir -> /mnt/bdrive/real_dir/
...

Eu configurei a máquina virtual QEMU via libvirt e vagrant-libvirt . E também a pasta de compartilhamento de configuração que é mapeada para hospedar o diretório ~/folder_to_share usando o VirtFS (9p protocol ).

Eu quero que minha máquina virtual caminhe dentro do diretório compartilhado e siga links simbólicos, pois é um diretório real. É possível ou devo mudar para outro protocolo?

P.S. Parte do config vagrant-libvirt

config.vm.synced_folder "~/folder_to_share/", "/home/vagrant/shared_folder", type: '9p', owner: 1000
    
por petRUShka 29.10.2015 / 19:26

1 resposta

2

Eu resolvi isso há muito tempo com montagens de bind. Você poderia remover o link simbólico e substituí-lo pela montagem de bind:

mkdir /symlink/to/replace mount -o bind /src/dir /symlink/to/replace

Mas quando tentei, vi que o servidor 9p "diod" ignorou montagens de ligação incondicionalmente. Então eu tive que consertar isso.

OBSERVAÇÃO: O Plan9 e seus projetos vizinhos geralmente protestam contra muitas "práticas ruins", como links dinâmicos ou links simbólicos. Provavelmente é normal que eles não suportem isso, mesmo em outros ambientes. Então, se você tiver um diretório cheio de links simbólicos para outros lugares, acabará corrigindo o software do servidor 9p.

    
por 30.10.2015 / 10:09