Wymuś odmontowanie katalogu podłączonego do NFS [zamknięte]

163

Mam katalog zamontowany w systemie plików NFS na komputerze z systemem Linux, który zawiesił się. Próbowałem wymusić odmontowanie, ale to nie działa:

$ umount -f /mnt/data
$ umount2: Device or resource busy
$ umount: /mnt/data: device is busy

Jeśli wpiszę „ mount”, wygląda na to, że katalog nie jest już zamontowany, ale zawiesza się, jeśli to zrobię „ ls /mnt/data”, a jeśli spróbuję usunąć punkt montowania, otrzymuję:

$ rmdir /mnt/data
rmdir: /mnt/data: Device or resource busy

Czy jest coś, co mogę zrobić poza ponownym uruchomieniem komputera?

Lorin Hochstein
źródło
3
Zgadzam się, ktokolwiek głosował za zamknięciem tego poważnie zdezorientowany. Ten problem nęka mnie od lat, a odpowiedź poniżej, umount -l, dla Linuksa, jest pierwszym rozwiązaniem, które okazało się skuteczne.
Lizardx
1
ok, ale możesz go znaleźć na Super User. chociaż nie rozumiem, dlaczego pytanie nie zostało przeniesione, a nie zamknięte.
deeenes
Dla umount --forcebędzie starać odmontować i -vani -vvvnawet ujawni więcej na czym polega problem z montażu. Więc spróbuj:umount -vvv --force /badmount
gaoithe
5
@deeenes Ponieważ to pytanie zostało zadane we wrześniu 2008 roku, a Super User został uruchomiony dopiero w lipcu 2009 ;-)
Martin Tournoij
@Carpetsmoker, ale został oznaczony jako niezwiązany z tematem w 2013 r.
podpowiedź

Odpowiedzi:

254

Możesz spróbować leniwego odmontowania:

umount -l
tessein
źródło
3
Nie wszędzie jest to realizowane. Na przykład nie mam go we FreeBSD.
Daniel Papasian
28
@Daniel: jasne, ale jest to pytanie dotyczące Linuksa (nawet oznaczone jako takie), a Linux je ma.
Jürgen A. Erhard
5
Wypróbowałem to polecenie na Ubuntu i nie zadziałało.
Kieran Andrews
1
To zadziałało dla mnie (Slackware 14.0). Miałem mocowanie CIFS, a nie NFS, które zawieszało wszystko (łącznie lsof). Problem spowodowałem wyłamaniem się ze skryptu kopii zapasowej, który piszę. Skrypt montuje i odmontowuje katalog, ale coś o wyrwaniu się z niegorsync pomieszanego montowania. Nie wiedziałem o leniwym odmontowaniu. Może to urządzenie NAS powodowało wszystkie problemy. Po pomyślnym odmontowaniu okazało się, że muszę zrestartować urządzenie zanim będę mógł je ponownie zamontować.
niełuskany
10
@KieranAndrews i wszyscy inni użytkownicy Ubuntu, spróbuj fusermount -uz /path/to/file. Zadziałało na mnie! :)
Matt Fletcher
78

Jeśli serwer NFS zniknął i nie można go przywrócić online, jedną sztuczką, której używam, jest dodanie aliasu do interfejsu z adresem IP serwera NFS (w tym przykładzie 192.0.2.55).

Linux

Polecenie to wygląda mniej więcej tak:

ifconfig eth0:fakenfs 192.0.2.55 netmask 255.255.255.255

Gdzie 192.0.2.55 to adres IP serwera NFS, który zniknął. Powinieneś wtedy być w stanie pingować adres, a także powinieneś być w stanie odmontować system plików (użyj unmount -f). Następnie powinieneś zniszczyć aliasowany interfejs, aby nie kierować ruchu do starego serwera NFS do siebie za pomocą:

ifconfig eth0:fakenfs down

FreeBSD i podobne systemy operacyjne

Polecenie wyglądałoby mniej więcej tak:

ifconfig em0 alias 192.0.2.55 netmask 255.255.255.255

A następnie, aby go usunąć:

ifconfig em0 delete 192.0.2.55

man ifconfig (8) po więcej!

Daniel Papasian
źródło
5
Kombinacja ifconfig eth0:fakenfs ...' and umount -f -l / my / mount / dir 'rozwiązała problem za mnie.
pkt
1
ja też problem z odmontowaniem uniemożliwia mi zawieszenie laptopa, więc to rozwiązanie jest naprawdę przydatne. Stworzyłem również własny skrypt do automatyzacji.
albfan
Czy więc byłoby to usunięcie aliasu z Linuksa ifconfig eth0:fakenfs delete? A może szukam czegoś innego? Lubisz ifconfig eth0 delete 192.0.2.55?
Ehtesh Choudhury
2
@Shurane W Linuksie usunięcie aliasu z ifconfig eth0:fakenfs downpowinno załatwić sprawę .
Sven
1
dzięki, świetna robota! w moim przypadku serwer nfs był z powrotem online i nadal nie mógł go zlikwidować, to
załatwiło sprawę
20

Spróbuj biegać

lsof | grep /mnt/data

Powinien zawierać listę wszystkich procesów uzyskujących dostęp do / mnt / data, które uniemożliwiłyby odmontowanie go.

Ryan Ahearn
źródło
1
Zdecydowanie pomocny, chociaż nie uratował mnie całkowicie. Ale pomocny.
James T Snell
2
Kiedy lsof zawiesza się na zawsze, spróbuj "lsof -b" (jest błąd lsof związany z NFS, zobacz np. Bugzilla.redhat.com/show_bug.cgi?id=962755 ).
dr0i
11

Miałem ten sam problem, ale ani jedno umount /path -f, ani umount.nfs /path -fdrugie fuser -km /path działa

w końcu znalazłem proste rozwiązanie>. <

sudo /etc/init.d/nfs-common restart, więc zróbmy proste umount;-)

Daniel N.
źródło
5
Pracował dla mnie zumount -f -l ...
mivk
Na serwerze ubuntu 14.04 musiałem sudo service nfs-kernel-server restart, ale Twoja odpowiedź zdecydowanie zaprowadziła mnie na właściwą ścieżkę, dzięki!
Murmel
4

Twój serwer NFS zniknął.

Najlepiej byłoby, gdyby wrócił serwer NFS.

Jeśli nie, "umount -f" powinno załatwić sprawę. ZAWSZE nie działa, ale często tak.

Jeśli wiesz, jakie procesy KORZYSTUJĄ z systemu plików NFS, możesz spróbować je zabić, a wtedy może zadziała odmontowanie.

Wreszcie, myślę, że musisz ponownie uruchomić komputer.

NIE montuj też miękko dysków NFS. Używasz mocowań twardych, aby zagwarantować, że zadziałały. Jest to konieczne, jeśli piszesz.


źródło
Montaż miękki i twardy wydaje się być kwestią przypadków użycia. Tak, miękkie montowanie spowodowałoby uszkodzenie aktualnie zapisywanych plików, jeśli serwer NFS z jakiegoś powodu przestanie działać, a zatem może nie być odpowiednim katalogiem krytycznym dla systemu, ale w przypadku dysku z niekrytycznymi plikami, takimi jak muzyka i filmy, będzie działać w porządku.
zrajm
4

Nie udało się znaleźć tutaj działającej odpowiedzi; ale na Linuksie możesz uruchomić "umount.nfs4 / volume -f" i zdecydowanie odmontuje to.

Dave
źródło
4
Czy umount.nfs4 nie jest komendą umount? Innymi słowy, umount -f /some/mountpointto to samo, co umount.nfs4 /some/mountpoint -f.
Ville,
1
Ciekawy. Po mojej stronie (po zniknięciu serwera NFS): umountwywołania umount.nfs, zawiesza się na zawsze (niezależnie od opcji). umount.nfs4 /mnt -ftrwa dość długo, ale kończy. umount.nfs4 /mnt -lkończy się natychmiast (być może dlatego, że nie czeka na procesy).
Tino