Parece que não consigo desmontar dev
depois de montá-lo. Estou correndo Ubuntu 18.04.2 LTS
com 4.15.0-1052-aws
.
mkdir -p ~/jail/dev
pushd ~/jail
sudo mount --rbind /dev dev/
sudo umount dev/
umount: /home/ubuntu/Code/conversations/jail/dev: target is busy.
Existe alguma maneira de desmontá-lo sem reiniciar minha máquina?
Como alternativa, existe uma maneira de montá-lo para que seja mais fácil desmontar?
Atualização : Esta é a saída de lsof /home/ubuntu/Code/conversations/jail/dev
:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kdevtmpfs 55 root cwd DIR 0,6 2980 2 dev
kdevtmpfs 55 root rtd DIR 0,6 2980 2 dev
O primeiro comando é necessário para segurança. Isso impedirá que o segundo comando desmonte subdiretórios no diretório original
/dev
. Isso se deve à "propagação de montagem".O segundo comando desmonta toda a árvore recursivamente. Isso garante desmontar
dev/pts
, por exemplo, antes de tentar desmontardev/
. Foi isso que causou o erro "destino ocupado".Como otimização, você pode usar
umount -l
em vez deumount -R
. Isso pode ser útil ao desmontar uma árvore inteira de montagens de ligação.`umount -R` em montagens de ligação leva uma quantidade de tempo não desprezível, por quê?
No entanto, é necessário cuidado se não forem apenas montagens de ligação ou sistemas de arquivos virtuais. Os programas que abriram arquivos geralmente ainda poderão acessá-los. Até que eles os fechem, o sistema de arquivos ainda está aberto. No entanto, o sistema de arquivos é "desanexado" imediatamente. Ele não vai desordenar mais o namespace. Não vai aparecer
findmnt
e assim por diante. Isso significa que você não pode dizer facilmente quando o dispositivo subjacente será "seguro para remover".