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?


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

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!


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.


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


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.


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.


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