Umount preguiçoso ou Desmontando um disco ocupado no Linux

19

Eu li que é possível 'desmontar' um disco que está ocupado usando a opção 'preguiçoso'. A página de manual tem a dizer sobre isso:

umount - desmontar sistemas de arquivos

-l Desmontar preguiçoso. Desanexe o sistema de arquivos da hierarquia do sistema de arquivos agora e limpe todas as referências ao sistema de arquivos assim que ele não estiver mais ocupado. Esta opção permite que um sistema de arquivos "ocupado" seja desmontado. (Requer o kernel 2.4.11 ou posterior.)

Mas qual seria o sentido disso? Considerei por que desmontamos partições:

  1. Para remover o hardware
  2. Para executar operações no sistema de arquivos que não seriam seguras durante a montagem

Em qualquer um desses casos, toda a desmontagem 'preguiçosa' serve ao IMHO é tornar mais difícil determinar se o disco realmente está desmontado e você pode realmente prosseguir com essas ações. A única aplicação para umount -lparece ser para usuários inexperientes 'sentirem' que alcançaram algo que não alcançaram.

Por que você usaria uma desmontagem preguiçosa?

deed02392
fonte

Respostas:

10

Como você é preguiçoso - deseja desmontar após a conclusão das operações do disco.

Aqui está um cenário plausível:

Você está usando rsyncpara executar seus backups e ir embora. Você pode umount -ldirigir a unidade e, assim que terminar de copiar e sincronizar, desmontará, para que, quando você voltar após um intervalo (que você sabe que demore mais que o backup), você possa simplesmente desconectar a unidade em vez de mexer no teclado novamente. .

Broam
fonte
Se você fosse preguiçoso, com certeza gostaria de economizar MAIS tempo sem precisar usar o argumento, porque, ao voltar, sabia que poderia desmontá-lo imediatamente agora que o backup foi concluído? Ou tornar a desmontagem da unidade parte das operações pós-backup?
deed02392
Pense desta maneira: o disco não está mais ocupado - desmonte-o agora. Ele não está mais montado e nada mais pode ser gravado. É "faça isso quando puder" em vez de errar.
Broam
Então, como você sabe quando as operações do disco são feitas? Veja este exemplo (erro?) De poder gravar um arquivo em um sistema de arquivos já desmontado
Tom Hale
5

Na verdade, isso é implementado para ganhar mais tempo para executar tarefas de acompanhamento em tarefas administrativas.

Se outras tarefas, independentemente desta, estiverem aguardando no pipeline, você poderá desmontar com preguiça e continuar com outras pessoas no lote.

Exemplo : a Tarefa 1 e a Tarefa 2 são duas tarefas administrativas programadas consecutivamente.

Tarefa 1 Backup diário

Este copia um grande número de arquivos de uma partição de projeto para uma partição de backup, por exemplo, / mnt / backupProj, que será montada rapidamente e desmontada no final desta tarefa. A cópia leva um tempo significativo.

Tarefa 2 Atualizar visualizações SQL

Executa uma série de atualizações de exibição do banco de dados em um servidor dedicado.

A Tarefa 2 é obviamente completamente independente da Tarefa 1, para que possamos desmontar com preguiça / mnt / backupProj sem esperar pela conclusão da tarefa de backup.

Bora
fonte
1
você pode dar um exemplo? Em que situação seria 'ganhar / economizar tempo'?
precisa saber é o seguinte
4

Eu uso o preguiçoso umount nos casos em que ficou obviamente preso por vários motivos (como servidor nfs inativo), também quando preciso ver o conteúdo original do diretório que foi montado pelo monte. Nos dois casos, a montagem está ocupada. Acho que existem outros casos extremos, mas esses dois são os motivos mais comuns pelos quais usei a opção.

johnshen64
fonte
As recomendações --forcepara o caso NFS.
Tom Hale
3

Considere uma montagem de ligação como você pode ver ao trabalhar com chroot:

mount --rbind /proc /mnt/proc
# do stuff
umount /mnt/proc

Se você tem um daemon em seu sistema que o interroga constantemente /proc(estou olhando para você ksysguardd), não será possível umount /mnt/proc. Preguiçoso vai deixar você umountneste caso.

goertzenator
fonte
Por que não usar --forceaqui?
Tom Hale
2

Às vezes, as unidades USB ficam paralisadas devido a uma falha de hardware. Mesmo se você reconectar a unidade fisicamente, receberá outro nome de dispositivo. O nome do dispositivo antigo não pode ser desmontado normalmente. quantidade -l obriguei a entrada morta a desaparecer.

user296968
fonte
1

Digamos que você realmente precise alterar o volume no qual um software está gravando um log, por exemplo, um servidor Web, mas possui muito tráfego e não pode ser desativado para a operação, nem o caminho do log.

Com a desmontagem lenta, é possível desmontar com segurança o volume enquanto o software ainda está em execução, montar outro volume no mesmo ponto de montagem e comandar o software para reabrir arquivos.

Idealmente, como você não precisou desligar o software, nenhuma solicitação foi perdida e também nenhuma entrada de log foi perdida, pois elas ainda estavam sendo gravadas na montagem antiga até a reabertura dos arquivos (quão bem o software lida com a reabertura do arquivos depende do software).

Parafraseando a página de manual, isso significa que, se o volume tiver arquivos abertos quando for desmontado preguiçosamente, na realidade ele permanecerá montado, mas não poderá ser acessado pelo sistema de arquivos e só será realmente desmontado quando o último arquivo aberto for fechado.

Tuomas Salomäki
fonte
1
Graças isso soa como um aplicativo útil. Irá lsofmostrar arquivos abertos no antigo ponto de montagem? Também me pergunto como isso diferenciaria os arquivos abertos no volume antigo e no novo?
Deed02392
0

Eu uso encfs para criptografar parte dos meus dados confidenciais.

Quando o disco está montado, o nautilus cria visualizações (acho que não tenho certeza) e bloqueia os arquivos. Quando eu quero desmontá-lo, ele diz que está bloqueado por outro processo.

Desmontando preguiçosamente, a pasta desaparece da minha hierarquia e fica oculta. E quando o processo em segundo plano termina, é desmontado com êxito.

jehon
fonte