sshfs dispositivo está ocupado

20

Eu montei um sistema de arquivos remoto usando o sshfs (versão 2.8.4)

sshfs -o allow_root [email protected]: ./example

mas a desmontagem falha

> fusermount -u example
umount: /home/joeuser/example: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

Alguma idéia do que pode estar causando esse erro e como alguém pode consertá-lo?

    
por ctuffli 04.11.2010 / 23:55

6 respostas

10

Algum programa está usando um arquivo no sistema de arquivos que você está tentando desmontar. Pode ser um arquivo aberto para leitura ou escrita, um diretório atual ou alguns casos mais obscuros. Pode até ser devido a um diretório no sistema de arquivos ser um ponto de montagem.

Para investigar, execute lsof +f -- example . Ele vai dizer o que o processo (es) está usando o sistema de arquivos. Faça o seu próprio julgamento para fazer com que eles fechem arquivos, matem-los ou adiem a operação de desmontagem.

    
por 05.11.2010 / 00:23
29

Acho que você quer uma desmontagem preguiçosa:

sudo umount -l example
    
por 23.07.2012 / 15:53
2

Em execução no Ubuntu, man fusermount informa sobre uma opção -z , que é documentada como "desmontar com preguiça". Parece estar relacionado, mas precisa de uma confirmação, que é dada por esta outra página man: fusermount (man.he.net) , que diz “desmontar lento (funciona mesmo se o recurso ainda estiver ocupado)”. É preciso usá-lo com a -u , a opção -z sozinha, produzirá um erro. Eu tentei a opção -z , e posso confirmar o truque, mas isso precisamente parece um truque: o que ele faz exatamente? Faz com que seja desmontado automaticamente assim que o diretório não estiver mais ocupado? Eu não sei, não documentado, tão inseguro.

Então, aqui está outra opção, mais detalhada, mas mais segura: tenta desmontar até obter sucesso, o tempo necessário, em um loop.

echo -n "Unmounting...";
fusermount -u -q "$MOUNT_POINT";
OK="$?";

while [ "$OK" != "0" ]
do
   sleep 1;
   echo -n ".";
   fusermount -u -q "$MOUNT_POINT";
   OK="$?";
done

echo;

Há um feedback mínimo de progresso, para que se saiba o que está acontecendo e não acredite que esteja enforcado.

Esta opção é aceitável a partir de um script de shell; para a interação da linha de comando, o uso da opção -z é mais útil, mas provavelmente é necessário estar ciente de que a página man não documenta e pode haver dúvidas sobre o que ela faz exatamente.

    
por 04.07.2014 / 08:46
2

Acabei de ter este problema e não consegui kill -9 ler o processo do sistema de arquivos montado. kill -9 não funcionou mesmo depois de fusermount -zu /mount/point ou umount -l /mount/point (que funcionou). A única coisa que funcionou foi pkill -9 sshfs .

    
por 21.07.2015 / 17:51
1

Muitas vezes vejo "dispositivo ocupado" com sshfs quando tenho uma janela de terminal aberta para um diretório no compartilhamento sshfs. Sair do terminal ou alterar os diretórios para um compartilhamento local, em seguida, executar o fusermount -u resolve meus problemas.

    
por 30.05.2011 / 22:08
1

No OS X, tente:

diskutil unmount force /mount/point
    
por 28.05.2018 / 15:52

Tags