Comment forcer une connexion CIFS à se démonter

149

J'ai un partage CIFS monté sur une machine Linux. Le serveur CIFS est en panne, ou la connexion Internet est coupée, et tout ce qui touche le montage CIFS prend maintenant plusieurs minutes pour expirer et est impossible à tuer pendant que vous attendez. Je ne peux même pas exécuter ls dans mon répertoire personnel car il y a un lien symbolique pointant à l'intérieur du montage CIFS et ls essaie de le suivre pour décider de sa couleur. Si j'essaye de le démonter (même avec -fl), le processus de démontage se bloque exactement comme le fait ls. Même sudo kill -9 ne peut pas le tuer. Comment puis-je forcer le noyau à se démonter?

Smoofra
la source

Réponses:

186

J'utilise lazy unmount: umount -l(c'est une minuscule L)

Démontage paresseux. Détachez maintenant le système de fichiers de la hiérarchie du système de fichiers et nettoyez toutes les références au système de fichiers dès qu'il n'est plus occupé. (Nécessite le noyau 2.4.11 ou supérieur.)

Kemal
la source
42
Cela n'a pas fonctionné pour moi au début. Après avoir expérimenté un certain temps (dans un nouveau terminal virtuel à chaque fois) je suis venu avec ceci: sudo umount -a -t cifs -l. Soit cela a fait l'affaire, soit le premier montage a pris un certain temps (120? 300?) Pour terminer. J'ai reçu de nombreux avertissements concernant le blocage d'umount pendant plus de 120 secondes.
Peter Jaric
2
Et puis j'ai dû tuer tous les umounts suspendus avant de pouvoir remonter.
Peter Jaric
13
J'avais besoin aussi sudo umount -a -t cifs -l de le faire fonctionner.
Joma
4
Cela n'a pas vraiment fonctionné pour moi. J'ai essayé tout le reste ci-dessus et le montage cifs a disparu de ma liste / etc / mtab mais il ne peut pas être remonté, donc il est effectivement inutile. Le montage cifs se fige lorsque mon ordinateur se suspend pendant que le partage cifs est monté.
DH4
Je suis d'accord, umount -a -t cifs -l était ce dont j'avais besoin aussi pour dépasser le redoutable "Host is Down" thx.
Pooch
70

umount -a -t cifs -l

a fonctionné comme un charme pour moi sur CentOS 6.3. Cela m'a évité un redémarrage du serveur.

Ivanlan
la source
8
Pourriez-vous préciser ce -aque -lsont les commutateurs et comment ils aident?
Isaac
10
-a et -t cifs démontent tous les systèmes de fichiers cifs. il est préférable de spécifier celui que vous souhaitez démonter
dwery
2
C'est parfait si vous avez monté via un navigateur de fichiers et que vous ne pouvez pas localiser le point de montage incriminé - à condition que cela ne vous dérange pas de tout démonter!
sage
1
Merci, cela a permis de gagner beaucoup de temps aujourd'hui!
Agam
13

Sur RHEL 6, cela a fonctionné:

umount -f -a -t cifs -l 
Andy Fraley
la source
Cela a fonctionné, doit attendre 30 minutes complètes (timeout) avant de pouvoir remonter. Il est probablement préférable de faire un montage logiciel comme l'indique jnice.
XMAN le
11

Cela fonctionne pour moi (Ubuntu 13.10 Desktop vers un serveur Ubuntu 14.04): -

 sudo umount -f /mnt/my_share

Monté avec

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

où serv_share est celui mis en place et pointé dans le fichier smb.conf.

Phil Johnson
la source
6

J'ai eu ce problème pendant un jour jusqu'à ce que je trouve la vraie résolution. Au lieu d'essayer de forcer le démontage d'un partage smb qui est bloqué, montez le partage avec l'option "soft". Si un processus tente de se connecter au partage qui n'est pas disponible, il cessera d'essayer après un certain temps.

soft Rendez la monture souple. Échec des appels du système de fichiers après un certain nombre de secondes.

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

Ce n'est peut-être pas une vraie réponse à votre question mais c'est une solution au problème

gentil
la source
19
Si vous regardez, man mount.cifsvous remarquerez que softc'est en fait la valeur par défaut.
Benj
2

Essayez umount -f / mnt / share. Fonctionne bien avec NFS, jamais essayé avec cifs.

Jetez également un œil à autofs, il montera le partage uniquement lors de l'accès et le démontera après les mondes.

Il y a un bon tutoriel sur www.howtoforge.net

Sunny Milenov
la source
5
malheureusement -f ne fonctionne pas avec CIFS. le montage se bloque toujours.
smoofra le
2

J'ai eu un problème très similaire avec davfs. Dans la page de manuel de umount.davfs, j'ai trouvé que les -f -l -n -r -voptions sont ignorées par umount.davfs. Pour forcer le démontage de ma monture davfs, j'ai dû utiliser umount -i -f -l /media/davmount.

Benedikt Köppel
la source
1

Il existe une option -f à démonter que vous pouvez essayer:

umount -f /mnt/fileshare

Spécifiez-vous l'option '-t cifs' à monter? Assurez-vous également que vous ne spécifiez pas l'option «difficile» à monter.

Vous pouvez également envisager fusesmb , puisque le système de fichiers fonctionnera dans l'espace utilisateur, vous pouvez le tuer comme n'importe quel autre processus.

Chris AtLee
la source
4
-f et -t n'aident pas, le umount se bloque toujours.
smoofra le
avez-vous redémarré depuis l'ajout de l'option '-t cifs' au montage? Je ne pense pas que vous puissiez faire quoi que ce soit pour réparer votre point de montage bloqué pour le moment, votre seul espoir est d'essayer de le monter d'une manière plus résistante à l'échec à l'avenir.
Chris AtLee
1
umount -f -t cifs -l /mnt &

Attention &, laissez umountcourir en arrière-plan. umountdétachera d'abord le système de fichiers, donc vous ne trouverez rien sur le compte /mnt. Si vous exécutez la dfcommande, elle sera umount /mntforcée.

zhjb7
la source
-2

Sur RHEL 6, cela a fonctionné pour moi aussi:

umount -f -a -t cifs -l FOLDER_NAME

chataros
la source
-8

Un démontage paresseux fera le travail pour vous.

umount -l <mount path>
JimmyPheonix
la source