Desmonte uma montagem rbind sem afetar a montagem original

2

Há outra pergunta discutindo sobre o desmontagem de montagens de rbind, mas a solução tem efeito indesejado. Considere o seguinte layout de diretório:

.
├── A_dir
│   └── mount_b
├── B_dir
│   └── mount_c
└── C_dir

Agora vinculo C_dir a B_dir/mount_c e rbind B_dir a A_dir/mount_b :

[hidden]$ sudo mount --bind C_dir B_dir/mount_c
[hidden]$ sudo mount --rbind B_dir A_dir/mount_b
[hidden]$ mount | grep _dir | wc -l
3

Agora umount A_dir/mount_b falhará, o que não é surpresa. De acordo com as respostas em toda a web, precisamos umount A_dir/mount_b/mount_c primeiro, em seguida, umount A_dir/mount_b . No entanto, umount A_dir/mount_b/mount_c também desmontará B_dir/mount_c , o que não é desejado:

[hidden]$ sudo umount A_dir/mount_b/mount_c
[hidden]$ mount | grep _dir | wc -l
1

Agora, minha pergunta é: como desmontar A_dir/mount_b , mas deixar B_dir não afetado, ou seja, ainda há uma ligação B_dir/mount_c to C_dir ?

Obrigado.

    
por icando 16.02.2016 / 19:06

1 resposta

2

Encontrei. link

Experimente --make-rprivate :

mount --make-rprivate A_dir
umount -R A_dir

Observação: as pessoas do systemd, que definiram seu comportamento descrito como o novo padrão, recomendam que você não torne a montagem rbind privada inicialmente. Não há problema em fazê-lo antes de desmontar.

É porque quando você clona todas as montagens, você pode, por exemplo, então precisa ejetar um CD. Se ele foi montado em tempo clone, a ativação da propagação significa que você só precisa executar umount em apenas um local (por exemplo, fora do rbind mount, assim como o normal) e, em seguida, poderá ejetá-lo.

    
por 15.04.2016 / 15:33