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?


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


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.


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 

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.


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


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


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.


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.


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.


-2

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

umount -f -a -t cifs -l FOLDER_NAME


-8

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

umount -l <mount path>
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.