Comment les fichiers sont-ils disposés en ext2 / ext3 / ext4?

8

Il y a quelques jours, toutes mes métadonnées sur une carte flash au format ext4 ont été écrasées.

Je vais maintenant spéculer sur la façon dont cela s'est produit. C'est de la pure spéculation. C'est arrivé juste après avoir utilisé une autre carte. L'étiquette de volume sur la carte est maintenant la même que l'autre carte. Je soupçonne donc que je n'ai pas réussi à synchroniser / démonter l'autre carte, quand je l'ai tirée. Le lecteur de carte n'informe pas correctement le système lorsqu'une carte est retirée, donc la prochaine synchronisation générée par le système, le système ne savait pas que j'avais changé de carte et il a écrasé les métadonnées.

La première chose que j'ai faite lorsque cela s'est produit, est de créer une image à l'aide de dd. La deuxième chose que j'ai faite a été de rendre l'image en lecture seule. La troisième chose que j'ai faite est de faire une copie inscriptible de l'image.

J'ai découvert photorec, qui a réussi à récupérer certaines choses, mais pas tout. Je pense que l'une des raisons à cela est qu'elle n'est pas destructive.

Étant donné que certains des fichiers récupérés sont du texte, je soupçonne que photorec utilise un minimum d'informations sur le format de fichier, le cas échéant.

Pour essayer de récupérer l'un des autres fichiers de la carte, j'aurais besoin de savoir comment les fichiers sont disposés dans ext2. Je soupçonne que l'essentiel est que les fichiers sont divisés en blocs, qui sont écrits en secteurs et que les informations sur la façon de trouver le secteur suivant sont écrites d'une manière ou d'une autre dans le secteur actuel.

Ce dont j'ai besoin pour continuer, ce sont des informations sur la façon dont le pointeur vers le secteur suivant est écrit.

PS: Je lis le code photorec, mais j'ai des problèmes pour le lire. Que ce soit moi ou que le code soit moche, je ne sais pas.

PPS: J'ai trouvé des informations sur la disposition des systèmes de fichiers ext, mais je n'arrive pas à trouver des informations de base sur la disposition des fichiers.

Mouse.The.Lucky.Dog
la source

Réponses:

4

PhotoRec scanne un disque (ou une image disque) à la recherche de morceaux contigus d'octets qui ressemblent à des formats de fichier connus (par exemple, il peut reconnaître JFIF / EXIF ​​(JPEG) par les en-têtes de segment). Assez simple mais limité.

Le kit Sleuth est un excellent outil pour creuser dans les systèmes de fichiers. Avec un peu de soin (et en scriptant ses outils et en éditant hexadécimal l'image disque lorsqu'elle s'égare), elle peut être utilisée pour la récupération.

Pour un outil qui comprend plus profondément ext, essayez ext4magic ? (Je n'ai pas encore eu besoin de l'utiliser.)

Documentation/filesystems/ext2.txtdans les sources du noyau a un aperçu de haut niveau de la structure générale. Le Wiki Ext4 contient de bonnes informations, y compris la disposition du disque Ext4 contenant plus de détails (s'appliquant largement à ext [23] également).

Mais oui, les données d'un fichier sont divisées en blocs. Dans ext2, chaque fichier est représenté par un inode qui contient des blocs directs (pointeurs vers des blocs de données), des blocs indirects (qui contiennent des pointeurs vers des blocs directs), des blocs indirects doubles et des blocs indirects triples. Il n'y a pas de backlinks, donc pour trouver les frères et sœurs d'un bloc de données, vous devrez d'abord scanner tous les inodes et les pointeurs de bloc pour trouver son propriétaire.

éphémère
la source