Aller au contenu

[PERDU] Récupération partition ext4 avec lvm sous mdadm raid5


keneda212

Messages recommandés

Je viens d'essayer pour voir, ça marche chez moi. La commande pour toi sera :
 

./permute_array.pl --md /dev/md/test --mount /mnt/test --opts "--chunk=512 --assume-clean" --for_real /dev/sda1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1

Avec /mnt/test à remplacer par n'importe quel répertoire. Si ça marche, tu auras par exemple quelque-chose comme ça :

skipping /dev/loop0Success. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 missing /dev/loop2 /dev/loop3 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 missing /dev/loop3 /dev/loop2 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop2 missing /dev/loop3 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop2 /dev/loop3 missing 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop3 missing /dev/loop2 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop3 /dev/loop2 missing 2>/dev/nullskipping /dev/loop1Success. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean missing /dev/loop0 /dev/loop2 /dev/loop3 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean missing /dev/loop0 /dev/loop3 /dev/loop2 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean missing /dev/loop2 /dev/loop0 /dev/loop3 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean missing /dev/loop2 /dev/loop3 /dev/loop0 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean missing /dev/loop3 /dev/loop0 /dev/loop2 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean missing /dev/loop3 /dev/loop2 /dev/loop0 2>/dev/nullskipping /dev/loop2Success. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop0 missing /dev/loop3 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop0 /dev/loop3 missing 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 missing /dev/loop0 /dev/loop3 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 missing /dev/loop3 /dev/loop0 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop3 /dev/loop0 missing 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop3 missing /dev/loop0 2>/dev/nullskipping /dev/loop3Success. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop0 /dev/loop2 missing 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop0 missing /dev/loop2 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop2 /dev/loop0 missing 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 /dev/loop2 missing /dev/loop0 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 missing /dev/loop0 /dev/loop2 2>/dev/nullSuccess. possible command :   yes | mdadm --create /dev/md/test --raid-devices=4 --level=5 --assume-clean /dev/loop1 missing /dev/loop2 /dev/loop0 2>/dev/null

Ici, c'est la sortie de mon test. C'est la liste des commandes avec lesquelles le script à réussi à monter la partition. tu peux utiliser l'une d'entre elles et normalement, ton raid sera fonctionnel.

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 63
  • Créé
  • Dernière réponse

Oui pardon, j'avais oublié. Je modifie la ligne de commande, comme ça tu as juste à copier-collé (si t'as auparavant créé /mnt/test).

 

Petite note également : le script prend en compte systématiquement un des disques en missing. Donc il faudra faire un rebuild du disque manquant.

Lien vers le commentaire
Partager sur d’autres sites

Bah ouais, le système de fichier à du être corrompu à un moment donné. Si tu enlèves l'option --for_real ça va de mettre la liste des commandes je crois. Tu n'as plus qu'à toutes les tentées en testant à chaque fois avec testdisk. Mais avec 5 disques, ça laisse une sacrée quantité de configurations possibles. Bon courage !

Lien vers le commentaire
Partager sur d’autres sites

mais au dela de la partition, photorec devrait récuperer des fichiers complet si c'était monté dans le bon sens non ?

car pour l'instant c'est pas le cas.

ps : le flac par contre se récupère top car j'ai pratiquement tous pu les récup... ca doit pas fonctionner comme des mp3 ou j'ai que 2s a chaque fois :D

Lien vers le commentaire
Partager sur d’autres sites

Bof, la récup c'est quasi aléatoire. Ça dépend franchement de ce qui est cassé, et de l'âge du FS. Si le superblock et la table d'inode sont cassés et que le FS est vieux, alors tu ne récupèreras que des bouts.

Pour fire simple, pour récupérer les données, tu as besoin de 2 infos vitales : la taille des blocs, et l'agencement des blocs. La taille des blocs est contenue dans le superbloc et ses copies, si le superbloc est dead on peut toujours tenter de deviner en testant plusieurs valeurs courantes.

Par contre, l'agencement des blocs de données d'un fichier est contenu dans son inode (ou réparti s'il s'agit d'un gros fichier stocké par extent). Du coup, si la table des inodes est foutue, tout ce que tu peux faire est parcourir les blocs à la recherche d'un magic number de format de fichier, et supposer que les blocs de data sont contigus. C'est là que l'âge du FS entre en jeu : plus il est vieux, et plus il est fragmenté (les FS linux ne se défragmentent car leur taux de fragmentation est trop faible ~15% pour améliorer les perfs), plus l'hypothèse est irréaliste, et plus tu ne récupèreras que des bouts de fichiers.

Note que plus les fichiers sont vieux et petits et plus tu as de chance de les récupérer (moins fragmentés).

Lien vers le commentaire
Partager sur d’autres sites

dites, est ce que ca peut aider ca ?

testdisk est bien plus bavard depuis que j'ai remonté les disques dans l'ordre supposé d'avant

TestDisk 6.11, Data Recovery Utility, April 2009Christophe GRENIER <grenier@cgsecurity.org>http://www.cgsecurity.orgDisk /dev/md0 - 12 TB / 10 TiB - CHS 2930133504 2 4     Partition               Start        End    Size in sectorsP MS Data                     4096 23441068031 23441063936Structure: Ok.  Use Up/Down Arrow keys to select partition.Use Left/Right Arrow keys to CHANGE partition characteristics:                P=Primary  D=DeletedKeys A: add partition, L: load backup, T: change type, P: list files,     Enter: to continueEXT4 Large file Sparse superblock Recover, 12 TB / 10 TiB
après le write
Disk /dev/md0 - 12 TB / 10 TiB - CHS 2930133504 2 4     Partition                  Start        End    Size in sectors 1 P Linux Raid                  4096 23441068031 23441063936
et la recherche de superblock ext2/3/4

 

TestDisk 6.11, Data Recovery Utility, April 2009Christophe GRENIER <grenier@cgsecurity.org>http://www.cgsecurity.orgDisk /dev/md0 - 12 TB / 10 TiB - CHS 2930133504 2 4     Partition                  Start        End    Size in sectors  MS Data                     4096 23441068031 23441063936superblock 0, blocksize=4096 []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 []
Lien vers le commentaire
Partager sur d’autres sites

Et avec la dernière version de testdisk ?

 

Edit : Encore un truc : si tu n'es pas sûr de l'ordre des disks, met en un en missing lorsque tu montes la grappe. Comme ça si ça ne marche pas tu peux être sûr que l'ordre n'est pas bon, alors qu'à contrario, si ça marche, tu es sûr que l'ordre est bon. En effet, à partir du moment où tu peux récupérer les données à partir du checksum c'est bon.

 

En somme je te conseil de travailler sur 4 disques pour l'instant, et tu reconstruiras le 5ème lorsque ce sera bon.

Lien vers le commentaire
Partager sur d’autres sites

m'étais planté de version, j'ai pu installer la 13 (mais pas la 14 trop recente)

ca change un peu

 

Disk /dev/md0 - 12 TB / 10 TiB - CHS 2930133504 2 4Current partition structure:     Partition                  Start        End    Size in sectorsInvalid RAID superblock 1 P Linux Raid                  4096 23441068031 23441063936 1 P Linux Raid                  4096 23441068031 23441063936
Invalid RAID superblock ?

ensuite il me retrouve ma partoche seule, sans soucis.

puis :

 

TestDisk 6.13, Data Recovery Utility, November 2011Christophe GRENIER <grenier@cgsecurity.org>http://www.cgsecurity.orgDisk /dev/md0 - 12 TB / 10 TiB - CHS 2930133504 2 4     Partition                  Start        End    Size in sectors  MS Data                     4096 23441068031 23441063936superblock 0, blocksize=4096 []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 []To repair the filesystem using alternate superblock, runfsck.ext4 -p -b superblock -B blocksize device
voir les fichiers :

 

   P Linux Raid                  4096 23441068031 23441063936Can't open filesystem. Filesystem seems damaged.
bon on tente la réparation

 

[13:14:36][root@spooky]/data/data# fsck.ext4 -p -b 2654208 -B 4096 /dev/md0fsck.ext4: Numéro magique invalide dans le super-bloc lors de la tentative d'ouverture de /dev/md0/dev/md0: Le superbloc n'a pu être lu ou ne contient pas un système de fichiersext2 correct. Si le périphérique est valide et qu'il contient réellementun système de fichiers ext2 (et non pas de type swap, ufs ou autre),alors le superbloc est corrompu, et vous pourriez tenter d'exécutere2fsck avec un autre superbloc :    e2fsck -b 8193 <périphérique>
niet, et avec n'inporte quel superbloc

Par contre, depuis aujourd'hui, j'ia un truc bizare :

[13:18:08][root@spooky]/home/keneda# ls -l /dev/md*brw-rw---T 1 root disk   9, 0 juil. 22 13:18 /dev/md0brw-rw---T 1 root disk 259, 0 juil. 22 13:18 /dev/md0p1
il sort d'ou ce md0p1 ?

 

[13:18:27][root@spooky]/home/keneda# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active (auto-read-only) raid5 sdd1[0] sda1[4] sdc1[3] sde1[2] sdf1[1]      11720534016 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [uUUUU][13:18:58][root@spooky]/home/keneda#  mdadm --detail --scan /dev/md0p1/dev/md0p1:        Version : 1.2  Creation Time : Mon Jul 21 23:38:39 2014     Raid Level : raid5     Array Size : 11720531968 (11177.57 GiB 12001.82 GB)  Used Dev Size : 2930133504 (2794.39 GiB 3000.46 GB)   Raid Devices : 5  Total Devices : 5    Persistence : Superblock is persistent    Update Time : Tue Jul 22 13:12:24 2014          State : clean  Active Devices : 5Working Devices : 5 Failed Devices : 0  Spare Devices : 0         Layout : left-symmetric     Chunk Size : 512K           Name : spooky:0  (local to host spooky)           UUID : 7a47685b:b0b9c62c:e6a1e2fc:7c6ca32a         Events : 2    Number   Major   Minor   RaidDevice State       0       8       49        0      active sync   /dev/sdd1       1       8       81        1      active sync   /dev/sdf1       2       8       65        2      active sync   /dev/sde1       3       8       33        3      active sync   /dev/sdc1       4       8        1        4      active sync   /dev/sda1[13:19:10][root@spooky]/home/keneda#  mdadm --detail --scan /dev/md0/dev/md0:        Version : 1.2  Creation Time : Mon Jul 21 23:38:39 2014     Raid Level : raid5     Array Size : 11720534016 (11177.57 GiB 12001.83 GB)  Used Dev Size : 2930133504 (2794.39 GiB 3000.46 GB)   Raid Devices : 5  Total Devices : 5    Persistence : Superblock is persistent    Update Time : Tue Jul 22 13:12:24 2014          State : clean  Active Devices : 5Working Devices : 5 Failed Devices : 0  Spare Devices : 0         Layout : left-symmetric     Chunk Size : 512K           Name : spooky:0  (local to host spooky)           UUID : 7a47685b:b0b9c62c:e6a1e2fc:7c6ca32a         Events : 2    Number   Major   Minor   RaidDevice State       0       8       49        0      active sync   /dev/sdd1       1       8       81        1      active sync   /dev/sdf1       2       8       65        2      active sync   /dev/sde1       3       8       33        3      active sync   /dev/sdc1       4       8        1        4      active sync   /dev/sda1
Lien vers le commentaire
Partager sur d’autres sites

de mémoire, j'ai créé un partition par disque, que j'ai mis en raid5. sur le raid5 créé, j'ai créé qu'une unique partition

j'avais testé avec un disque en missing, celui que j'ai perdu en debut d'année et qui a été rebuild depuis. mais.. y'a tellement de choix possible pour l'ordre des disques ...

Lien vers le commentaire
Partager sur d’autres sites

ok donc testdisk se trompe. J'avais pas fait gaffe, ta partition est reconnue comme une "MS Data" donc c'est pas bon. Et on en revient toujours au même : les disques ne sont pas dans le bon ordre.

 

Par contre ôte moi d'un doute : avec testdisk tu fais bien "non partitionned media" ?

Lien vers le commentaire
Partager sur d’autres sites

non, du GPT

je devrai faire du non partitionned ? car c'est déconseillé

un coup il dit linux raid, un coup msdata.

et si je dis que c'est du ext4, d'un coup il passe de msdata a linux raid, ou l'inverse.. c'est zarb

edit

ok new

avec none :

 

Disk /dev/md0 - 12 TB / 10 TiB - CHS 2930133504 2 4     Partition                  Start        End    Size in sectors   P ext4                   512   0  1 2930133503   1  4 23441063936Write isn't available because the partition table type "None" has been selected.
reconnaissance auto de la partoche ext4

mais j'ai ca

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...