confusão sobre opções de montagem

5

Eu me sinto confuso sobre as opções de montagem, como: --bind , --make-unbindable e --make-shared e você poderia, por favor, me ajudar a explicar os comandos abaixo?

sudo "mount --bind #{vm_bind_mount} #{vm_bind_mount}"
sudo "mount --make-unbindable #{vm_bind_mount}"
sudo "mount --make-shared #{vm_bind_mount}"

EDITAR: Na verdade, eu me pergunto por que há duplicatas #{vm_bind_mount} em mount --bind ? Em outras palavras, mount --bind /tmp/foo /tmp/foo faz sentido?

    
por user2886717 28.02.2014 / 09:33

2 respostas

6

mount --bind replica uma montagem em outro local. Por exemplo, depois de

mount --bind /foo /bar

, em seguida, /foo/something e /bar/something são o mesmo arquivo (acessado por caminhos diferentes). Você pode usar mount --bind para replicar uma subárvore: /foo não precisa ser um ponto de montagem.

Um exemplo de como isso é útil é disponibilizar partes da árvore de diretórios em um chroot . Por exemplo, se você executar um servidor da Web chrooted em /srv , mas quiser exibir arquivos em /home/bob , poderá replicar (parte do) diretório pessoal de Bob na raiz do servidor:

mount --bind /home/bob/public_html /srv/home/bob

As opções --make-private , --make-shared , --make-slave e --make-unbindable fornecem algum controle sobre montagens de ligação e sobre o que acontece se você montar outro sistema de arquivos em /foo ou /bar depois de fazer mount --bind /foo /bar . / p>

  • Por padrão, todas as montagens são particulares: se você montar um sistema de arquivos em /foo ou /bar , isso não afetará o que é visível por meio do outro caminho.
  • Se /foo tiver sido declarado compartilhado antes de fazer mount --bind , se você montar algo em /foo ou /bar , ele também ficará visível no outro caminho.
  • Uma montagem escrava é compartilhada apenas em uma direção: se /foo for compartilhado e /bar for escravo, a montagem de algo em /bar afetará a exibição em /foo , mas o contrário não é verdadeiro.
  • Se /foo for declarado não-utilizável, então mount --bind /foo /bar falhará.
por 03.03.2014 / 03:37
3

Na% man_de% manpage:

Since Linux 2.6.15 it is possible to mark a mount and its submounts as shared, private, slave or unbindable. A shared mount provides ability to create mirrors of that mount such that mounts and umounts within any of the mirrors propagate to the other mirror. A slave mount receives propagation from its master, but any not vice-versa. A private mount carries no propagation abilities. A unbindable mount is a private mount which cannot cloned through a bind operation. Detailed semantics is documented in Documentation/sharedsubtree.txt file in the kernel source tree.

O arquivo de texto mencionado é, na verdade, mount(8) ; Aqui está um link para esse arquivo no kernel estável atual .

    
por 28.02.2014 / 09:53

Tags