[gull] Recuperation d'une partition

Julien Escario pandemik at asylog.net
Mon Mar 15 08:22:02 CET 2004


Bonjour,
Merci pour la réponse : c'est exactement ce que j'ai fait entre temps ;-)
Un peu plus empirique mais l'idée est là :
Comme il n'y avait pas de donnée avant, ca donnait une suite de . (ascii).
Du coup, j'ai coupé la partition en petits bouts, chercher la fin des .
(facile : y'avait un retour de ligne assez rapidement), calculer l'offset,
comparé avec autre partition ext3 similaire pour voir comment était le
début.
Le fichier est passé nickel dans les mains de fsck.ext3 ... j'en suis à
recompiler un kernel parce que j'avais oublié de mettre le loopback device
(honte ...).
Pas beaucoup dormi mais satisfait.

Julien


> Un moyen que je n'ai pas eu le temps de coder / tester / implémenter en
> shell
> script.
>
> chercher dans la partition les bytes "0x53 0xef" (EXT3_SUPER_MAGIC)
> les premier magic bytes  se trouvent à l'offset 0x438 d'une partition
> ext2/3
> normale (c-a-d cree avec mke2fs et les parametres par defaut)
>
> on trouve l'offset_de_la_partition_ancienne avec :
> 	(offset("0x53 0xef") - 0x438) / 1024
>
> avec ca on peut faire un :
> dd if=/dev/hdX of=/fichier_de_sortie bs=1024
> skip=offset_de_la_partition_ancienne
> et essayer de monter /fichier_de_sortie avec
> mount -o loop /fichier_de_sortie /mnt/...
>
> il y a 1 prolbeme, on risque de trouver beaucoup de bytes "0x53 0xef"
> avant de
> tomber sur le superblock de la partition. Il faut faudra peut-etre essayer
> de
> refaire ca souvent ...
>
> Je n'ai pas trouve de bon moyen pour produire l'offset de tous les bytes
> "0x53
> 0xef" avec grep. Quelqu'un saurait comment faire ? (avec des outils ligne
> de
> commande evidemment)
>
> Voila, c'est une proposition bas-niveau, il y en aura certainement de
> meilleure...
>
>
> Arnaud
>
> PS : comment savoir que les bytes "0x53 0xef" se trouvent a l'offset 0x438
> d'une partition ? :
>
> dd if=/dev/zero of=/tmp/teste3fs bs=512k count=50
> /sbin/mke2fs -j /tmp/teste3fs
> khexedit /tmp/teste3fs  chercher ces bytes ... les occurences suivantes
> seront
> dans les backup superblocks...
>
>
> On Monday 15 March 2004 00:57, Julien Escario wrote:
>> Bonjour,
>> Il m'est arrivé un truc vraiment bete :
>> Voilà, je démonte une partition et je fais un fdisk dessus en modifiant
>> la
>> taille.
>> Seulement je n'ai pas rebooter tout de suite (erreur fatale !) et j'ai
>> fait un mkfs.ext3 dessus sans me rendre compte que le kernel n'avait pas
>> relu la taille de la partition.
>> J'ai donc placer des fichiers dessus et me rendant compte que ce n'était
>> pas la bonne taille de fichier, j'ai rebooté. Sans sauvegarder les
>> fichiers qu'il y avait dessus !
>> Du coup, au reboot, le début de la partition n'est plus au même endroit
>> et
>> fsck.ext3 ne trouve pas le superblock pour monter la partition, normal,
>> le
>> système de fichier commence 900 Mo plus loin ...
>> Depuis j'ai tout reformater convenablement en gardant une image de la
>> partition incriminée (fait avec dd).
>> Ayant besoin des fichiers non sauvegarder que j'ai copié betement,
>> j'aimerais savoir s'il est possible de récupérer mon système de fichier
>> même avec un blanc de 900 Mo devant ...
>> Sachant que je ne sais pas la taille (et donc le nombre de blocks) que
>> j'ai rajouté.
>> Si qqun a une idée, elle est la bienvenue.
>>
>> Merci
>>
>> Julien Escario
>> ---------------------------------------
>> $A = eval {($A*$A-1)/($A-1)} || die 1;
>> L'incrémentation ou la vie !
>> ---------------------------------------




More information about the gull mailing list