Cosa succede se elimino lost + found


38

Quando si creano alcuni filesystem Linux come ext3, viene creata una directory 'lost + found'. In base a ciò, i file verranno posizionati lì se i file sono stati danneggiati da un qualche tipo di crash del sistema.

Cosa succede se questa directory viene rimossa e il sistema si arresta in modo anomalo. Se la cartella viene rimossa, posso semplicemente creare una nuova directory con mkdir lost + found o ci sono attributi che possono essere impostati solo quando viene creato il filesystem.

Risposte:


35

fsck ricrea la directory lost + found se manca.

All'avvio la maggior parte delle distribuzioni esegue fsck se il filesystem viene rilevato come non smontato in modo pulito. Quando fsck crea la directory lost + found se manca, la creerà e posizionerà tutto ciò che trova in quella directory.


15

Se non puoi o non vuoi eseguire fsck, puoi ricreare le lost+founddirectory con mklost+found:

mklost + found pre-alloca i blocchi del disco nella directory lost + found in modo che quando e2fsck (8) viene eseguito per ripristinare un filesystem, non è necessario allocare blocchi nel filesystem per memorizzare un gran numero di file non collegati. Ciò garantisce che e2fsck non debba allocare blocchi di dati nel filesystem durante il ripristino.


In RHEL 6.4 né in fsckentrambi i casi e2fsckdove ricrearlo per me, indipendentemente dal fatto che la directory sia stata montata o meno. cd <root-dir-of-the-mount> && mklost+foundfatto.
Luis Antolín Cano,

7

Una directory lost + found preesistente con dimensioni sufficientemente grandi da contenere un numero elevato di file non collegati comporta un onere minore per e2fsck per creare la directory e portarla alla dimensione appropriata.

Tenterà comunque di farlo, ma di fronte a un filesystem corrotto, può essere più rischioso.

I fsck molto vecchi per altri filesystem su altre piattaforme non erano in grado di creare / perdere + trovare, né erano in grado di coltivarlo. Questa è la storia della logica di / lost + found. Ma l'attuale logica è semplicemente quella di facilitare il lavoro di e2fsck.


4
Non è che non siano riusciti a creare il lost + found, ma è una cattiva idea creare file / directory su un filesystem che è già stato rovinato. Invece, devi solo pre-costruire una directory che sia già abbastanza grande da memorizzare le voci della directory di qualunque inode sgranato che trovi in ​​un filesystem rovinato quando stai provando a ripulirlo.
chris,

5

Se non hai lost+found, e2fsck(non ho ispezionato il codice per altre fsckimplementazioni) offrirò di crearlo per te. Ma puoi anche ricrearlo tu stesso, se lo desideri; non c'è nulla di particolarmente speciale in quella directory (almeno non dall'ispezione del codice).


2
fsck dovrebbe ricreare perso + trovato se necessario, no?
David Schmitt,

2
Grazie, ho controllato il codice per e2fsck e in effetti offre di ricrearlo per te. (Questo non è garantito per avere successo però --- ecco perché è utile anche un + perso pre-creato.) Bene!
Chris Jester-Young,

6
@ ChrisJester-Young - La tua risposta è errata. lost+foundè una directory speciale. Ha blocchi del disco pre-allocati in modo che gli strumenti di recupero non debbano allocare blocchi durante il ripristino. Strumenti come mklost+foundesistono specificamente perché mkdirnon lo creeranno correttamente. Vedi linux.die.net/man/8/mklost+found
aggregate1166877

2

e2fsck creerà lost + found e distruggerà anche qualsiasi file che potrebbe essere nello stesso modo per assicurarsi che possa crearlo come directory.

Si noti che molti vecchi filesystem Unix richiedevano che lost + found fosse associato in modo specifico all'inode numero 2, quindi una necessità di ricreare il filesystem nella maggior parte dei casi se la directory andasse persa. e2fsck cerca semplicemente qualsiasi inode gratuito, apparentemente non necessitando specificamente dell'inode 2, il che rende il recupero molto più semplice rispetto ai vecchi tempi.


1

Puoi creare quella directory semplicemente usando mkdir. Dovrebbe essere di proprietà di root, con un gruppo di root o wheel. A parte questo, non c'è nulla di particolarmente speciale al riguardo. In caso di interruzione di corrente o arresto improprio all'avvio del sistema, dovrebbe avviarsi automaticamente fsck. fsck attraverserà il sistema e proverà a recuperare tutti i file corrotti che trova. Tutti i file che si trovano potenzialmente danneggiati verranno spostati lì.

L'altro caso per i file da spostare lì è se fsck trova un file di cui manca l'inode padre. Questo di solito è il caso se un blocco viene danneggiato sul disco nella posizione specifica in cui viene archiviato l'inode di una cartella. Riassegna il loro inode padre in modo che sia la cartella lost + found.

Modifica: non sono sicuro che in quest'ultimo caso verrà ricreata la directory. Lascerei da solo la sicurezza. Non riesco a pensare a nessun motivo per eliminarlo. Niente di male accadrà senza di essa però.


1
Sei sicuro che sia giusto solo creare con mkdir?

Sì, l'allocazione dello spazio non è legata all'inode delle directory o al percorso. L'allocazione dello spazio riservato è più o meno un flag su un po 'di memoria che richiede privilegi di root / kernel e chiamate speciali per l'accesso di cui fsck è a conoscenza, fa semplicemente uso di quello spazio copiando file potenzialmente corrotti o rotti in quella memoria e creando un file con un inode che punta alla nuova memoria. Le operazioni sui file si comporteranno normalmente su quei file, ma qualsiasi modifica come lo spostamento o il salvataggio estrarrà i dati dalla memoria riservata.
TrueDuality,

1

Inoltre, su Debian 6 e Ubuntu 12 LTS, il cronpacchetto è stato spedito /etc/cron.daily/standarde rileva lost+founddirectory mancanti sui filesystem locali e invia promemoria giornalieri via e-mail, raccomandando l'uso di mklost+found.

Tuttavia, questo è stato rimosso al tempo di Debian 7 e Ubuntu 14 LTS, rispettivamente, perché era diventato obsoleto.

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.