Recentemente fiquei sabendo do mount --bind
comando, mas há algo que não consigo entender claramente. Suponha que eu tenha uma partição de disco e a montei em um ponto de montagem /bkup usando este comando.
sudo mount /dev/sdd1 /bkup
Se eu quiser fazer com que o diretório /home/bkup apareça como ~/bkup, eu poderia fazer
sudo mount --bind /bkup ~/bkup
Mas como é diferente de
ln -s /bkup ~/bkup
em vigor? Por que devo usar mount --bind
quando posso fazer a mesma coisa com o ln -s
comando?
mount --bind
é mais como um equivalente de um "link físico" para um diretório (bem, você não pode criar links físicos para diretórios, mas isso é o mais próximo que você pode obter), enquanto o link simbólico é... bem, um link simbólico.Eu mesmo encontrei dois casos em que a diferença pode ser importante:
executando algum serviço em um chroot. Links simbólicos de dentro de uma prisão chroot para fora de uma prisão chroot não funcionam, enquanto
mount --bind
funciona.compartilhando algum diretório em uma rede. Você não pode compartilhar um link simbólico, mas pode compartilhar um diretório montado em
mount --bind
.Você também deve ter muito cuidado com programas que, por design, distinguem entre links simbólicos e diretórios reais, como
rsync
. Tentar executarrsync
em um link simbólico para um diretório pode fornecer resultados completamente diferentes do esperado.