Formattage partition ext4... Topic is solved

Comment utiliser TestDisk pour récupérer une partition perdue
Message
Author
tux61
Posts: 7
Joined: 16 Apr 2012, 19:52

Formattage partition ext4...  Topic is solved

#1 Postby tux61 » 16 Apr 2012, 19:59

Bonjour,
En voulant installer une nouvelle version de linux sur mon PC, j'ai malencontreusement formatté par erreur la partition contenant mon /home...
Avec l'outil photo_rec j'ai vu que je pouvais récupérer des fichiers, mais je préfererais bien sûr pouvoir accéder directement à la partition ce que je n'arrive pas à faire avec testdisk.
Mon disque était ainsi partitionné :
/dev/sda1 /
/dev/sda2 extended
/dev/sda5 /home
/dev/sda6 swap

Voici ce que me donne testdisk :

Code: Select all

Disk /dev/sda - 250 GB / 232 GiB - CHS 30401 255 63
Current partition structure:
     Partition                  Start        End    Size in sectors

 1 * Linux                    0   1  1  1458 254 63   23438772
 2 E extended LBA          1459   0  1 30028 254 63  458977050
No ext2, JFS, Reiser, cramfs or XFS marker
 5 L Linux                 1459   1  1 30028 254 63  458976987
 5 L Linux                 1459   1  1 30028 254 63  458976987


Disk /dev/sda - 250 GB / 232 GiB - CHS 30401 255 63

     Partition                  Start        End    Size in sectors
  1 * Linux                    0   1  1  1458 254 63   23438772
> 2 E extended LBA          1459   0  1 30028 254 63  458977050
  5 L Linux                 1459   1  1 30028 254 63  458976987



TestDisk 6.13, Data Recovery Utility, November 2011
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org

Disk /dev/sda - 250 GB / 232 GiB - CHS 30401 255 63

     Partition                  Start        End    Size in sectors
    Previous
>  Linux                 1459   1  1 30028 254 60  458976984                   
 superblock 32768, blocksize=4096 []
 superblock 98304, blocksize=4096 []
 superblock 163840, blocksize=4096 []
 superblock 229376, blocksize=4096 []
 superblock 294912, blocksize=4096 []
 superblock 819200, blocksize=4096 []
 superblock 884736, blocksize=4096 []
 superblock 1605632, blocksize=4096 []
 superblock 2654208, blocksize=4096 []
 superblock 4096000, blocksize=4096 []

 To repair the filesystem using alternate superblock, run
>fsck.ext4 -p -b superblock -B blocksize device                                 
 
>[  Quit  ]
                   


Quelqu'un pourrait-il m'aider ?
Merci d'avance

Sponsored links

User avatar
remy
Posts: 457
Joined: 25 Mar 2012, 10:21
Location: Strasbourg, France.
Contact:

Re: Formattage partition ext4...

#2 Postby remy » 17 Apr 2012, 09:23

est-ce que tu as changé le partitionnement ou reformaté le système de fichier en gardant la parition à la même place ?
J'ai pour habitude d'aller au bout de l'aide que j'apporte. Si vous pensez que je vous ai abandonné, et que je ne l'ai pas fait explicitement, c'est que votre message est enfoui avec d'autres. Relancez-moi (modérément) par mail.

tux61
Posts: 7
Joined: 16 Apr 2012, 19:52

Re: Formattage partition ext4...

#3 Postby tux61 » 17 Apr 2012, 11:11

remy wrote:est-ce que tu as changé le partitionnement ou reformaté le système de fichier en gardant la parition à la même place ?

Non, je n'ai rien changé : par contre quand j'ai vu que la partition /dev/sda5 était en cours de formattage, j'ai coupé brutalement l'ordi (j'aurais peut-être pas dû ?).
Merci

User avatar
remy
Posts: 457
Joined: 25 Mar 2012, 10:21
Location: Strasbourg, France.
Contact:

Re: Formattage partition ext4...

#4 Postby remy » 17 Apr 2012, 13:04

Si, tu as bien fait. Tu as peut-être réussi à conserver des superblocs de l'ancien système de fichier.

Il faudrait faire un scan avec testdisk en mettant intel comme type de table, jusqu'au deepersearch, et dans les options "cylinder boundary : no" (ou peut-être alignement : no suivant la version)
J'ai pour habitude d'aller au bout de l'aide que j'apporte. Si vous pensez que je vous ai abandonné, et que je ne l'ai pas fait explicitement, c'est que votre message est enfoui avec d'autres. Relancez-moi (modérément) par mail.

tux61
Posts: 7
Joined: 16 Apr 2012, 19:52

Re: Formattage partition ext4...

#5 Postby tux61 » 19 Apr 2012, 21:28

remy wrote:Si, tu as bien fait. Tu as peut-être réussi à conserver des superblocs de l'ancien système de fichier.

Il faudrait faire un scan avec testdisk en mettant intel comme type de table, jusqu'au deepersearch, et dans les options "cylinder boundary : no" (ou peut-être alignement : no suivant la version)


Voici ce que j'obtiens

Code: Select all

Disk /dev/sda - 250 GB / 232 GiB - CHS 30402 255 63
     Partition               Start        End    Size in sectors
 D Linux                    0   1  1  1458 254 63   23438772
 D Linux                  552   1  1  2010 254 63   23438772
>P Linux                 1459   1  1 30028 254 63  458976987
 D Linux Swap           30007   0  1 30268 254 63    4209030
 P Linux Swap           30029   1  1 30400 254 63    5976117


Le problème c'est que l'option "P" donne : "No file found, filesystem may be damaged."
C'est cuit ?

User avatar
remy
Posts: 457
Joined: 25 Mar 2012, 10:21
Location: Strasbourg, France.
Contact:

Re: Formattage partition ext4...

#6 Postby remy » 20 Apr 2012, 13:54

Non, il faudrait déterminer les superblocs (éventuellement avec le menu advanced) sur cette parition, puis essayer ces superblocs un a un pour voir si tu arrives à montre la partition ou à la réparer en passant le bloc spécifique dans les options. Mais c'est plsu spécifique à linux, et moins à testdisk... limite un peu hors-sujet, quoi :P

Pour info, je quote un passage de feu le blog de cep (le blog, pas cep) :
Pour cela on va utiliser mkfs.ext3 avec l'option -n, qui ne créera pas de système de fichiers mais montrera ce qui aurait été réalisé, indiquant par la même occasion l'emplacement des sauvegardes du superblock. Surtout ne pas oublier le -n sinon les données présentes sur le disque seront perdues. Pour notre exemple on prend comme partition /dev/hda3 et la commande serait sudo mkfs.ext3 -n /dev/hda3.
Comme on veut récupérer seulement l'adresse des supers, on va utiliser grep pour n'afficher que les lignes 11 et 12 de la sortie :

Code: Select all

:~$ sudo mkfs.ext3 -n /dev/hda3 |sed -n '11,15p'

mke2fs 1.38 (30-Jun-2005)
Archive du superbloc stockée sur les blocs:
8193, 24577, 40961, 57345, 73729, 204801, 221185

Cette partition utilise des blocks de 1 Ko :
Taille de bloc=1024 (log=0)

Pour monter la partition il suffira donc d'indiquer l'adresse d'un super, par exemple celui situé à 40961.
On va donc monter la partition en lecture seulement ( ro ) :

Code: Select all

       :~$ sudo mount /dev/hda3 -t ext3 -o ro,sb=40961 /mnt/


On vérifie le mount :

Code: Select all

:~$ mount |grep hda3

/dev/hda3 on /mnt type ext3 (ro,sb=40961)

Plus souvent les blocks auront une taille de 4 Ko, indication donnée par mkfs.ext3 -n ( ou tune2fs -l ) comme dans l'exemple ci-dessous :

Code: Select all

:~$ sudo mkfs.ext3 -n /dev/hda2

mke2fs 1.38 (30-Jun-2005)
Étiquette de système de fichiers=
Type de système d'exploitation: Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
130048 inodes, 260064 blocs
13003 blocs (5.00%) réservé pour le super usager
Premier bloc de données=0
8 bloc de groupes
32768 blocs par groupe, 32768 fragments par groupe
16256 inodes par groupe
Archive du superbloc stockée sur les blocs:
32768, 98304, 163840, 229376

Dans ce cas, il faudra multiplier l'adresse des archives par 4. Par exemple 98304 deviendra 98304 * 4 = 393216 et pour monter la partition :

Code: Select all

       :~$ sudo mount /dev/hda2 -t ext3 -o ro,sb=393216 /mnt/


On vérifie le mount :

Code: Select all

       :~$ mount |grep hda2

/dev/hda2 on /mnt type ext3 (ro,sb=393216)

La partition est bien montée suivant les indications données. Après avoir fait les sauvegardes des données sur une autre partition, on pourra démonter la partition normalement.
J'ai pour habitude d'aller au bout de l'aide que j'apporte. Si vous pensez que je vous ai abandonné, et que je ne l'ai pas fait explicitement, c'est que votre message est enfoui avec d'autres. Relancez-moi (modérément) par mail.

tux61
Posts: 7
Joined: 16 Apr 2012, 19:52

Re: Formattage partition ext4...

#7 Postby tux61 » 21 Apr 2012, 15:26

Bonjour,

Merci de cette longue et intéressante réponse...
Malheureusement je n'y arrive toujours pas :(
La commande suivante me donne bien les blocks :

Code: Select all

mkfs.ext4 -n /dev/sda5

mke2fs 1.42.1 (17-Feb-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
14344192 inodes, 57372123 blocks
2868606 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
1751 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872

Mais mes essais sur tous les blocks, par exemple ci-dessous, échouent à chaque fois...

Code: Select all

mount /dev/sda5 -t ext4 -o ro,sb=131072 /mnt/backup]


mount: wrong fs type, bad option, bad superblock on /dev/sda5,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

User avatar
remy
Posts: 457
Joined: 25 Mar 2012, 10:21
Location: Strasbourg, France.
Contact:

Re: Formattage partition ext4...

#8 Postby remy » 21 Apr 2012, 16:53

c'est que soit le blocs ne sont pas bons (pas la bonne partition, pas les bons blocs détectés), soit ils sont corrompus.

Tu peux essayer avec

Code: Select all

sudo e2fsck -n /dev/partition

sans oublier le -n pour ne faire aucune modif, mais voir si un fs est bien détecté.
Sinon, il faudra utiliser des outils pros.

EDIT : tu n'as pas fait de deepersearch avec testdisk et les options présentées ci-dessus ? Là tu travailles sur les superblocs de la partition telle qu'elle a été formatée, il faut que tu trouves la partition en "D" (deleted) pour essayer d'y voir plus clair.
J'ai pour habitude d'aller au bout de l'aide que j'apporte. Si vous pensez que je vous ai abandonné, et que je ne l'ai pas fait explicitement, c'est que votre message est enfoui avec d'autres. Relancez-moi (modérément) par mail.

tux61
Posts: 7
Joined: 16 Apr 2012, 19:52

Re: Formattage partition ext4...

#9 Postby tux61 » 21 Apr 2012, 17:19

Si, mais à chaque fois j'ai eu "file système endommagé"...
La commande e2fsck -n donne aussi un message d'erreur :
e2fsck 1.41.14 (22-Dec-2010)
e2fsck: Superblock invalid, trying backup blocks...
Superblock has an invalid journal (inode 8).
Clear? no
e2fsck: Illegal inode number while checking ext3 journal for /dev/sda5

C'est vraiment rageant sachant que photorec lui trouve bien les fichier (mais évidemment en "vrac")...

Quand tu parles d'outils pros, il s'agit de quoi ? J'imagine que les prix doivent aussi être "pros" ;-) ?
Merci

Sinon voici le résultat complet de testdisk :
    Disk /dev/sda - 250 GB / 232 GiB - CHS 30401 255 63
    Current partition structure:
    Partition Start End Size in sectors

    1 * Linux 0 1 1 1458 254 63 23438772
    2 E extended LBA 1459 0 1 30028 254 63 458977050
    No ext2, JFS, Reiser, cramfs or XFS marker
    5 L Linux 1459 1 1 30028 254 63 458976987
    5 L Linux 1459 1 1 30028 254 63 458976987

    Après <Quick Search> :

    TestDisk 6.13, Data Recovery Utility, November 2011
    Christophe GRENIER <grenier@cgsecurity.org>
    http://www.cgsecurity.org

    Disk /dev/sda - 250 GB / 232 GiB - CHS 30401 255 63
    Partition Start End Size in sectors
    >* Linux 0 1 1 1458 254 63 23438772
    P Linux 1459 0 1 30006 254 63 458623620
    P Linux Swap 30007 0 1 30268 254 63 4209030


    Après ajout manuel de la partition de 1459 à 30006 puis ENTER et <Deeper Search>

    Avant :

    Disk /dev/sda - 250 GB / 232 GiB - CHS 30401 255 63
    Partition Start End Size in sectors
    D Linux 0 1 1 1458 254 63 23438772
    D Linux 552 1 1 2010 254 63 23438772
    D Linux 1459 1 1 30028 254 63 458976987
    >D Linux Swap 30007 0 1 30268 254 63 4209030
    D Linux Swap 30029 1 1 30400 254 63 5976117

    Après :
    Disk /dev/sda - 250 GB / 232 GiB - CHS 30401 255 63
    Partition Start End Size in sectors
    >* Linux 0 1 1 1458 254 63 23438772
    D Linux 552 1 1 2010 254 63 23438772
    P Linux 1459 1 1 30028 254 63 458976987
    D Linux Swap 30007 0 1 30268 254 63 4209030
    P Linux Swap 30029 1 1 30400 254 63 5976117

    La recherche de fichier via l'option P indique "File système endommagé"
    ENTER


    Disk /dev/sda - 250 GB / 232 GiB - CHS 30401 255 63

    Partition Start End Size in sectors

    1 * Linux 0 1 1 1458 254 63 23438772
    2 P Linux 1459 1 1 30028 254 63 458976987
    3 P Linux Swap 30029 1 1 30400 254 63 5976117

Je n'ai pas osé valider le "WRITE"...

User avatar
remy
Posts: 457
Joined: 25 Mar 2012, 10:21
Location: Strasbourg, France.
Contact:

Re: Formattage partition ext4...

#10 Postby remy » 21 Apr 2012, 21:23

Il semble quand même que e2fsck trouve un bloc de secours.
Ça vaudrait le coup de tenter sans -n mais avec -y... mais attention, ça va réaliser des écritures et modifs lourdes au niveau du système de fichier.

Donc, duplication du disque à l'état initial obligatoire avant, car point de non retour. Pour ça, il y a ddrescue (paquet gddrescue) par exemple.

Pour les tarifs pros, je n'ai pas vocation à faire de pub ici. Donc si tu veux plus d'infos tu trouves facilement à me contacter :P
J'ai pour habitude d'aller au bout de l'aide que j'apporte. Si vous pensez que je vous ai abandonné, et que je ne l'ai pas fait explicitement, c'est que votre message est enfoui avec d'autres. Relancez-moi (modérément) par mail.


Return to “Récupération de partition”

Who is online

Users browsing this forum: No registered users and 0 guests