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?

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. .


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.


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.


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.


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.


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.