Come ripulire un elenco di inode orfani non elaborati?


17

Ho provato a montare un filesystem precedentemente montato in sola lettura leggibile :

mount -o remount,rw /mountpoint

Sfortunatamente, non ha funzionato:

mount: /mountpoint not mounted already, or bad option

dmesg rapporti:

[2570543.520449] EXT4-fs (dm-0): Couldn't remount RDWR because of unprocessed orphan inode list.  Please umount/remount instead

Anche A umountnon funziona:

umount /mountpoint
umount: /mountpoint: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

Sfortunatamente nessuno lsofdei due fusernon mostra alcun processo di accesso a qualcosa che si trova sotto il punto di montaggio.

Quindi - come posso ripulire questo elenco orfano non elaborato per poter montare nuovamente il filesystem senza riavviare il computer?


1
Ci hai già provato fuser -km /mountpoint? Attenzione però, il flag -k ucciderà tutti i processi che accedono a quella directory.
Richard Keller,

Puoi fornire un po 'più di comprensione su cosa consiste dm-0?
magrezza

Ho la sensazione di sapere cosa succede, ma puoi dirmi, il filesystem era originariamente rw, rimontato (a causa di un errore o altro) ro, e ora stai provando di nuovo a rw?
Matthew Ife,

@Mlfe: il filesystem era precedentemente rimontato rodi proposito. È un filesystem su un LVM che contiene un'istantanea di backup giornaliera che verrà impostata rwdurante l'operazione di backup e rodopo aver terminato il backup.
bmk,

Risposte:


6

Si pulisce l'elenco degli inode orfani non elaborati smontando e rimontando il filesystem.

Una discussione estesa dalla mailing list linux-ext4 contiene ulteriori informazioni su cosa sia questo messaggio e perché possa apparire. In breve, è successa una di queste due cose: o ti sei imbattuto in un bug del kernel, o molto più probabilmente, un po 'di corruzione del filesystem è avvenuta una delle volte precedenti in cui hai rimontato il filesystem in sola lettura. Questo è probabilmente il motivo per cui il sistema pensa che qualcosa stia ancora usando il filesystem quando non lo è.

Se è passato un anno e non hai ancora riavviato la macchina, rinuncia e pianifica una finestra di manutenzione.


Nel frattempo ho programmato una finestra di manutenzione e riavviato la macchina. Ciò ha risolto il problema (non mi aspettavo nient'altro ...). Accetterò la tua risposta. Probabilmente hai ragione sul fatto che c'è stata una certa corruzione del filesystem - anche se non posso provarlo.
bmk,

25

Se stai usando ext2 / ext3 / ext4 dovresti essere in grado di usare e2fsckper ripulire gli inode orfani:

e2fsck -f

Per reiserfs, è possibile utilizzare reiserfsckche pulirà anche gli inode orfani.


Non sei sicuro del motivo per cui questo è stato downvoted, forse fornire una ragione per il downvote? L'esecuzione di e2fsck pulisce gli inode orfani, che vedrai nell'output della console come clearing orphaned inode XXXXdove XXXX è un numero di inode. Puoi facilmente eseguire e2fsck senza riavviare il sistema. Dopo aver eseguito e2fsck dovresti essere in grado di rimontare la partizione.
Richard Keller,

2
Grazie grazie mille .. passo ore a capire l'errore. Fare 'e2fsck -f / dev / sda1' ha risolto i nodi orfani insieme ad altre correzioni. Ho appena detto di sì a tutti e ora funziona bene :)
whitehat

1
Molte grazie!!. I tuoi comandi sono stati risolti in sola lettura disco VM VirtualBox dopo l'installazione della nuova versione VirtualBox non riuscita: sudo e2fsck -f / dev / sda1
nine9five

2
Perfetto, ha funzionato per me sulla partizione di root. La risposta accettata (riavvio) non ha funzionato da sola. Ho dovuto riavviare dopo e2fsck, quindi sembra che tu abbia ancora bisogno di una finestra di manutenzione.
AdamS

1
Risposta migliore di quella accettata. Ha funzionato perfettamente per il mio VPS. Ho trovato molti errori e risolto il problema, quindi riavviare e tutto funziona di nuovo. Mi ha salvato la giornata.
Brain Foo Long,

6

e2fsck -f <mount point> non funzionerà.

Per prima cosa scopri i punti di mount con

sudo mount -l

Quindi premere direttamente l'unità.

Per esempio per me

sudo e2fsck -f /dev/xvda2

Quando si google un problema e si arriva alla propria soluzione su StackOverflow. La mia vita ora è completa.
Ganesh Krishnan,

1

Consiglierei di smontare la partizione con forza, cioè usando l'opzione -f, e di eseguire un controllo del file system usando fsck.


1
Sfortunatamente, anche umount -fnon ci è riuscito. Il messaggio di errore è lo stesso di un semplice umount.
bmk,

1

Probabilmente dovresti provare un smontaggio pigro, cioè:

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