Qual è lo scopo della cartella lost + found in Linux e Unix?


643

C'è una cartella alla radice dei sistemi operativi Linux e Unix chiamata /lost+found/

Cosa serve? In quali circostanze dovrei interagire con esso? Come interagirei con esso?


Si noti che solo ext2 (e ext3 ed ext4) usano lost+found. Se vuoi nasconderlo, usa un filesystem diverso o montalo altrove, tieni tutto in una sottodirectory e collega la sottodirectory al luogo "reale" da cui usi i dati.
Adam Katz,

4
@Gilles qualcuno è stato così gentile da aggiungerlo: en.wikipedia.org/wiki/Fsck#Use
David Kennedy,

Si noti che lost+foundè specifico del file system esteso Linux (ext2–4). Unices, ad esempio FreeBSD in genere non hanno questa directory nei loro file system (UFS, ZFS).
FUZxxl,

5
Mi dispiace, ma lost+foundè stato praticamente per sempre sui sistemi BSD. In effetti, ho appena controllato ed era decisamente lì su 4.3BSD, e mi sembra di ricordarlo molto prima. Ed è certamente su FreeBSD oggi.
Bob Eager,

@BobEager Grazie per averlo confermato. Lo pensavo anch'io, ma ero disposto ad accettare che forse mi ricordavo erroneamente ...
Pryftan,

Risposte:


576

Se si esegue fsck, il comando di controllo e riparazione del filesystem potrebbe trovare frammenti di dati a cui non si fa riferimento in nessun punto del filesystem. In particolare, fsckpotrebbero trovare dati che sembrano un file completo ma non hanno un nome sul sistema, un inode senza nome file corrispondente. Questi dati stanno ancora esaurendo lo spazio, ma non sono accessibili in alcun modo normale.

Se dici fsckdi riparare il filesystem, trasformerà questi file quasi cancellati in file. Il fatto è che il file aveva un nome e un percorso una volta, ma che le informazioni non sono più disponibili. Quindi fsckdeposita il file in una directory specifica, chiamata lost+found(dopo la proprietà lost and found ).

I file che compaiono in lost+foundgenere sono file che erano già scollegati (ovvero il loro nome era stato cancellato) ma comunque aperti da qualche processo (quindi i dati non erano ancora cancellati) quando il sistema si fermava improvvisamente (panico del kernel o mancanza di corrente). Se è tutto ciò che è accaduto, questi file sono stati comunque programmati per l'eliminazione, non è necessario preoccuparsene.

I file possono apparire anche lost+foundperché il filesystem era in uno stato incoerente a causa di un bug software o hardware. In tal caso, è un modo per trovare i file persi ma che la riparazione del sistema è riuscita a recuperare. I file possono contenere o meno dati utili e, anche se lo fanno, possono essere incompleti o non aggiornati; dipende tutto da quanto è stato grave il danno al filesystem.

Su molti filesystem, la lost+founddirectory è un po 'speciale perché prealloca un po' di spazio per fsckdepositare i file lì. (Lo spazio non è per i dati del file, che fsckrimane in posizione; è per le voci della directory che fsckdevono essere recuperate.) Se si elimina accidentalmente lost+found, non ricrearlo con mkdir, utilizzare mklost+foundse disponibile.


16
Inoltre, se fsck cancellato accidentalmente potrebbe ricrearlo la prossima volta che troverà il filesystem pulito (che probabilmente sarà il prossimo avvio).
derobert il

30
Questa cartella è qualcosa che dovrebbe essere controllata e pulita di volta in volta?
TheLQ

9
@TheLQ Solo se il tuo filesystem ha subito un grave danneggiamento, fsckera necessario e menzionava la ricerca di file e il loro collegamento lost+found. In 20 anni con vari filesystem, l'ho visto solo una volta. E questo era prima che il journaling fosse la norma.
Alexios,

6
Penso che appaia anche se formatti il ​​tuo HDD (sono passato da NTFS a ext4 ed è apparso)
puk

6
@puk La lost+founddirectory viene creata ogni volta che si crea un filesystem ext4 (come con molti altri filesystem), indipendentemente dal fatto che venga eseguito o meno durante l'installazione del sistema. "Formatta il tuo HDD" è solo un caso. Ciò fsckche è possibile aggiungere eventualmente i file lì.
Gilles,

64

La lost+founddirectory (non Lost + Found) è un costrutto usato da fsckquando c'è un danno al filesystem (non al dispositivo hardware, ma a fs). I file che normalmente andrebbero persi a causa della corruzione della directory verrebbero collegati nella lost+founddirectory di quel filesystem per numero di inode. Alcuni di questi potrebbero essere directory perse o file persi o persino dispositivi persi. Ogni filesystem dovrebbe avere una propria lost+founddirectory, ma potresti guardare un sistema con un solo filesystem. In generale, dovresti sperare che la directory sia vuota; ma se c'è corruzione, sii grato che in molte condizioni i file possono essere recuperati dopo fsckaverli inseriti qui.


4
Punto valido, tuttavia: questi possono comunque diventare abbastanza fastidiosi. Ad esempio, quando si tenta di eseguire findun'operazione su una o più ext[2|3|4]partizioni dall'account di un utente non amministratore, si ottengono sempre questi errori "autorizzazione negata" del tutto inutili . Certamente, ci sono modi per aggirare questo tipo di errori, ma è un po 'imbarazzante perché lo standard find . -name '*whatever*'non farà il trucco.
syntaxerror,

2
@syntaxerror: Mi fa piacere sentirtelo dire riguardo ai fastidi di find: `./lost+found ': Autorizzazione negata . Di tanto in tanto mi infastidisce ...
Johan E

1
@syntaxerror il motivo per cui sono arrivato a questa domanda è stato proprio perché stavo facendo un'operazione di ricerca e ho continuato a generare un Permission deniedavviso. Data la risposta a questa domanda, so che lost+foundfa parte del filesystem e quindi posso tranquillamente ignorare l'avviso generato (ma vorrei che non producesse l'avviso).
Trevor Boyd Smith,

1
@JohanE Mi stai dicendo. Tuttavia, il vero motivo per cui ho pubblicato il mio commento è stato perché questa risposta stava cercando di suggerirci di "essere grati" per lost+found. Sembrava troppo esilarante per essere vero (mi sono seduto qui con un largo sorriso), per le ridicolmente poche volte in cui siamo grati perché non può competere con quelli in cui preferiremmo essere in grado di lanciare un "Begone!" incantesimo per questa cosa fastidiosa lo + fo.
syntaxerror,

36

Da "Gerarchia dei filesystem Linux", sezione / lost + found " :

Come è stato spiegato in precedenza durante la panoramica di FSSTND, Linux dovrebbe sempre subire un corretto arresto. A volte il sistema potrebbe bloccarsi o un'interruzione dell'alimentazione potrebbe arrestare la macchina. Ad ogni modo, al prossimo avvio, verrà eseguito un lungo controllo del filesystem usando fsck. Fsck attraverserà il sistema e proverà a recuperare tutti i file corrotti che trova. Il risultato di questa operazione di recupero verrà inserito in questa directory. È probabile che i file recuperati non siano completi o abbiano molto senso, ma c'è sempre la possibilità che qualcosa di utile venga recuperato. Ogni partizione ha la propria directory lost + found. Se trovi dei file lì dentro, prova a riportarli nella loro posizione originale. Se trovi qualcosa come un collegamento simbolico interrotto a "file", devi reinstallare i file dall'RPM corrispondente, poiché il tuo file system è stato danneggiato così gravemente che i file sono stati mutilati oltre ogni possibilità di riconoscimento. Di seguito è riportato un esempio di una directory / lost + found. Come puoi vedere, la stragrande maggioranza dei file contenuti qui sono in realtà socket. Per quanto riguarda il resto degli altri file, sono stati trovati file di sistema e file personali danneggiati. Questi file non sono stati recuperati.

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.