Come si forza lo smontaggio di una connessione CIFS
Domanda
Ho una condivisione CIFS montata su una macchina Linux.Il server CIFS è inattivo o la connessione Internet è inattiva e tutto ciò che tocca il montaggio CIFS ora richiede diversi minuti per il timeout ed è immortale durante l'attesa.Non riesco nemmeno a eseguire ls nella mia directory home perché c'è un collegamento simbolico che punta all'interno del montaggio CIFS e ls cerca di seguirlo per decidere di che colore dovrebbe essere.Se provo a smontarlo (anche con -fl), il processo di smontaggio si blocca proprio come fa ls.Nemmeno sudo kill -9 può ucciderlo.Come posso forzare lo smontaggio del kernel?
Soluzione
Utilizzo lo smontaggio pigro: umount -l
(è una minuscola L
)
Smontaggio pigro.Staccano il filesystem dalla gerarchia del filesystem ora e pulisci tutti i riferimenti al filesystem non appena non è più occupato.(Richiede il kernel 2.4.11 o successivo.)
Altri suggerimenti
umount -a -t cifs -l
ha funzionato a meraviglia per me su CentOS 6.3.Mi ha risparmiato il riavvio del server.
Su RHEL 6 ha funzionato:
umount -f -a -t cifs -l
Ho avuto questo problema per un giorno finché non ho trovato la vera soluzione.Invece di provare a forzare lo smontaggio di una condivisione smb bloccata, monta la condivisione con l'opzione "soft".Se un processo tenta di connettersi alla condivisione che non è disponibile, interromperà i tentativi dopo un certo periodo di tempo.
soft Rende la montatura morbida.Falliscono le chiamate al file system dopo un certo numero di secondi.
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
Potrebbe non essere una vera risposta alla tua domanda, ma è una soluzione al problema
Questo funziona per me (da desktop Ubuntu 13.10 a un server Ubuntu 14.04): -
sudo umount -f /mnt/my_share
Montato con
sudo mount -t cifs -o username=me,password=mine //192.168.0.111/serv_share /mnt/my_share
dove serv_share è quello impostato e indicato nel file smb.conf.
Prova umount -f /mnt/share.Funziona bene con NFS, mai provato con cifs.
Inoltre, dai un'occhiata ad autofs, monterà la condivisione solo quando si accede e la smonterà negli aldilà.
C'è un buon tutorial su www.howtoforge.net
Ho avuto un problema molto simile con davfs.Nella pagina man di umount.davfs
, ho scoperto che il -f -l -n -r -v
le opzioni vengono ignorate da umount.davfs
.Per forzare lo smontaggio del mio supporto davfs, ho dovuto usare umount -i -f -l /media/davmount
.
C'è un'opzione -f per smontare che puoi provare:
umount -f /mnt/fileshare
Stai specificando l'opzione '-t cifs' da montare?Assicurati inoltre di non specificare l'opzione "difficile" da montare.
Potresti anche prendere in considerazione fusibilimb, poiché il filesystem verrà eseguito nello spazio utente, puoi terminarlo come qualsiasi altro processo.
umount -f -t cifs -l /mnt &
Stai attento &
, permettere umount
eseguito in sottofondo.umount
scollegherà prima il filesystem, quindi non troverai nulla in merito /mnt
.Se corri df
comando, allora lo farà umount /mnt
con la forza.
Su RHEL 6 questo ha funzionato anche per me:
umount -f -a -t cifs -l NOME_CARTELLA
Uno smontaggio lento farà il lavoro per te.
umount -l <mount path>