Pergunta

Eu tenho um compartilhamento CIFS montado em uma máquina Linux.O servidor CIFS está inativo ou a conexão com a Internet está inoperante, e qualquer coisa que toque na montagem CIFS agora leva vários minutos para atingir o tempo limite e não pode ser eliminado enquanto você espera.Não consigo nem executar ls no meu diretório inicial porque há um link simbólico apontando para dentro da montagem CIFS e ls tenta segui-lo para decidir qual cor deve ser.Se eu tentar desmontá-lo (mesmo com -fl), o processo de desmontagem travará exatamente como ls.Nem mesmo sudo kill -9 pode matá-lo.Como posso forçar a desmontagem do kernel?

Foi útil?

Solução

Eu uso a desmontagem preguiçosa: umount -l (isso é uma letra minúscula L)

Desmontagem preguiçosa.Desconecte o sistema de arquivos da hierarquia do sistema de arquivos agora e limpe todas as referências ao sistema de arquivos assim que não estiver mais ocupado.(Requer kernel 2.4.11 ou mais tarde.)

Outras dicas

umount -a -t cifs -l

funcionou perfeitamente para mim no CentOS 6.3.Isso me salvou de uma reinicialização do servidor.

No RHEL 6 isso funcionou:

umount -f -a -t cifs -l 

Tive esse problema por um dia até encontrar a resolução real.Em vez de tentar forçar a desmontagem de um compartilhamento SMB que está travado, monte o compartilhamento com a opção "soft".Se um processo tentar se conectar ao compartilhamento que não está disponível, ele irá parar de tentar após um determinado período de tempo.

macio Torna a montagem macia.Falha nas chamadas do sistema de arquivos após alguns segundos.

mount -t smbfs -o soft //username@server/share /users/username/smb/share

stat /users/username/smb/share/file
stat: /users/username/smb/share/file: stat: Operation timed out

Pode não ser uma resposta real para sua pergunta, mas é uma solução para o problema

Isso funciona para mim (Ubuntu 13.10 Desktop para um servidor Ubuntu 14.04): -

 sudo umount -f /mnt/my_share

Montado com

 sudo mount -t cifs -o username=me,password=mine //192.168.0.111/serv_share /mnt/my_share

onde serv_share é aquele configurado e apontado no arquivo smb.conf.

Tente umount -f /mnt/share.Funciona bem com NFS, nunca tentei com cifs.

Além disso, dê uma olhada no autofs, ele montará o compartilhamento somente quando acessado e o desmontará no outro mundo.

Tem um bom tutorial em www.howtoforge.net

Eu tive um problema muito semelhante com o davfs.Na página de manual do umount.davfs, descobri que o -f -l -n -r -v opções são ignoradas por umount.davfs.Para forçar a desmontagem da minha montagem davfs, tive que usar umount -i -f -l /media/davmount.

Há uma opção -f para desmontar que você pode tentar:

umount -f /mnt/fileshare

Você está especificando a opção '-t cifs' para montar?Certifique-se também de não especificar a opção 'hard' para montar.

Você também pode querer considerar fusíveismb, como o sistema de arquivos estará rodando no espaço do usuário, você pode eliminá-lo como qualquer outro processo.

umount -f -t cifs -l /mnt &

Tenha cuidado com &, deixar umount executado em segundo plano.umount irá desanexar o sistema de arquivos primeiro, então você não encontrará nada sobre /mnt.Se você correr df comando, então ele irá umount /mnt à força.

No RHEL 6 isso funcionou para mim também:

umount -f -a -t cifs -l FOLDER_NAME

Uma desmontagem preguiçosa fará o trabalho para você.

umount -l <mount path>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top