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

18

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

Ho provato:

touch /forcefsck

Ho anche provato:

shutdown -rF now

e ancora, dopo il riavvio, vedo errori.

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

Come posso forzare un "forzato" "forzato" "risolvere seriamente il mio filesystem" fsck del file system "/" al riavvio?

Precisione: eseguo fsck.ext4 -n perché è un filesystem montato, per verificare se ci sono errori. Questo mi dice che ci sono. Ho pensato che il fsck automatico ogni 30 mounts durante il processo di avvio sia precisamente per occuparsi degli errori nel filesystem di root. Ma non lo fa nel mio caso. Potrei riavviare con un LiveCD e correggere gli errori, e quindi riavviare di nuovo, ma questo è un periodo di inattività grave 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 il autofsck avrebbe risolto, non è vero?

[email protected]:~# 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
    
posta UrkoM 24.11.2010 - 15:27

6 risposte

10

Dalla pagina man di e2fsck:

  

"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 di 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 ''. davvero sapere cosa stanno facendo dovrebbe prendere in considerazione la risposta a questa domanda in qualsiasi altro modo. "

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

Se non controlli il filesystem mentre è montato, non capisco perché devi usare touch /forcefsck puoi semplicemente smontarlo e correggerlo. Ma se è così e dopo una correzione i tuoi FS hanno ancora degli errori, allora puoi considerare di usare:

e2fsck -cy /dev/sda5

Questo risolverà un problema relativo al disco rigido chiamato blocchi difettosi che potresti avere (ci vorrà molto tempo).

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

    
risposta data Nyamiou The Galeanthrope 24.11.2010 - 22:27
22

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

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

Tuttavia, non è garantito che fsck risolverà qualsiasi cosa trovi. Per fare ciò, è necessario modificare il file / etc / default / rcS. C'è una linea alla fine di quel file:

FSCKFIX=no

Questo deve essere modificato come segue:

FSCKFIX=yes

Questo avrà lo stesso effetto dell'esecuzione di fsck con l'opzione -y che imporrà tutte le correzioni che è possibile implementare e non richiederà l'interazione dell'utente.

Ciò ti consentirà di eseguire il fsck come richiesto dall'OP senza dover ricorrere all'avvio da un disco live che non è sempre possibile, specialmente se si è su un sistema remoto.

    
risposta data Brian 12.11.2014 - 15:50
12
sudo touch /forcefsck
sudo reboot

Hai una tipografia che stai toccando / forcefcsk. La "c" e la "s" vengono scambiate. fsck è l'abbreviazione di FileSystemChecK.

    
risposta data Dan Benamy 31.05.2012 - 17:09
3

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

    
risposta data charlie-tca 24.11.2010 - 20:33
1

Puoi avere le revisioni fatte automaticamente nel modo seguente:

Tune2fs -c 5 -i 10 / dev / sda1

-c è il numero massimo di montaggi prima dell'esecuzione di fsck e -i è il numero massimo di giorni prima dell'esecuzione di fsck .

In questo caso verrà effettuato 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.

    
risposta data hk3jld 01.01.2017 - 01:00
0

touch /forcefsck da solo non garantisce che il mio sistema abbia eseguito fsck al successivo avvio. Dovevo anche eseguire:

sudo tune2fs -c 1 /dev/<my partition>

es.

sudo tune2fs -c 1 /dev/sda1

Altre spiegazioni che ho trovato sono qui: Come Forza fsck per controllare il filesystem dopo il riavvio

    
risposta data Clock ZHONG 17.12.2016 - 10:21

Leggi altre domande sui tag