Como você força uma conexão CIFS a desmontar

149

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

smoofra
fonte

Respostas:

186

Eu uso desmontar preguiçoso: umount -l(isso é minúsculo 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. (Requer o kernel 2.4.11 ou posterior.)

Kemal
fonte
42
Isso não funcionou para mim no começo. Depois de experimentar um tempo (em um novo terminal virtual de cada vez) eu vim com essa: sudo umount -a -t cifs -l. Isso fez o truque ou a primeira quantia levou um tempo (120s? 300s?) Para ser concluída. Recebi muitos avisos sobre o bloqueio de umount por mais de 120 segundos.
Peter Jaric 12/03/12
2
E então eu tive que matar todos os montantes pendurados antes que eu pudesse montar novamente.
Peter Jaric
13
Eu também precisava sudo umount -a -t cifs -l fazê-lo funcionar.
Joma
4
Isso realmente não funcionou para mim. Eu tentei tudo o mais acima e o mount cifs desapareceu da minha listagem do / etc / mtab, mas não pode ser remontado, portanto é efetivamente inútil. A montagem cifs congela quando meu computador se suspende enquanto o compartilhamento cifs está montado.
DH4
Concordo que uma quantidade -a -t cifs -l era o que eu também precisava para superar o temido thx "Host is Down".
Pooch
70

umount -a -t cifs -l

funcionou como um encanto para mim no CentOS 6.3. Isso me salvou uma reinicialização do servidor.

ivanlan
fonte
8
Você gostaria de elaborar o que -ae -lswitches são e como eles estão ajudando?
Isaac
10
-a e -t cifs desmonta todos os sistemas de arquivos cifs. é melhor para especificar o que você deseja desmontar
dwery
2
Isso é perfeito se você montou através de um navegador de arquivos e não consegue localizar o ponto de montagem ofensivo - desde que não se importe com a desmontagem de tudo!
sage
1
Obrigado, isso economizou muito tempo hoje!
agam
13

No RHEL 6, isso funcionou:

umount -f -a -t cifs -l 
Andy Fraley
fonte
Isso funcionou, tem que esperar 30 minutos (tempo limite) antes que eu pudesse remontar. Provavelmente é melhor fazer uma montagem suave, como indica o jnice.
XMAN
11

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.

Phil Johnson
fonte
6

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

macio Torne o suporte macio. 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

jnice
fonte
19
Se você olhar, man mount.cifsperceberá que esse softé realmente o padrão.
Benj 01/01
2

Tente umount -f / mnt / share. Funciona bem com o 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.

Há um bom tutorial em www.howtoforge.net

Sunny Milenov
fonte
5
infelizmente -f não funciona com o CIFS. a quantidade ainda trava.
smoofra 16/09/08
2

Eu tive um problema muito semelhante com o davfs. Na página do manual umount.davfs, descobri que as -f -l -n -r -vopções são ignoradas por umount.davfs. Para desmontar à força minha montagem davfs, eu tive que usar umount -i -f -l /media/davmount.

Benedikt Köppel
fonte
1

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

umount -f /mnt/fileshare

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

Você também pode considerar o fusesmb , já que o sistema de arquivos estará sendo executado no espaço do usuário, você poderá matá-lo como qualquer outro processo.

Chris AtLee
fonte
4
-f e -t não ajudam, a quantia ainda trava.
smoofra 16/09/08
você reiniciou desde a adição da opção '-t cifs' para montar? Acho que não há nada que você possa fazer para consertar seu ponto de montagem preso no momento, sua única esperança é tentar montá-lo de uma maneira que seja mais resistente a falhas no futuro.
Chris AtLee
1
umount -f -t cifs -l /mnt &

Cuidado &, deixe umountcorrer em segundo plano. umountprimeiro, o sistema de arquivos será desconectado; portanto, você não encontrará nada /mnt. Se você executar o dfcomando, ele será umount /mntforçado.

zhjb7
fonte
-2

No RHEL 6, isso funcionou para mim também:

umount -f -a -t cifs -l FOLDER_NAME

chataros
fonte
-8

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

umount -l <mount path>
JimmyPheonix
fonte