Jak wymusić odmontowanie połączenia CIFS

149

Mam udział CIFS zamontowany na komputerze z systemem Linux. Serwer CIFS jest wyłączony lub połączenie internetowe jest wyłączone, a wszystko, co dotknie uchwytu CIFS, zajmuje teraz kilka minut do przekroczenia limitu czasu i jest nie do zabicia podczas oczekiwania. Nie mogę nawet uruchomić ls w moim katalogu domowym, ponieważ wewnątrz montowania CIFS znajduje się dowiązanie symboliczne i ls próbuje podążać za nim, aby zdecydować, jaki powinien być kolor. Jeśli spróbuję go umountować (nawet z -fl), proces umount zawiesza się, tak jak robi to ls. Nawet sudo kill -9 nie może go zabić. Jak mogę zmusić jądro do odmontowania?

smoofra
źródło

Odpowiedzi:

186

Używam leniwego odmontowania: umount -l(to jest mała litera L)

Leniwe odmontowanie. Odłącz teraz system plików od hierarchii systemów plików i wyczyść wszystkie odniesienia do systemu plików, gdy tylko nie będzie już zajęty. (Wymaga jądra 2.4.11 lub nowszego).

Kemal
źródło
42
Na początku to nie zadziałało. Po eksperymentach chwilę (w nowym terminalu wirtualnym za każdym razem) wpadłem na to: sudo umount -a -t cifs -l. Albo to załatwiło sprawę, albo pierwsze umount zajęło trochę czasu (120s? 300s?). Otrzymałem wiele ostrzeżeń, że umount jest blokowany przez ponad 120 sekund.
Peter Jaric
2
A potem musiałem zabić wszystkie wiszące umount, zanim mogłem ponownie dosiąść.
Peter Jaric
13
Musiałem też sudo umount -a -t cifs -l sprawić, żeby to zadziałało.
Joma,
4
To naprawdę nie zadziałało dla mnie. Wypróbowałem wszystko inne powyżej i montowanie cifs zniknęło z mojej listy / etc / mtab, ale nie można go ponownie zamontować, więc jest praktycznie bezużyteczny. Mocowanie cifs zawiesza się, gdy komputer zawiesza się podczas montowania udziału cifs.
DH4
Zgadzam się, umount -a -t cifs -l też było tym, czego potrzebowałem, aby ominąć przerażające "Host is Down" thx.
Pooch
70

umount -a -t cifs -l

działał jak urok dla mnie na CentOS 6.3. Uratowało mi to ponowne uruchomienie serwera.

Ivanlan
źródło
8
Czy mógłbyś opracować na co -ai -lprzełączniki są i jak są one pomagać?
Izaak
10
-a i -t cifs odmontowuje wszystkie systemy plików cifs. lepiej określić ten, który chcesz odmontować
dwery
2
Jest to idealne rozwiązanie, jeśli zamontowałeś za pomocą przeglądarki plików i nie możesz zlokalizować niewłaściwego punktu montowania - pod warunkiem, że nie masz nic przeciwko odmontowaniu wszystkiego!
mędrzec
1
Dzięki, zaoszczędziło to dzisiaj dużo czasu!
agam
13

Na RHEL 6 to zadziałało:

umount -f -a -t cifs -l 
Andy Fraley
źródło
To zadziałało, muszę poczekać pełne 30 minut (limit czasu), zanim będę mógł ponownie zamontować. Chyba najlepiej zrobić soft mount, jak wskazuje jnice.
XMAN
11

To działa dla mnie (Ubuntu 13.10 Desktop na serwer Ubuntu 14.04): -

 sudo umount -f /mnt/my_share

Montowany za pomocą

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

gdzie serv_share jest skonfigurowany i wskazany w pliku smb.conf.

Phil Johnson
źródło
6

Miałem ten problem przez jeden dzień, dopóki nie znalazłem prawdziwego rozwiązania. Zamiast próbować wymusić odmontowanie udziału smb, który jest zawieszony, zamontuj udział za pomocą opcji „miękkiej”. Jeśli proces spróbuje połączyć się z udziałem, który nie jest dostępny, po pewnym czasie przestanie próbować.

soft Sprawia, że ​​mocowanie jest miękkie. Niepowodzenie wywołań systemu plików po kilku sekundach.

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

Może nie być prawdziwą odpowiedzią na twoje pytanie, ale jest rozwiązaniem problemu

jnice
źródło
19
Jeśli spojrzysz na man mount.cifsto, zauważysz, że w softrzeczywistości jest to ustawienie domyślne.
Benj
2

Spróbuj umount -f / mnt / share. Działa OK z NFS, nigdy nie próbowałem z CIF.

Spójrz także na autofs, zamontuje udział tylko po uzyskaniu dostępu i odmontuje go zaświatami.

Na www.howtoforge.net znajduje się dobry poradnik

Sunny Milenov
źródło
5
niestety -f nie działa z CIFS. umount nadal po prostu wisi.
smoofra
2

Miałem bardzo podobny problem z davfs. Na stronie podręcznika man umount.davfsstwierdziłem, że -f -l -n -r -vopcje są ignorowane przez umount.davfs. Aby wymusić odmontowanie mojego montażu davfs, musiałem użyć umount -i -f -l /media/davmount.

Benedikt Köppel
źródło
1

Istnieje opcja -f do odrzucenia, którą możesz wypróbować:

umount -f /mnt/fileshare

Czy określasz opcję „-t cifs” do zamontowania? Upewnij się również, że nie określasz opcji „trudnej” do zamontowania.

Możesz również rozważyć fusesmb , ponieważ system plików będzie działał w przestrzeni użytkownika, możesz go zabić tak jak każdy inny proces.

Chris AtLee
źródło
4
-f i -t nie pomaga, licznik nadal się zawiesza.
smoofra
czy zrestartowałeś komputer od czasu dodania opcji „-t cifs” do zamontowania? Nie sądzę, żeby było coś, co możesz teraz zrobić, aby naprawić zablokowany punkt montowania, jedyną nadzieją jest spróbować zamontować go w sposób bardziej odporny na awarie w przyszłości.
Chris AtLee,
1
umount -f -t cifs -l /mnt &

Uważaj &, pozwól umountdziałać w tle. umountnajpierw odłączy system plików, więc nic nie znajdziesz /mnt. Jeśli uruchomisz dfpolecenie, będzie to umount /mntsiłą.

zhjb7
źródło
-2

Na RHEL 6 to zadziałało również dla mnie:

umount -f -a -t cifs -l FOLDER_NAME

chataros
źródło
-8

Leniwe odmontowanie wykona pracę za Ciebie.

umount -l <mount path>
JimmyPheonix
źródło