MonWiki

SuperBlock

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: Vous êtes ec2-3-21-231-245.us-east-2.compute.amazonaws.com


PagePrincipale . memos . SuperBlock

Superblock


Objectif de cette page: Retrouver le début d'une partition de type ext2/ext3/ext4.

Une personne avait perdu, dans la table de partition, l'entrée correspondant à sa partition sda6. Les données (de la partition) ne sont pas perdues mais sont temporairement inaccessibles.
Ce qui caractérise une partition de type UFS (Unix File System), est la présence d'un Superbloc. Le Superbloc contient des données vitales pour le système de fichier. Il est dupliqué plusieurs fois sur ce système.

Tout d'abord, création d'une entrée ext3 (si ext3) dans la table de partition à l'aide de l'utilitaire fdisk. L'entrée dans la table a bien été créée.
Il faut maintenant vérifier la présence du super bloc:
dumpe2fs -h /dev/sda6
dumpe2fs 1.41.11 (14-Mar-2010)
dumpe2fs: Bad magic number in super-block lors de la tentative d'ouverture de /dev/sda6
Impossible de trouver un superbloc de système de fichiers valide.


dumpe2fs ne trouve pas le superbloc, il faut donc le rechercher. un superbloc se caractérise par la présence d'un nombre magique (magic number) à l'octet 1080 (le superbloc commençant à l'octet 1024). Ce nombre est:
0xEF53

Cette fois, utilisation de l'utilitaire hexdump pour lire en hexa-décimal:
hexdump -C -n 4000 /dev/sda6
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000600 00 40 e8 01 67 ac a0 07 38 a2 61 00 8e 65 23 02 |.@..g...8.a..e#.|
00000610 f3 1f e6 01 00 00 00 00 02 00 00 00 02 00 00 00 |................|
00000620 00 80 00 00 00 80 00 00 00 20 00 00 5c f0 77 4d |......... ..\.wM|
00000630 5e f0 77 4d 56 01 ff ff 53 ef 01 00 01 00 00 00 |^.wMV...S.......|


On voit que le magic number se trouve en position 0x638 (1592 decimal) au lieu de 0x438 (1080 decimal). Ce qui fait un offset de 1592-1080= 512. Dans notre exemple, le début de la partition devrait être 512 octets plus loin.

Vérifions:
dd if=/dev/sda6 of=sda6.img skip=1 bs=512 count=500

cette commande a créée une image de 256000 octets (512*500) décalé d'un bloc de 512 octets (skip=...).

dumpe2fs -h sda6.img
dumpe2fs 1.41.11 (14-Mar-2010)
Filesystem volume name: <none>
Last mounted on: /home
Filesystem UUID: 0ef10b30-5ca8-4565-ad43-0a5803b78d95
...


L'offset est bien le bon. Il faut donc maintenant rectifier le début de la partition à l'aide de fdisk. Ensuite il sera bon de vérifier dans l'ordre:

Et pour finir, un petit script qui calcule automatiquement l'offset (si le début de la partition n'est pas trop éloigné) et affiche une partie des données du superbloc:
http://rocher.daniel.free.fr/start_download.php?soft=files/read_superblock.py





Pages utiles: RechercheTexte, TableauDeBordDeCeWiki
Flux RSS: Wiki, Commentaires
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]