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?


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


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.


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 

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.


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


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


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.


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.


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łą.


-2

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

umount -f -a -t cifs -l FOLDER_NAME


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.