Cosa fa fsck -p (preen) su ext4?


16

Stavo leggendo un post sul blog sulla riparazione del filesystem e l'autore ha pubblicato una buona domanda ... fsck -psi suppone che corregga automaticamente gli errori minori senza l'intervento umano. Ma cosa risolverà esattamente quando viene detto di anteporre il filesystem? Quali errori correggerà e cosa lo farà arrestare e dire all'utente che deve eseguire interattivamente fsck? C'è un elenco di qualche tipo?

Ho cercato su Google e tutto quello che trovo è la pagina man, che non dice cosa -prisolverà o cosa innescherà la bandiera pratica. Sono particolarmente interessato al filesystem ext4.

Risposte:


18

La risposta alla tua domanda si trova nel e2fsck/problems.cfile di codice sorgente di e2fsprogs . Cercare la PR_PREEN_OKbandiera dovrebbe iniziare.

Poiché la gestione completa degli errori è un po 'più complicata, a causa della moltitudine di diverse condizioni di errore che possono verificarsi, si consiglia di dare un'occhiata più da vicino al codice se si è preoccupati per un caso specifico. Tuttavia, gli elenchi di seguito sono stati estratti dai commenti alle condizioni di errore e dovrebbero fornire una visione d'insieme degli effetti della modalità preen.

I seguenti errori / avvisi sono attualmente gestiti automaticamente quando -pviene specificato il flag:

  • Suggerimento di trasferimento
  • L'inode del journal non è valido
  • Il superblocco diario è corrotto
  • La bandiera has_journal di Superblock è chiara ma ha un diario
  • Il flag superblock needs_recovery è impostato ma non è presente il journal
  • La revisione del filesystem è 0, ma i flag delle caratteristiche sono impostati
  • Suggerimento Superblock per superblock esterno
  • descrittore di gruppo N contrassegnato non inizializzato senza set di funzionalità.
  • gruppo N blocco bitmap non inizializzato ma inode bitmap in uso.
  • Il descrittore di gruppo N ha un conteggio di inode non utilizzato non valido.
  • Bitmap dell'ultimo blocco di gruppo non inizializzato.
  • Il flag test_fs è impostato (ed ext4 è disponibile)
  • L'ultimo tempo di montaggio è nel futuro (sfumato)
  • L'ultimo tempo di scrittura è nel futuro (sfumato)
  • Il checksum del gruppo di blocchi (domanda di blocco) non è valido.
  • La directory principale ha impostato dtime
  • L'inode riservato ha una modalità errata
  • L'inode eliminato ha zero dtime
  • Inodo in uso, ma ora impostata
  • Directory di lunghezza zero
  • Inode ha i_size errato
  • Inode ha i_blocks errati
  • Brutto superblocco in gruppo
  • Descrittori di gruppi di blocchi errati nel gruppo
  • Block ha rivendicato senza motivo
  • Errore durante l'allocazione dei blocchi per il riposizionamento dei metadati
  • Errore durante l'allocazione del buffer dei blocchi durante il processo di trasferimento
  • Riposizionare le informazioni sul gruppo di metadati da X a Y
  • Riposizionare le informazioni del gruppo di metatdati su X
  • Errore di lettura blocco durante il processo di trasferimento
  • Errore di scrittura del blocco durante il processo di trasferimento
  • Flag immutabile impostato su un dispositivo o inode socket
  • Dimensione diversa da zero per dispositivo, Fifo o socket inode
  • La revisione del filesystem è 0, ma i flag delle caratteristiche sono impostati
  • L'inode del journal non è in uso, ma contiene dati
  • Il diario ha una cattiva modalità
  • Flag INDEX_FL impostato su un filesystem non HTREE
  • Flag INDEX_FL impostato su una non directory
  • Nodo radice non valido nella directory HTREE
  • Versione hash non supportata nella directory HTREE
  • Flag incompatibile nel nodo radice HTREE
  • HTREE troppo in profondità
  • inode non valido-> i_extra_isize
  • voce ea non valida-> nome_e_len
  • voce ea non valida-> e_value_offs
  • voce ea non valida-> e_value_block
  • voce ea non valida-> e_value_size
  • voce ea non valida-> e_hash
  • inode mancante EXTENTS_FL, ma è un'estensione inode
  • Inode non dovrebbe avere EOFBLOCKS_FL impostato
  • La voce della directory ha inode eliminato o non utilizzato
  • Tipo di file di directory non impostato
  • Tipo di file di directory impostato sul filesystem
  • Nodo radice HTREE non valido
  • Limite HTREE non valido
  • Conteggio HTREE non valido
  • Il nodo interno HTREE ha hash fuori ordine nella tabella
  • Inodo trovato nel gruppo in cui è impostato _INODE_UNINIT
  • Inodo trovato nell'area di inode di gruppo non utilizzata
  • i_blocks_hi dovrebbe essere zero
  • / perso + trovato non trovato
  • Inode a lunghezza zero non collegato
  • Inode ref count errato
  • Il riempimento alla fine dell'inode bitmap non è impostato.
  • Il riempimento alla fine del blocco bitmap non è impostato.
  • Blocca l'intestazione delle differenze bitmap
  • Blocco non utilizzato, ma contrassegnato in bitmap
  • Blocco usato, ma non marcato usato in bitmap
  • Fine delle differenze di bitmap del blocco
  • Intestazione differenze bitmap Inode
  • Inodo non utilizzato, ma contrassegnato in bitmap
  • Inode usato, ma non marcato usato in bitmap
  • Le differenze di bitmap di Inode terminano
  • Gli inode gratuiti contano per il gruppo sbagliato
  • Le directory contano per il gruppo sbagliato
  • Gli inode gratuiti contano male
  • I blocchi gratuiti contano per il gruppo sbagliato
  • I blocchi gratuiti contano male
  • Intervallo di blocchi non utilizzato, ma contrassegnato in bitmap
  • Intervallo di blocchi utilizzato, ma non contrassegnato utilizzato in bitmap
  • Intervallo di nodi non utilizzato, ma contrassegnato in bitmap
  • Intervallo di nodi usato, ma non marcato usato in bitmap
  • Blocco / i gruppo N in uso ma il gruppo è contrassegnato BLOCK_UNINIT
  • Inode di gruppo N in uso ma il gruppo è contrassegnato INODE_UNINIT
  • Ricrea diario se è impostato il flag E2F_FLAG_JOURNAL_INODE

Le seguenti condizioni di errore causano l'interruzione del processo fsck non interattivo, anche se il -pflag è impostato:

  • Blocca bitmap non nel gruppo
  • Inode bitmap non nel gruppo
  • Tabella Inode non in gruppo
  • La dimensione del filesystem è errata
  • Il conteggio degli nodi in superblocco non è corretto
  • Hurd non supporta la funzione filetype
  • Il diario ha un tipo di superblocco sconosciuto
  • Chiedi se dovremmo cancellare il diario
  • Il superblocco journal ha un flag flag di sola lettura sconosciuto
  • Il superblocco diario ha un flag flag di funzionalità incompatibile sconosciuto
  • Il diario ha un numero di versione non supportato
  • Chiedi comunque se dovremmo eseguire il diario
  • Blocchi riservati senza resize_inode
  • Resize_inode non abilitato, ma resize inode è diverso da zero
  • Inode di ridimensionamento non valido
  • L'ultimo tempo di montaggio è nel futuro
  • L'ultima ora di scrittura è nel futuro
  • descrittore di gruppo N checksum non è valido.
  • La directory principale non è un inode
  • Blocca i conflitti bitmap con altri blocchi fs
  • Bitmap Inode è in conflitto con qualche altro blocco fs
  • La tabella Inode è in conflitto con alcuni altri blocchi fs
  • Block bitmap è su un blocco non valido
  • Inode bitmap è su un blocco errato
  • Numero di blocco illegale nell'inode
  • Il numero di blocco si sovrappone ai metadati fs
  • Inode ha blocchi illegali (domanda di blocco)
  • Troppi blocchi danneggiati nell'inode
  • Numero di blocco illegale nell'inode del blocco non valido
  • L'inode del blocco errato ha blocchi illegali (domanda di blocco)
  • Blocco errato utilizzato come blocco indiretto blocco errato
  • L'incoerenza non può essere risolta rapidamente
  • Richiesta blocco primario non valida
  • Sopprimere il prompt dei messaggi
  • Il flag Imagic è impostato su un inode quando il filesystem non lo supporta
  • Flag di compressione impostato su un inode quando il filesystem non lo supporta
  • Gestisci gli inode che facevano parte dell'elenco dei link orfani
  • Gestire gli inode che facevano parte dell'elenco dei collegamenti orfani danneggiati (domanda di blocco)
  • Errore durante la lettura del blocco attributo esteso
  • Blocco di attributi estesi non valido
  • Conteggio riferimenti attributi estesi errato
  • Più blocchi EA non supportati
  • Errore collisione allocazione EA
  • Nome attributo esteso non valido
  • Valore dell'attributo esteso non valido
  • Inode troppo grande (domanda di chiusura)
  • Directory troppo grande
  • File normale troppo grande
  • Symlink troppo grande
  • Il blocco errato ha un blocco indiretto in conflitto con il blocco del filesystem
  • Inode di ridimensionamento non riuscito
  • inode sembra essere una directory
  • Errore durante la lettura dell'albero delle estensioni
  • Mancata iterazione delle estensioni
  • Blocco iniziale errato in estensione
  • L'estensione termina oltre il filesystem
  • EXTENTS_FL flag impostato su un filesystem non extents
  • inode ha estensioni, superblock manca della funzione INCOMPAT_EXTENTS
  • Il symlink veloce ha impostato EXTENTS_FL
  • Le estensioni sono fuori servizio
  • Inode ha un nodo di estensione non valido
  • Clonare blocchi duplicati / danneggiati?
  • Numero di inode errato per '.'
  • La voce della directory ha un numero di inode errato
  • La voce Directry è collegata a "."
  • I punti di accesso alla directory all'inode ora si trovano in un blocco errato
  • La voce della directory contiene un collegamento a una directory
  • La voce della directory contiene un collegamento alla directory principale
  • La voce della directory ha caratteri non ammessi nel suo nome
  • Manca "." nell'inode della directory
  • Manca ".." nell'inode della directory
  • La prima voce nell'inode della directory non contiene '.'
  • La seconda voce nell'inode della directory non contiene '..'
  • i_faddr dovrebbe essere zero
  • i_file_acl dovrebbe essere zero
  • i_dir_acl dovrebbe essere zero
  • i_frag dovrebbe essere zero
  • i_fsize dovrebbe essere zero
  • inode ha una cattiva modalità
  • directory corrotta
  • nome file troppo lungo
  • L'inode della directory ha un blocco mancante (buco)
  • '' non è NULL terminato
  • '..' non è terminato NULL
  • Inode dispositivo a caratteri illegali
  • Inode del dispositivo di blocco illegale
  • Duplicare '.' iscrizione
  • Voce duplicata ".."
  • Rec_len finale è errato
  • Errore durante la lettura del blocco directory
  • Errore durante la scrittura del blocco directory
  • Voce di directory per "." è grande. Diviso?
  • Inode FIFO illegale
  • Inode socket illegale
  • Tipo di file di directory errato
  • Il nome file della directory è nullo
  • Symlink non valido
  • i_file_acl (blocco attributo esteso) non è valido
  • Il filesystem contiene file di grandi dimensioni, ma non ha tale flag in sb
  • Cancella directory HTREE non valida
  • Blocco errato nel nodo interno htree
  • Trovata la voce di directory duplicata
  • Trovato nome file non univoco
  • i_blocks_hi dovrebbe essere zero
  • Blocco HTREE imprevisto
  • Inode root non allocato
  • Nessuna stanza persa + trovata
  • Inode directory non connesso
  • .. la voce non è corretta
  • Lost + non ha trovato una directory
  • Inode non collegato
  • Superblock corrotto
  • Frammenti non supportati
  • Errore durante la determinazione della dimensione del dispositivo fisico del filesystem
  • Il journal esterno ha più filesystem (non supportati)
  • Impossibile trovare il diario esterno
  • Il diario esterno ha un superblocco difettoso
  • Superblock ha un UUID di diario non valido
  • Errore durante l'assegnazione della bitmap dell'inode
  • Errore durante l'allocazione della bitmap del blocco
  • Errore durante l'allocazione delle informazioni sul collegamento icount
  • Errore durante l'allocazione dell'array di blocchi di directory
  • Errore durante la scansione degli inode
  • Errore durante l'iterazione su blocchi
  • Errore durante la memorizzazione delle informazioni sul conteggio degli inode
  • Errore durante la memorizzazione delle informazioni sul blocco della directory
  • Errore durante la lettura dell'inode (per cancellare)
  • Errore durante l'allocazione della struttura di refcount
  • Errore durante la lettura del blocco degli attributi estesi durante la correzione del refcount
  • Errore durante la scrittura del blocco degli attributi estesi durante la correzione del refcount
  • Errore nell'allocazione della struttura di allocazione della regione EA
  • Errore durante la scansione degli inode
  • Errore durante l'assegnazione della bitmap dell'inode
  • Errore interno: impossibile trovare dir_info
  • Errore durante l'allocazione della struttura icount
  • Errore durante l'iterazione su blocchi di directory
  • Errore di deallocazione dell'inode
  • Errore durante la regolazione del refcount EA
  • Errore durante l'assegnazione della bitmap dell'inode
  • Errore durante la creazione della directory principale
  • L'inode root non è directory; abortire
  • Impossibile procedere senza un inode root.
  • Errore interno: impossibile trovare dir_info
  • Errore di programmazione: gli endpoint bitmap non corrispondono
  • Errore interno: fine della bitmap
  • Errore durante la copia nella bitmap dell'inode sostitutiva
  • Errore durante la copia nella bitmap del blocco sostitutivo

Noah se lo sai, è possibile creare / iniettare tutti questi errori (o qualunque sia possibile)? Sto cercando di indagare sulla causa di questi errori e sulla possibile soluzione di questi errori.
AnkurTank,
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.