web-dev-qa-db-fra.com

Comment récupérer une partition ext4 partiellement formatée (testdisk n'a pas aidé)

J'ai un disque dur de 2 To "partition unique formatée en ext4". Récemment, alors que je travaillais sous Windows 7 sur le même ordinateur, j’ai endommagé la partition susmentionnée. Ce qui s’est passé, c’est que pendant que j’essayais de récupérer un lecteur USB externe, j’ouvrais l’outil standard de gestion des disques de Windows, qui me demandait si je voulais rendre le disque1 "actif". A ce moment-là, je n'avais pas réalisé que "disk1" n'était pas mon disque USB, mais le disque interne ext4. Après avoir cliqué sur OK, Windows a créé une "partition réservée au système" de 100 Mo sur le disque, sans toucher au reste.

Lorsque je me suis connecté à Linux, la partition n'était pas montée. J'ai supprimé la "partition réservée au système" créée par Windows NT 100 Mo et j'ai essayé de lancer Testdisk. Testdisk voit mon ancienne partition ext4, mais à la fin, indique quelque chose comme "aucune partition ne peut être récupérée".

Est-il possible de récupérer ma partition et ma structure de répertoire + données? Le problème, c’est que j’y ai retrouvé tous mes programmes (C/C++) et répertoires de travail, ainsi que des données expérimentales, c’est-à-dire des fichiers n’ayant pas d’en-têtes spécifiques comme jpg ou pdf. Est-il possible de récupérer ces données? Puis-je, par exemple, récupérer une partie de la partition, disons tout ce qui dépasse 100 Mo?

P.S. Évitons les commentaires du type "vous auriez dû faire une sauvegarde" .. :) j'avais une sauvegarde, mais elle était stockée sur la clé USB que j'essayais de récupérer en premier .. (une défaillance générale du disque, le disque n'est pas lisible ).

1
Abraham
  1. Pour la récupération, je n'utilisais que la copie "dd" du disque:

    Sudo dd if=/dev/sdb of=/dev/sdd
    

("sdb" est le disque endommagé et "sdd" est celui que j'ai utilisé pour les tests)

  1. D'abord, j'ai utilisé "gdisk" pour créer une nouvelle table de partition GUID vide (option -o).

    $ Sudo gdisk /dev/sdd
    Command (? for help):   
    $ o
    This option deletes all partitions and creates a new protective MBR.
    Proceed? (Y/N): 
    $ y
    $ w
    
  2. J'ai essayé Sudo e2fsck /dev/sdd - échec (le premier superbloc était corrompu)

    $ Sudo e2fsck /dev/sdd
    e2fsck 1.41.12 (17-May-2010)
    e2fsck: Superblock invalid, trying backup blocks...
    e2fsck: Bad magic number in super-block while trying to open /dev/sdd
    
    The superblock could not be read or does not describe a correct ext2
    filesystem.  If the device is valid and it really contains an ext2
    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>
    
  3. alors j'ai fait Sudo mke2fs -n /dev/sdd pour lister les superblocs

    $ Sudo mke2fs -n /dev/sdd1
    mke2fs 1.41.12 (17-May-2010)
    /dev/sdd is entire device, not just one partition!
    Proceed anyway? (y,n) 
    $ y
    
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    122101760 inodes, 488378646 blocks
    24418932 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=0
    14905 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, 71663616, 78675968, 
            102400000, 214990848
    
  4. then - Sudo e2fsck -b 214990848 /dev/sdd après avoir appliqué plusieurs correctifs, je me suis retrouvé avec une partition partiellement restaurée! En fait, ce n'était pas si simple. J'ai essayé avec plusieurs superblocs et différentes options e2fsck. Quoi qu'il en soit, c'était la recette générale.

Addendum: lors de la récupération, j'ai répondu "non" à toutes les questions telles que:

One or more block group descriptor checksums are invalid. Fix(y)?
$ no
/lost+found not found.  Create(y)?
$ no
Free blocks count wrong for group # (32768, counted=0). Fix(y)?
$ no
Free inodes count wrong (122101749, counted=1606). Fix(y)?
$ no
1
Abraham

Vous avez peut-être rencontré ce problème mais ce n'est pas vraiment clair. Si tel est le cas, le vôtre est le premier cas du genre dont j'ai entendu parler, et vous pouvez remercier les GNU développeurs séparés de s'être assis sur un correctif pendant plus de deux ans.

En pratique, votre meilleur pari pour la récupération est le suivant:

  1. (Facultatif, mais fortement recommandé .) Effectuez une sauvegarde de bas niveau du disque endommagé. Par exemple, Sudo dd if=/dev/sdc of=/path/to/backup.img sauvegarde /dev/sdc (s'il s'agit du disque endommagé) sur /path/to/backup.img (vous pouvez modifier ce répertoire cible ou ce nom de fichier, si vous le souhaitez). Il est évident que vous devez disposer de suffisamment d'espace libre dans /path/to pour pouvoir conserver la sauvegarde. Cela signifie que vous devrez peut-être acheter un nouveau disque de sauvegarde, le préparer et le monter à /path ou /path/to. Vous pouvez sauter cette étape, mais ensuite, si vous aggravez la situation, il deviendra plus difficile de récupérer, voire de devenir impossible.
  2. Utilisez fdisk (si le disque utilise MBR) ou gdisk (si le disque utilise GPT) pour recréer vos partitions d'origine. Puisque vous dites que vous avez une seule partition sur le disque, il est probable que celle-ci ait démarré au secteur 2048 et étendue à la fin du disque. Ainsi, supprimer la ou les partitions actuelles et recréer celle-ci peut fonctionner. Ne pas créer un nouveau système de fichiers sur le disque; il suffit de créer une partition vide . (GParted aime créer un nouveau système de fichiers et doit donc être évité. Il est possible de le créer pour créer une partition vide, mais pourquoi prendre le risque?)
  3. Redémarrer. (Cela garantit simplement que vous utilisez la nouvelle table de partition. Il existe des méthodes moins radicales, mais celle-ci est facile à décrire.)
  4. Exécutez e2fsck sur la partition que vous venez de créer. Si vous êtes très chanceux, il peut localiser suffisamment de structures de données ext4fs pour redonner vie au disque, mais probablement avec des fichiers manquants ou d’autres problèmes. Vous voudrez peut-être utiliser fsck.ext4 pour vous assurer qu'il reconnaît correctement qu'il s'agit d'un système de fichiers ext4. L'utilisation des options e2fsck (telles que -b) peut améliorer vos chances de récupérer des données, mais ces options sont très avancées. Consultez la page de manuel e2fsck pour plus de détails.
  5. Si cela échoue, exécutez PhotoRec sur le disque. Cela devrait permettre de récupérer des fichiers individuels, même s'ils ne posséderont probablement pas de noms de fichiers ou d'organisation, vous devrez donc les passer au crible pour savoir ce qu'ils sont tous.
1
Rod Smith

Essayez GNU ddrescue.

GNU ddrescue est un outil de récupération de données. Il copie les données d'un fichier ou d'un bloc (disque dur, cdrom, etc.) dans un autre, en essayant de récupérer les données en cas d'erreur de lecture.

Le fonctionnement de base de ddrescue est entièrement automatique. En d'autres termes, vous n'avez pas à attendre une erreur, arrêter le programme, lire le journal, l'exécuter en mode inverse, etc.

Pour plus d'informations et pour télécharger ddrescue, consultez leur site web .

buntu Rescue Remix est un système live GNU/Linux fonctionnant à partir d'un CD ou d'un périphérique flash USB. Il fournit au spécialiste de la récupération de données un environnement d’interface de ligne de commande doté des meilleurs outils de récupération de données et d’informatique légale libres et libres disponibles.

Il existe également d'excellents produits, mais pas gratuits. Tels que R-STUDIO pour la récupération de données Linux .

Vous pouvez également essayer R-Studio .

R-Studio est une famille de logiciels de récupération de données et de récupération de données puissants et économiques. Grâce aux nouvelles technologies uniques de récupération de données, il s'agit de la solution de récupération de données la plus complète pour les fichiers de récupération des variantes UFS1, NTFS, NTFS5, ReFS, FAT12/16/32, exFAT, HFS/HFS + (Macintosh), Partitions UFS2 (FreeBSD/OpenBSD/NetBSD/Solaris) et Ext2/Ext3/Ext4 FS (Linux). Il utilise également la récupération de fichier brut (analyse des types de fichiers connus) pour les systèmes de fichiers très endommagés ou inconnus. Il fonctionne sur les disques locaux et réseau, même si ces partitions sont formatées, endommagées ou supprimées. Les paramètres flexibles vous donnent un contrôle absolu sur la récupération de données.

Source: GNU & R-Studio

0
Mitch