Début de partition effacée, comment réparer le système de fichier?

Utiliser TestDisk pour réparer le système de fichier
Locked
Message
Author
calocedrus
Posts: 3
Joined: 13 Mar 2019, 09:32

Début de partition effacée, comment réparer le système de fichier?

#1 Post by calocedrus »

En 12 ans de linux, ma première énorme fausse manip:

Code: Select all

dd if=rpi_stretch.img of=/dev/sda
, et /dev/sda était mon disque de donnés (plusieurs années de recherche sur différents sujets techniques). Je me suis rendu compte de mon erreur dans les 30secondes qui suivaient et ait intérompu la commande.

Mais voilà, maintenant le disque contient l'image partielle d'un système raspbian.

Après 2 jours passés sur le sujet seul avec internet, je décide de demander de l'aide.
J'utilise TestDisk 7.0. J'ai fais une sauvegarde de mon disque sur un disque externe et c'est sur cette sauvegarde que je fais mes "expériences".

Une "quick search" avec testdisk (très rapide, environ 30") me montre mes deux partitions perdues: Linux_500GB et CommonStora

Code: Select all

Disk /dev/sdc - 1000 GB / 931 GiB - CHS 121601 255 63
     Partition               Start        End    Size in sectors
>D Linux                    0  32 33 64448 212 20 1035368448 [Linux_500GB]
 D FAT32                    0 130  3     5 220 23      86016 [boot]
 D Linux                    5 220 24   225 229  4    3534848 [rootfs]
 * FAT32 LBA            64448 212 21 121601  57 56  918153216 [C[attachment=1]testdisk_forumquestion_writeOrNot.jpg[/attachment]ommonStora]
Je peux lister le contenu de CommonStora et j'ai pu récupérer mes fichiers, mais Linux_500GB m'indique:

Code: Select all

No file found, filesystem may be damaged
Une "deeper search" ne m'a pas avancé, pas de fichier dans Linux_500GB.

Possible solution #1: réparer les "filesystem"
Je tente donc de réparer le "filesystem", suivant la section 7.7 du guide https://www.cgsecurity.org/testdisk.pdf (et d'autres tuto et forums); mais dans la section "advanced" de testdisk, je ne vois pas la partition correcte listée (Linux_500GB n'est pas là), je ne vois que:

Code: Select all

Disk /dev/sdc - 1000 GB / 931 GiB - CHS 121601 255 63
     Partition                  Start        End    Size in sectors
  1 P FAT32 LBA                0 130  3     5 204 60      85045 [boot]
> 2 P Linux                    5 220 24   225 229  4    3534848 [rootfs]
Néanmoins je poursuis, sélectionne la partition rootfs, puis superblocks dans le menu, et voici le résultat.

Code: Select all

Partition                  Start        End    Size in sectors
  Linux                    5 220 24   225 229  4    3534848 [rootfs]
superblock 0, blocksize=4096 [rootfs]
superblock 32768, blocksize=4096 [rootfs]
superblock 98304, blocksize=4096 [rootfs]
To repair the filesystem using alternate superblock, run
fsck.ext4 -p -b superblock -B blocksize device
Si je répare ce "filesystem" en faisant par example

Code: Select all

fsck.ext4 -p -b 32768 -B 4096 /dev/sdc2
cela va t'il me redonner accès à la partition Linux_500GB? (je ne pense pas!)

Possible solution #2: écrire une nouvelle partition?

Si après une "quick search" je change le type de partition de Linux_500GB en P comme sur l'image ci-dessous, et que je choisis "write" dans le menu, vais-je pouvoir revoir les fichiers dans cette partition? (je ne pense pas puisque le système de fichier est endommagé!)
testdisk_forumquestion_writeOrNot.jpg
testdisk_forumquestion_writeOrNot.jpg (66.44 KiB) Viewed 3417 times
Possible solution #3: explorer le log

J'ai sauvé le testdisk.log file (Attaché à ce post), et il m'indique à plusieurs endroits ce type de message, où seule la valeur l'option -b change, par example:

Code: Select all

recover_EXT2: "e2fsck -b 163840 -B 4096 device" may be needed
recover_EXT2: s_block_group_nr=5/3949, s_mnt_count=0/4294967295, s_blocks_per_group=32768, s_inodes_per_group=8192
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 129421056
recover_EXT2: part_size 1035368448
     Linux                    0  32 33 64448 212 20 1035368448 [Linux_500GB]
     ext3 blocksize=4096 Large_file Sparse_SB Backup_SB, 530 GB / 493 GiB
J'ai donc essayé:

Code: Select all

sudo e2fsck -b xxxxxxx -B 4096 /dev/sdc
avec toutes les valeurs de xxxxxxx listées dans le log, mais à chaque fois j'ai ce message:

Code: Select all

e2fsck 1.44.1 (24-Mar-2018)
e2fsck: Bad magic number in super-block while trying to open /dev/sdc

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>
Found a dos partition table in /dev/sdc
Essayant avec /dev/sdc1 ou sdc2 ne donne rien non plus.

Alors, maintenant, mis à part utiliser PhotoRec, puis-je tenter autre chose?
Attachments
testdisk.zip
testdisk.log comprímé
(3.18 KiB) Downloaded 297 times

User avatar
cgrenier
Site Admin
Posts: 5432
Joined: 18 Feb 2012, 15:08
Location: Le Perreux Sur Marne, France
Contact:

Re: Début de partition effacée, comment réparer le système de fichier?

#2 Post by cgrenier »

Il faut faire le fsck sur /dev/sdc1, pas /dev/sdc ou /dev/sdc2.

calocedrus
Posts: 3
Joined: 13 Mar 2019, 09:32

Re: Début de partition effacée, comment réparer le système de fichier?

#3 Post by calocedrus »

Il faut faire le fsck sur /dev/sdc1, pas /dev/sdc ou /dev/sdc2.
Un peu perdu dans toutes les informations trouvées, votre guidance est bienvenue, merci. (j'avais pensé au fsck sur sdc2 car sdc1 était le boot, je ne pensais pas que j'avais quoique ce soit à changer là, et c'était sur sdc2 (nommée "rootfs") que j'avais des informations sur les superblocks dans testdisk > Advance).

Alors maintenant, est-ce que les étapes suivantes sont corrects?
(je donne des détails qui pourraient servir à d'autres)

0)
Faire une sauvegarde du disque endommagé
S'assurer que le disque problématique et celui contenant la sauvegarde ne sont pas montés (sudo umount /dev/sdxy)
Par exemple:

Code: Select all

sudo dd bs=64K if=/dev/source of=/dev/target
1)
Depuis testdisk, après une "quick search", changer le "label" de la partition inaccessible (ici "Linux_500GB") de "D" en "P", et choisir "write", comme sur l'image ci-dessous.
testdisk_forumquestion_writeOrNot.jpg
testdisk_forumquestion_writeOrNot.jpg (66.44 KiB) Viewed 3408 times
(j'ai essayé sur une sauvegarde, la partition CommonStora (FAT32) n'ayant visiblement pas été endommagée est recupérée avec tous ses fichiers, l'autre, la plus précieuse, reste inaccessible, même après un sudo e2fsck -f -b 102400000 -y /dev/sdc1).

2)
Obtenir la liste des superblocks: testdisk > Advanced ou bien explorer le log de testdisk (testdisk.log, qui se trouve dans le même répertoire que là où testdisk est lancé) ou encore mke2fs comme ci-dessous:

Code: Select all

$ sudo mke2fs -n /dev/sdc1
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 129421056 4k blocks and 32358400 inodes
Filesystem UUID: 71236fa4-7e4a-4a08-99e6-286d93d7eff4
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
    102400000
3)
fsck
La partition à problème étant ext3, utiliser fsck.ext3 (ou bien fsck.ext4 ou même fsck tout cours marchent aussi?):
sudo fsck.ext3 -p -b superblock -B blocksize device
où superblock et blocksize sont trouvés dans l'étape 2.

Par exemple, dans le testdisk.log je trouve un superblock à 163840 et un blocksize de 4096, donc:

Code: Select all

sudo fsck.ext3 -p -b 163840 -B 4096 device
Tout est correct ou bien il ne faut pas faire l'étape 1?

calocedrus
Posts: 3
Joined: 13 Mar 2019, 09:32

Re: Début de partition effacée, comment réparer le système de fichier?

#4 Post by calocedrus »

J'ai essayé ce que je proposais dans mon précédent poste, sans résultat, je suis de retour à la case zéro, et découragé de tout mes essais infructueux, du temps passé à chercher, à effecter des copies du disques à problème (>6heures à chaque fois).
La taille de mon disque est bien reconnue par tesdisk, le nom de la partition aussi, mais rien n'y fait, je ne retrouve rien...

Quelqu'un aurait-il d'autres idées?

Résultat des différentes commandes essayées (suivant les étapes 0 à 3 ci-dessus):

Code: Select all

$sudo fsck.ext3 -p -b 7962624 -B 4096 /dev/sdc1
Linux_500GB was not cleanly unmounted, check forced.
Linux_500GB: Resize inode not valid.  

Linux_500GB: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
    (i.e., without -a or -p options)

Code: Select all

$ sudo dumpe2fs -h /dev/sdc1
dumpe2fs 1.44.1 (24-Mar-2018)
Filesystem volume name:   Linux_500GB
Last mounted on:          <not available>
Filesystem UUID:          edadceff-c02f-48fe-b084-0246536a03f6
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         not clean with errors
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              32358400
Block count:              129421056
Reserved block count:     6471052
Free blocks:              127339499
Free inodes:              32358389
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      993
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Wed Jan 29 13:21:29 2014
Last mount time:          n/a
Last write time:          Fri Mar 15 16:53:11 2019
Mount count:              0
Maximum mount count:      -1
Last checked:             Wed Jan 29 13:21:29 2014
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:              256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      7005d02c-6f0e-463a-8d0c-4364909d1a92
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x0000a3ad
Journal start:            0
ext2fs_read_bb_inode: Cannot iterate data blocks of an inode containing inline data

Code: Select all

$ sudo e2fsck -b 23887872 -B 4096 -y /dev/sdc1
Cela sort des dizaines (centaines?) de lignes et se termine ainsi:

Code: Select all

Timestamp(s) on inode 16768 beyond 2310-04-04 are likely pre-1970.
Fix? yes
Inode 16769 is in use, but has dtime set.  Fix? yes
Timestamp(s) on inode 16769 beyond 2310-04-04 are likely pre-1970.
Fix? yes
Inode 16770 is in use, but has dtime set.  Fix? yes
Inode 16771 is in use, but has dtime set.  Fix? yes
Inode 16772 is in use, but has dtime set.  Fix? yes
Inode 16772 has a extra size (3) which is invalid
Fix? yes
Inode 16773 is in use, but has dtime set.  Fix? yes
Inode 16773 has a extra size (3) which is invalid
Fix? yes
e2fsck: aborted
Linux_500GB: ***** FILE SYSTEM WAS MODIFIED *****
D'après les informations que j'ai indiquées dans mes 3 postes, y a t'il de l'espoir de retrouver mes données? Que puis-je essayer d'autre?

Locked