Forza lo smontaggio della directory montata su NFS [chiuso]


163

Ho una directory montata su NFS su una macchina Linux che si è bloccata. Ho provato a forzare uno smontaggio, ma non sembra funzionare:

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

Se digito " mount", sembra che la directory non sia più montata, ma si blocca se lo faccio " ls /mnt/data", e se provo a rimuovere il mountpoint, ottengo:

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

C'è qualcosa che posso fare oltre a riavviare la macchina?


3
Sono d'accordo, chiunque abbia votato per chiudere questo gravemente confuso. Questo problema mi ha afflitto per anni e la risposta di seguito, umount -l, per Linux, è la prima soluzione che ho trovato che ha funzionato.
Lizardx,

1
ok, ma potresti trovarlo su Super User. anche se non vedo perché la domanda non sia stata spostata anziché chiusa.
Deeenes,

Perché umount --forcefarà di più per smontare e -vo -vvvrivelerà di più qual è il problema con mount. Quindi prova:umount -vvv --force /badmount
gaoithe

5
@deeenes Perché questa domanda è stata posta nel settembre 2008 e Super User non è stato lanciato fino a luglio 2009 ;-)
Martin Tournoij

@Carpetsmoker, ma è stato contrassegnato come fuori tema nel 2013
suggerisce il

Risposte:


254

Potresti provare un smontaggio pigro:

umount -l

3
Questo non è implementato ovunque. Non ce l'ho su FreeBSD, per esempio.
Daniel Papasian,

28
@Daniel: certo, ma è una domanda Linux (etichettata come tale anche), e Linux ce l'ha.
Jürgen A. Erhard,

5
Ho provato questo comando su Ubuntu e non ha funzionato.
Kieran Andrews,

1
Questo ha funzionato per me (Slackware 14.0). Avevo un mount CIFS, non NFS, che pendeva tutto (incluso lsof). Ho causato il problema uscendo da uno script di backup che sto scrivendo. Lo script monta e smonta la directory, ma qualcosa rsyncsull'irrompersi ha incasinato il mio mount. Non sapevo del pigro smontaggio. Potrebbe essere stato il dispositivo NAS a causare tutti i problemi. Dopo aver smontato con successo, si è scoperto che dovevo riavviare il dispositivo prima di poterlo montare nuovamente.
Paddy,

10
@KieranAndrews e chiunque altro su Ubuntu, prova fusermount -uz /path/to/file. Ha funzionato un incanto per me! :)
Matt Fletcher il

78

Se il server NFS è scomparso e non è possibile ripristinarlo online, un trucco che utilizzo è quello di aggiungere un alias all'interfaccia con l'IP del server NFS (in questo esempio, 192.0.2.55).

Linux

Il comando per questo è qualcosa di approssimativamente simile a:

ifconfig eth0:fakenfs 192.0.2.55 netmask 255.255.255.255

Dove 192.0.2.55 è l'IP del server NFS che è andato via. Dovresti quindi essere in grado di eseguire il ping dell'indirizzo e dovresti anche essere in grado di smontare il filesystem (usa smonta -f). Dovresti quindi distruggere l'interfaccia con alias in modo da non indirizzare più il traffico al vecchio server NFS verso te stesso con:

ifconfig eth0:fakenfs down

FreeBSD e sistemi operativi simili

Il comando sarebbe qualcosa del tipo:

ifconfig em0 alias 192.0.2.55 netmask 255.255.255.255

E poi per rimuoverlo:

ifconfig em0 delete 192.0.2.55

man ifconfig (8) per di più!


5
Una combinazione di ifconfig eth0:fakenfs ...' and umount -f -l / my / mount / dir 'ha risolto il problema per me.
punti

1
anche a me, il problema di smontaggio mi impedisce di sospendere il mio laptop, quindi questa soluzione è davvero utile. Ho realizzato anche la mia sceneggiatura da automatizzare.
albfan,

Quindi, per rimuovere un alias da Linux, sarebbe ifconfig eth0:fakenfs delete? O sto cercando qualcos'altro? Come ifconfig eth0 delete 192.0.2.55?
Ehtesh Choudhury,

2
@Shurane Sotto Linux, rimuovere un alias con ifconfig eth0:fakenfs downdovrebbe fare il trucco.
Sven

1
grazie, brillante lavoro in giro! nel mio caso il server nfs era di nuovo online e non riusciva ancora a smontarlo, questo ha funzionato, evviva
nmirceac

20

Prova a correre

lsof | grep /mnt/data

Ciò dovrebbe elencare qualsiasi processo che accede a / mnt / data che ne impedirebbe la rimozione.


1
Sicuramente utile, anche se non mi ha salvato del tutto. Ma utile.
James T Snell,

2
Quando lsof si blocca per sempre, prova "lsof -b" (esiste un bug lsof realizzato su NFS, vedi ad esempio bugzilla.redhat.com/show_bug.cgi?id=962755 ).
dr0i,

11

Ho avuto lo stesso problema, e nessuno dei due umount /path -f, né umount.nfs /path -f, né fuser -km /path, opere

finalmente ho trovato una soluzione semplice>. <

sudo /etc/init.d/nfs-common restart, quindi facciamo il semplice umount;-)


5
Ha funzionato per me conumount -f -l ...
mivk il

Sul server Ubuntu 14.04 ho dovuto sudo service nfs-kernel-server restart, ma la tua risposta mi ha portato sicuramente sulla strada giusta, grazie!
Murmel,

4

Il tuo server NFS è scomparso.

Idealmente, la soluzione migliore è se il server NFS ritorna.

In caso contrario, "umount -f" avrebbe dovuto fare il trucco. Non funziona SEMPRE, ma spesso lo farà.

Se ti capita di sapere quali processi STANNO UTILIZZANDO il filesystem NFS, potresti provare a uccidere quei processi e quindi forse uno smontaggio funzionerebbe.

Infine, immagino che dovrai riavviare.

Inoltre, NON montare soft-drive sulle tue unità NFS. Usi hard-mount per garantire che abbiano funzionato. Questo è necessario se stai scrivendo.


Il montaggio soft vs hard sembra essere una questione di casi d'uso. Sì, un montaggio dolce provocherebbe la rottura dei file attualmente in fase di scrittura se il server NFS si interrompe per qualche motivo e potrebbe quindi non essere adatto alle directory critiche del sistema, ma per un'unità con file non critici come musica e film funzionerebbe va bene.
zrajm,

4

Impossibile trovare una risposta funzionante qui; ma su Linux è possibile eseguire "umount.nfs4 / volume -f" e sicuramente lo smonta.


4
Umount.nfs4 non è un sottocomando per umount? In altre parole, umount -f /some/mountpointè lo stesso di umount.nfs4 /some/mountpoint -f.
Ville,

1
Interessante. Al mio fianco (dopo che NFS-Server è svanito): umountchiamate umount.nfs, si blocca per sempre (indipendentemente dall'opzione). umount.nfs4 /mnt -frichiede abbastanza tempo, ma completa. umount.nfs4 /mnt -lsi completa immediatamente (forse perché non attende i processi).
Tino,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.