Wie erzwinge Sie eine CIFS Verbindung auszuhängen
Frage
Ich habe eine CIFS-Freigabe auf einer Linux-Maschine montiert. Der CIFS-Server ausgefallen ist, oder die Internet-Verbindung erreichbar ist, und alles, was die CIFS-Mount jetzt berührt dauert einige Minuten Timeout, und ist unkillable während Sie warten. Ich kann nicht einmal ls in meinem Home-Verzeichnis ausgeführt werden, da es ein symbolischer Link Zeige ist im Inneren des CIFS-Mount und ls versucht, ihm zu folgen, um zu entscheiden, welche Farbe es sein sollte. Wenn ich versuche, es zu umount (auch mit -fl) hängt der umount Prozess wie ls tut. Nicht einmal sudo kill -9 kann es töten. Wie kann ich den Kernel zwingen aushängen?
Lösung
Ich benutze faul Aushänge: umount -l
(das ist ein Klein L
)
Faule aushängen. Nehmen Sie das Dateisystem von der Dateisystem-Hierarchie nun, und Bereinigungs alle Verweise auf die Dateisystem, sobald es nicht belegt ist nicht mehr. (Benötigt Kernel 2.4.11 oder später).
Andere Tipps
umount -a -t cifs -l
arbeitete wie ein Charme für mich auf CentOS 6.3. Es ersparte mir einen Neustart des Servers.
Auf RHEL 6 dies gearbeitet:
umount -f -a -t cifs -l
Ich hatte dieses Problem für einen Tag, bis ich die wirkliche Lösung gefunden. Statt eine SMB-Freigabe zu erzwingen versuchen aushängen, die gehangen ist, montieren Sie die Aktie mit der „weichen“ Option. Wenn ein Prozess auf die Freigabe zu verbinden versucht, das nicht verfügbar ist, wird es versuchen, nach einer gewissen Zeit zu stoppen.
weiche Stellen die Halterung weich. Fail-Dateisystem ruft nach einer bestimmten Anzahl von Sekunden.
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
Kann keine wirkliche Antwort auf Ihre Frage, aber es ist eine Lösung für das Problem
Dies funktioniert für mich (Ubuntu 13.10 Desktop Ubuntu 14.04 Server): -
sudo umount -f /mnt/my_share
Montiert mit
sudo mount -t cifs -o username=me,password=mine //192.168.0.111/serv_share /mnt/my_share
Dabei gilt serv_share, dass aufgebaut und wies auf in der Datei smb.conf.
Versuchen Sie umount -f / mnt / share. Works OK mit NFS, nie versucht, mit CIFS.
Werfen Sie auch einen Blick auf autofs, wird es montieren nur den Anteil, wenn zugegriffen wird, und wird aushängen Hinterwelten.
Es ist ein gutes Tutorial unter www.howtoforge.net
Ich hatte ein sehr ähnliches Problem mit davfs. In der Manpage von umount.davfs
, fand ich, dass die -f -l -n -r -v
Optionen von umount.davfs
ignoriert werden. Um zu erzwingen-aushängen meine davfs montieren, ich hatte umount -i -f -l /media/davmount
zu verwenden.
Es gibt eine Option -f umount, dass Sie versuchen können:
umount -f /mnt/fileshare
angeben Sie die Option '-t cifs' zu montieren? Auch stellen Sie sicher, dass Sie nicht die ‚harte‘ Option angeben zu montieren.
Sie können auch prüfen wollen fusesmb , da das Dateisystem wird in User-Space laufen Sie es wie jedes andere Verfahren töten kann.
umount -f -t cifs -l /mnt &
Seien Sie vorsichtig von &
, umount
im Hintergrund laufen lassen.
umount
wird Dateisystem lösen zuerst, so dass Sie nichts abount /mnt
finden. Wenn Sie df
Befehl ausführen, dann wird es mit Gewalt umount /mnt
.
Auf RHEL 6 dies auch für mich gearbeitet:
umount -f -a -t cifs -l FOLDER_NAME
Ein fauler unmount wird die Arbeit für Sie tun.
umount -l <mount path>