Come posso bloccare una partizione quando il dispositivo viene letto come occupato (ma è stato confermato diversamente)?


11

Sto tentando di correre fsck -p /dev/sda5per riparare errori su una partizione ext4, tuttavia il comando genera

fsck from util-linux-ng 2.17.2
fsck.ext4: Device or resource busy while trying to open /dev/sda5
Filesystem mounted or opened exclusively by another program?

Ho confermato l'utilizzo /etc/mtabe lsofche nulla utilizza la partizione e non è montata. Inoltre, fuser -k /dev/sda5chiudevo forzatamente qualsiasi cosa usando il file e umounttentavo di smontarlo inutilmente.

Come posso forzare fsckalmeno a controllare e, si spera, a riparare, la partizione nonostante sia occupata? Supponendo di essere abbastanza sicuro che non sia montato né in uso e che la possibilità di corruzione dei dati non sia un problema.

Tutti i comandi sono stati eseguiti come root da un liveCD a 32 bit Ubuntu 10.04. La partizione è la parte di sistema (non domestica) di un'installazione Ubuntu 10.04 a 32 bit.


Ho trovato un metodo per risolvere il problema più grande relativo a questa domanda, ma sto ancora cercando una risposta su come forzare fsckse pensa che il dispositivo sia occupato (o perché non può essere fatto).
Keeblebrox,

Sto riscontrando lo stesso problema su un sistema RHEL5.8. / tmp è stato smontato, / etc / mtab e / proc / mounts non mostrano alcuna traccia del file system. Ho anche riavviato il computer, assicurandomi di essere l'unico ad aver effettuato l'accesso. lsof non mostra alcun file in uso su / tmp. La stessa procedura funziona bene su 4 server simili installati utilizzando lo stesso profilo kickstart. La differenza tra questi server e questo è che questo ha memoria SAN collegata ad esso. Il demone multipath potrebbe causare questo?
Bram,

Nel mio caso non è stato d'aiuto, ma Red Hat KB ( access.redhat.com/knowledge/solutions/54184 ) consiglia di aggiungere l'opzione del kernel nodmraid come soluzione alternativa per questo problema.
Bram,

Risposte:


4

Ci sono cose (di solito nel kernel, come i thread NFS, i file di scambio, i mount dei bind, ecc.) Che possono tenere occupato un filesystem che non verrà mostrato fuser.

Se provi ad fsckun filesystem che è montato, verrà danneggiato. Dovresti trovare un CD live che non monti automaticamente i tuoi filesystem, come Knoppix o Fedora.


Finora tutto è stato eseguito da un disco live. Sto provando a fsckun filesystem locale, quindi spero che NFS non lo tenga occupato, tuttavia, capisco cosa stai dicendo sul kernel tenendolo occupato in modi che non si presentano necessariamente. Dato che succede ancora in un ambiente di disco live, tuttavia, conosci un modo per impedire al kernel di accedervi abbastanza a lungo da consentirmi di eseguire fsck?
Keeblebrox,

Yikes. In uso da un disco live? Posso solo pensare a due cose: 1) Prova un altro disco live (Fedora invece di Ubuntu, per esempio). 2) Controlla / etc / fstab sul sistema reale. Forse c'è un file di scambio o un mount bind che viene attivato automaticamente? Non necessariamente in questo ordine, potrei aggiungere ...
Steven Pritchard,

OK, in qualche modo mi è mancata totalmente l'ultima riga della domanda. Ho aggiornato la mia risposta in modo appropriato.
Steven Pritchard,

+1 perché la tua menzione di scambio automatico montato ha portato a una svolta non correlata e le tue risposte hanno contribuito a risolvere il problema più grande. Voglio ancora trovare un modo per forzare fsckquando so che il dispositivo non è né occupato né montato e quando la corruzione dei dati non è un problema.
Keeblebrox,

Forse mdadm ha rilevato le firme dei raid sulla partizione e associato ad esso? Controlla / proc / mdstat.
psusi

4

È possibile rimuovere la partizione fstabe riavviare il computer


2

Prova ad avviare un altro liveCD - Raccomando SystemRescueCD che è progettato specificamente per risolvere i problemi con le installazioni di Linux. È anche più piccolo dei tipici LiveCD del sistema operativo. E per essere al sicuro, corri fsckdalla console (senza X).

Se lo standard fsck -pnon funziona, puoi anche provare e2fsck -y -f.


Secondo la pagina man , e2fsck -y -fforza un controllo su una partizione pulita. Non menziona nulla sulle partizioni montate. Sai se forzerà anche un controllo allora?
Keeblebrox,

Probabilmente no, ma dovresti assolutamente evitare i filesystem montati su fsck (vedi i paragrafi nella parte superiore della e2fsckmanpage). Un altro pensiero: se /etc/mtabsembra indicare che la partizione non è montata, ma ottieni ancora l'errore, dovresti anche controllare /proc/mounts, poiché il mtabfile potrebbe essere obsoleto per qualche strano motivo.
rozcietrzewiacz,

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.