Quel est le but du dossier lost + found sous Linux et Unix?

643

Il existe un dossier à la racine des systèmes d'exploitation Linux et Unix appelé /lost+found/

Pourquoi est-ce? Dans quelles circonstances pourrais-je interagir avec elle? Comment pourrais-je interagir avec elle?

Wesley
la source
Notez que seuls ext2 (et ext3 et ext4) utilisent lost+found. Si vous souhaitez le masquer, utilisez un autre système de fichiers ou montez-le ailleurs, conservez tout dans un sous-répertoire et faites un lien symbolique vers le sous-répertoire "réel" à partir duquel vous utilisez les données.
Adam Katz
4
@Gilles, quelqu'un a eu la gentillesse de l'ajouter: fr.wikipedia.org/wiki/Fsck#Use
David Kennedy
Notez que cela lost+foundest spécifique au système de fichiers étendu Linux (ext2–4). Les Unices, par exemple FreeBSD, n'ont généralement pas ce répertoire dans leurs systèmes de fichiers (UFS, ZFS).
FUZxxl
5
Désolé, mais lost+foundexiste depuis presque toujours sur les systèmes BSD. En fait, je viens de vérifier et il était certainement là sur 4.3BSD, et je semble me souvenir beaucoup plus tôt. Et c'est certainement sur FreeBSD aujourd'hui.
Bob Eager
@BobEager Merci de votre confirmation. Je le pensais aussi, mais j'étais prêt à accepter le fait que je ne me souvenais peut-être pas correctement ...
Pryftan

Réponses:

576

Si vous exécutez fsckla commande de vérification et de réparation du système de fichiers, elle peut trouver des fragments de données qui ne sont référencés nulle part dans le système de fichiers. En particulier, vous fsckpourriez trouver des données qui ressemblent à un fichier complet mais qui n’ont pas de nom sur le système - un inode sans nom de fichier correspondant. Ces données utilisent toujours de l'espace, mais elles ne sont accessibles par aucun moyen normal.

Si vous dites fsckde réparer le système de fichiers, il transformera ces fichiers presque supprimés en fichiers. Le fait est que le fichier a déjà eu un nom et un emplacement, mais cette information n’est plus disponible. Donc, fsckdépose le fichier dans un répertoire spécifique, appelé lost+found(après la propriété perdue et trouvée ).

Les fichiers qui apparaissent lost+foundsont généralement des fichiers déjà non liés (leur nom a été effacé) mais toujours ouverts par un processus (les données ne sont donc pas encore effacées) lorsque le système s’arrête brusquement (panique du noyau ou panne d’alimentation). Si c'est tout ce qui s'est passé, ces fichiers doivent quand même être supprimés, vous n'avez pas besoin de vous en soucier.

Les fichiers peuvent également apparaître lost+foundcar le système de fichiers était dans un état incohérent en raison d'un bogue logiciel ou matériel. Si tel est le cas, vous pourrez ainsi retrouver les fichiers perdus mais que la réparation du système a réussi à récupérer. Les fichiers peuvent contenir ou non des données utiles, et même s'ils le sont, ils peuvent être incomplets ou obsolètes; Tout dépend de la gravité des dégâts subis par le système de fichiers.

Sur de nombreux systèmes de fichiers, le lost+foundrépertoire est un peu spécial car il préalloue un peu d’espace pour fscky déposer des fichiers. (L'espace n'est pas pour les données de fichier, ce qui fsckreste en place; c'est pour les entrées de répertoire qui fsckdoivent être lost+foundreconstituées .) Si vous supprimez accidentellement , ne le recréez pas avec mkdir, utilisez-le mklost+founds'il est disponible.

Gilles
la source
16
De plus, si fsck est supprimé accidentellement, il peut être recréé la prochaine fois qu'il trouvera le système de fichiers propre (ce qui sera probablement le prochain démarrage).
derobert
30
Ce dossier est-il quelque chose qui devrait être vérifié et nettoyé de temps en temps?
TheLQ
9
@TheLQ Uniquement si votre système de fichiers a subi une corruption étendue, fsckétait requis, et mentionnait la recherche de fichiers et leur liaison lost+found. En 20 ans avec divers systèmes de fichiers, je ne l'ai vu qu'une fois. Et c'était avant que la journalisation soit la norme.
Alexios
6
Je pense qu'il apparaît également si vous formatez votre disque dur (je suis passé de NTFS à ext4 et il est apparu)
jeudi
6
@puk Le lost+foundrépertoire est créé chaque fois que vous créez un système de fichiers ext4 (comme avec beaucoup d'autres systèmes de fichiers), que cela soit fait ou non dans le cadre de l'installation du système. "Formatez votre disque dur" n'en est qu'un exemple. Que fsckfait est d'ajouter éventuellement des fichiers là-bas.
Gilles
64

Le lost+foundrépertoire (pas perdu + trouvé) est une construction utilisée par fsckquand il y a des dommages au système de fichiers (pas au périphérique matériel, mais au fs). Les fichiers qui seraient normalement perdus à cause d'une corruption de répertoire seraient liés dans le lost+foundrépertoire de ce système de fichiers par un numéro d'inode. Certains d'entre eux peuvent être des répertoires perdus, des fichiers perdus ou même des périphériques perdus. Chaque système de fichiers doit avoir son propre lost+foundrépertoire, mais vous pouvez envisager un système avec un seul système de fichiers. En général, vous devriez espérer que le répertoire est vide; mais s'il y a corruption, sachez que dans de nombreuses conditions, les fichiers peuvent être récupérés après les avoir fsckplacés ici.

Arcege
la source
4
Point valable, cependant: ils PEUVENT devenir tout de même une nuisance. Par exemple, lorsque vous essayez d'effectuer une findopération sur une ou plusieurs ext[2|3|4]partitions à partir du compte d'un utilisateur non-administrateur, vous obtiendrez toujours ces erreurs totalement inutiles "autorisation refusée" . Certes, il existe des moyens de contourner ce type d’erreurs - mais c’est un peu gênant car la norme find . -name '*whatever*'ne fera pas l'affaire.
Erreur de syntaxe le
2
@ Syntaxerror: Cela fait plaisir de vous entendre dire cela à propos des inconvénients de find: `./lost+found ': Permission refusée . Cela me
Johan E
1
@syntaxerror la raison pour laquelle je suis arrivé à cette question était précisément parce que je faisais une opération de recherche et que trouvais continuellement un Permission deniedavertissement. Compte tenu de la réponse à cette question, je sais que cela lost+foundfait partie du système de fichiers et je peux donc ignorer en toute sécurité l'avertissement généré (mais je souhaiterais que cela ne produise pas l'avertissement).
Trevor Boyd Smith
1
@JohanE Vous me dites. Cependant, la raison réelle pour laquelle je posté mon commentaire est que cette réponse était en train de nous suggérer à « être reconnaissants » pour lost+found. Cela me paraissait bien trop hilarant pour être vrai (je me suis assis ici avec un large sourire), car ridiculement quelques fois nous sommes reconnaissants, cela ne peut pas rivaliser avec ceux où nous préférerions pouvoir lancer un "Begone!" épelez cette chose nuisant lo + fo.
syntaxerror
36

Dans "Hiérarchie des systèmes de fichiers Linux", section / lost + found " :

Comme cela a été expliqué précédemment lors de la présentation du FSSTND, Linux doit toujours subir un arrêt correct. Parfois, votre système peut tomber en panne ou une panne de courant peut mettre la machine hors tension. Quoi qu'il en soit, au prochain démarrage, une longue vérification du système de fichiers à l'aide de fsck sera effectuée. Fsck passera par le système et tentera de récupérer tous les fichiers corrompus trouvés. Le résultat de cette opération de récupération sera placé dans ce répertoire. Les fichiers récupérés ne seront probablement ni complets ni significatifs, mais il y a toujours une chance que quelque chose de valable soit récupéré. Chaque partition a son propre répertoire lost + found. Si vous y trouvez des fichiers, essayez de les ramener à leur emplacement d'origine. Si vous trouvez quelque chose comme un lien symbolique cassé vers 'fichier', vous devez réinstaller le fichier / s à partir du RPM correspondant. depuis que votre système de fichiers a été tellement endommagé que les fichiers ont été mutilés de manière inconcevable. Vous trouverez ci-dessous un exemple de répertoire / lost + found. Comme vous pouvez le constater, la grande majorité des fichiers contenus ici sont des sockets. Quant aux autres fichiers, ils se sont avérés être des fichiers système et des fichiers personnels endommagés. Ces fichiers n'ont pas pu être récupérés.

bhupal
la source