Forza fsck.ext4 al riavvio, ma veramente "forte"


21

Uno dei miei server Ubuntu 10.04 mi sta dando problemi. Quando fsck.ext4 -n /dev/sda5eseguo mi dice che ci sono errori nel conteggio degli inode liberi, nel conteggio dei blocchi liberi e altro ancora.

Ho provato:

touch /forcefsck

Ho anche provato:

shutdown -rF now

e ancora, dopo il riavvio, vedo errori.

Ho anche appena controllato il mio netbook eeePC, Ubuntu 10.10, e ho lo stesso problema!

Come posso forzare un fsck veramente "forzato" "forzato" "riparare seriamente il mio filesystem" del filesystem "/" al riavvio?

Chiarimento: corro fsck.ext4 -nperché è un filesystem montato, per verificare se ci sono errori. Questo mi dice che ci sono. Ho pensato che il fsck automatico ogni 30 mount durante il processo di avvio è proprio per occuparsi degli errori nel filesystem di root. Ma non lo fa nel mio caso. Potrei riavviare con un LiveCD e correggere gli errori, quindi riavviare di nuovo, ma questo è un grave downtime per un server live. Un riavvio, auto fsck, quindi continuare l'avvio è molto più sostenibile su un server live e credo che dovrebbe essere il comportamento giusto.

Informazioni aggiuntive: ecco l'output. Sembra qualcosa che l'autofsck avrebbe risolto, vero?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks

qual è la versione del server Ubuntu che stai utilizzando?
crncosta,

10.04. Modificherò la mia domanda.
UrkoM,

Non penso che tu possa davvero farlo, in effetti potresti fare meglio a fare il controllo manualmente.
RolandiXor

1
Scusa ma ho ancora bisogno di maggiori informazioni. Stai facendo fsck su filesystem montati? puoi fare il boot da un LiveCD e ricontrollare (con il tuo / dev / sda5 smontato)?
crncosta,

Non è possibile che non sia il file system ma il disco rigido è rotto? Nel qual caso ci si aspetterebbe che ext4 non stia riparando errori così come se ci fossero solo alcuni settori danneggiati.
Stefano Palazzo

Risposte:


10

Dalla pagina man di e2fsck:

"Nota che in generale non è sicuro eseguire e2fsck su filesystem montati. L'unica eccezione è se viene specificata l'opzione -n ​​e non sono specificate le opzioni -c, -l o -L. Tuttavia, anche se è sicuro per fare ciò, i risultati stampati da e2fsck non sono validi se il filesystem è montato. Se e2fsck chiede se è necessario controllare un filesystem che è montato, l'unica risposta corretta è '' no ''. Solo gli esperti che sanno davvero cosa stanno facendo dovrebbero considerare di rispondere a questa domanda in qualsiasi altro modo. "

Quindi, se controlli un FS montato con fsck anche usando l'opzione -n, il risultato potrebbe non essere affatto valido. Non controllare i filesystem montati. Utilizzare un Live-CD / Live-USB.

Se non controlli il filesystem mentre è montato, non capisco perché devi usarlo touch /forcefsck, puoi semplicemente smontarlo e ripararlo. Ma se è il caso e dopo una correzione il tuo FS ha ancora errori, puoi considerare di usare:

e2fsck -cy /dev/sda5

Ciò risolverà un problema relativo al disco rigido chiamato blocchi danneggiati che potresti avere (ciò richiederà molto tempo).

Se vuoi controllare un filesystem montato, non so come procedere ma penso che dovresti creare un'altra domanda.


Hai ragione, il filesystem è montato. E ovviamente ho bisogno di fare fsck quando smontato. Ma corro fsck -n per controllare mentre montato, senza apportare modifiche e mi dice che ci sono errori. E il fsck al riavvio non dovrebbe risolverli ???
UrkoM,

Ho appena notato quello che dici nella prima frase: perché fsck -n non sarebbe valido su un filesystem montato? Come posso verificare se un filesystem montato presenta errori in modo affidabile?
UrkoM,

Puoi controllare la pagina man di e2fsck che dice: "Nota che in generale non è sicuro eseguire e2fsck su filesystem montati. L'unica eccezione è se viene specificata l'opzione -n, e -c, -l o -L sono non specificato. Tuttavia, anche se è sicuro farlo, i risultati stampati da e2fsck non sono validi se il filesystem è montato. Se e2fsck chiede se è necessario controllare un filesystem che è montato, l'unica risposta corretta è '' no ''. Solo gli esperti che sanno davvero cosa stanno facendo dovrebbero considerare di rispondere a questa domanda in qualsiasi altro modo. "
Nyamiou The Galeanthrope,

Non so come controllare un file system montato, forse dovresti creare un'altra domanda.
Nyamiou The Galeanthrope,

Puoi aggiungere questi ultimi due commenti alla tua risposta? Allora lo accetterò. Non lo sapevo, quindi è per questo ... Penso che sia perché fsck -n non elabora il journal, quindi lo stato del filesystem è incoerente senza guardare le ultime modifiche mantenute lì.
UrkoM,

24

So che questo è un thread molto vecchio, ma di recente ho dovuto risolvere questo problema, quindi volevo pubblicare come forzare il sistema operativo a risolvere i problemi riscontrati con fsck durante l'avvio (per 12.04).

È necessario eseguire il comando sudo touch /forcefsck. Questo farà sì che esegua un fsck al prossimo avvio. Puoi vedere i risultati di fsck in /var/log/boot.log.

Tuttavia, non sei sicuro che fsck risolverà tutto ciò che trova. Per fare ciò, dovresti modificare il file / etc / default / rcS. C'è una riga alla fine di quel file:

FSCKFIX=no

Questo deve essere modificato come segue:

FSCKFIX=yes

Ciò avrà lo stesso effetto dell'esecuzione di fsck con l'opzione -y che imporrà tutte le correzioni che possono essere implementate e non richiederà l'interazione dell'utente.

Ciò ti consentirà di eseguire fsck come l'OP stava chiedendo senza dover ricorrere all'avvio da un disco live che non è sempre possibile soprattutto se si è su un sistema remoto.


1
La modifica di questa voce sulla mia istanza di Ubuntu EC2 insieme ai comandi sudo touch /forcefscke sudo shutdown -rha risolto correttamente i problemi del file system e l'avviso di controllo al momento dell'accesso. Facile e senza interruzioni - evviva.
c.gutierrez,

La stessa domanda è stata posta su Server Fault e questa risposta è stata anche quella che ha funzionato per me su un sistema Ubuntu 14.04. Basta fare il sudo touch /forcefscke poi riavviare no; il montaggio rcSera necessario.
Teemu Leisti,

12
sudo touch /forcefsck
sudo reboot

Hai un typo- stai toccando / forcefcsk. La "c" e la "s" vengono scambiate. fsck è l'abbreviazione di FileSystemChecK.


Questo non funzionerebbe per me perché il filesystem di root è montato in sola lettura a causa di errori che devo correggere fsck! Pollo e il problema delle uova che può essere risolto solo tramite LiveCD o trascinando l'unità in un'altra macchina.
HDave

3

Non è possibile forzare un fsck su / che riparerà perché la partizione è in uso. Prova a eseguire il controllo da un'altra partizione o live cd.


2
Molto vero, ma il fsck automatico all'avvio dovrebbe avvenire prima che la partizione sia in uso, proprio per poter correggere errori su "/". Altrimenti, che senso ha?
UrkoM,

3
Credo che il controllo avvenga prima dell'uso, tuttavia è più un controllo consultivo. Sta a te decidere come correggere gli errori. Un semplice controllo è quando si guarda / etc / fstab. "/" Ottiene un controllo diverso rispetto alle altre partizioni.
charlie-tca,

Succede prima che il root venga ruotato? vale a dire. Disco RAM INITial.
mckenzm,

1

Le revisioni possono essere eseguite automaticamente nel modo seguente:

Tune2fs -c 5 -i 10 / dev / sda1

-cè il numero massimo di montaggi prima della corsa fscked -iè il numero massimo di giorni prima della corsa fsck.

In questo caso verrà eseguito ogni 5 montaggi o ogni 10 giorni, a seconda dell'evento che si verifica per primo.

Ho due computer, uno con Linux SuSE 13.2 e l'altro con Linux Mint 18.0 e in entrambi funziona perfettamente.


Quali sono i moduli e i commenti nel modulo automatico come segue: Tune2fs -c 5 -i 10 / dev / sda1 Dove: -c è il numero massimo di montaggi prima di eseguire fsck Dove: -i è il numero massimo di giorni prima di eseguire fsck In questo caso verrà eseguito ogni 5 montaggi o ogni 10 giorni, a seconda dell'evento che si verifica per primo. Ho due computer, uno con Linux SuSE 13.2 e l'altro con Linux MInt 18.0 ed entrambi funzionano perfettamente.
hk3jld,

Quali sono i moduli e i commenti nel modulo automatico come segue: Tune2fs -c 5 -i 10 / dev / sda1 Dove: -c è il numero massimo di montaggi prima di eseguire fsck Dove: -i è il numero massimo di giorni prima di eseguire fsck In questo caso verrà eseguito ogni 5 montaggi o ogni 10 giorni, a seconda dell'evento che si verifica per primo. Ho due computer, uno con Linux SuSE 13.2 e l'altro con Linux MInt 18.0 ed entrambi funzionano perfettamente. Non conosco l'inglese ma utilizzo un traduttore, spero che l'allenamento
vada

1
Funziona anche su Ubuntu?
George Udosen,

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.