RAID 5: Récupération de données avec 3 disques sur 4 et 2 disques avec pb Superblock

Bonsoir,

J’ai depuis pas mal de temps un serveur (en réalité un PC tout à fait normal) avec un disque IDE pour le sytème (Debian) et 4 disques de 1 To chacun en RAID 5 (avec mdadm).

3 disques 1To sont des SEAGATE 7200.11 ( ST31000333AS) et 1 est un 7200.12 (ST31000524AS)
Le RAID ne fonctionne plus et pour cause:

  • un des disque doit être HS --> reconnu dans le BIOS en tant que ST_M13QBL (au lieu de ST31000333AS) avec seulement 4Go de capacité; j’ai trouvé des tutos pour "corriger le problème mais ça ne marche pas; je considère donc que ce disque est HS (sauf peut être à changer la carte de gestion du disque ?)

donc quand je boot sur Debian, le disque HS n’est pas reconnu mais le RAID ne se monte pas et je me retrouve en mode rescue en ligne de commande.
La commande « cat /proc/mdstat » me renvoie:

md0: inactive sdd1[2] (S)

j’ai donc rebooté sur une clé USB SYSTEMRESCUE 7.01 (c’est basé sur Arch)
j’ai refait un « mdstat » et j’ai ça:

[root@sysrescue ~]# cat /proc/mdstat
Personalities : 
md127 : inactive sdd1[2](S)
      976758977 blocks super 1.2
  • sur 2 disques j’ai ce en défaut : mdadm: No md superblock detected

sdc:

[root@sysrescue ~]# mdadm --examine /dev/sdc1
mdadm: No md superblock detected on /dev/sdc1.

sde:

[root@sysrescue ~]# mdadm --examine /dev/sdc1
mdadm: No md superblock detected on /dev/sdc1.

sdd a l’air ok (enfin je crois !):

[root@sysrescue ~]# mdadm --examine /dev/sdd1
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 2488e4c7:ed214b40:8bddf2b8:0f485524
           Name : lolo-serveur:0
  Creation Time : Tue May 31 15:30:53 2011
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 1953517954 (931.51 GiB 1000.20 GB)
     Array Size : 2930276352 (2794.53 GiB 3000.60 GB)
  Used Dev Size : 1953517568 (931.51 GiB 1000.20 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
   Unused Space : before=1968 sectors, after=386 sectors
          State : clean
    Device UUID : 839a5310:627f3038:dc7859c9:ce2eb285

    Update Time : Sun Sep  1 07:10:21 2002
       Checksum : ee0887ed - correct
         Events : 1358339

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : .AA. ('A' == active, '.' == missing, 'R' == replacing)

pour Info j’ai fait des images des trosi volumes (sdc, sdd, et sde) avec ddrescue (j’ai > exécuté la commande suivante:)

ddrescue -f -n /dev/sdc /home/chemin/disque1.img /home/chemin/log1

ceci pour les 3 disques

J’ai lu pas mal de forum sur le sujet et sur diverses possibilités de solutions, mais mais connaissances en la matière étant assez limitées, je préfère demander de l’aide !

j’ai pas mal de données sur ce RAID et bien sur, je voudrais les récupérer car cela va sans dire, je n’ai pas fait de backup !!! (oui je sais je suis nul !!! )

merci d’avance pour votre aide donc :slight_smile:

On peut commencer par faire un état des lieux.

fdisk -l
lsblk
blkid
file -s /dev/sd[ce]1

Cette commande n’examine pas /dev/sde1.

fdsk -l

[root@sysrescue ~]# fdisk -l
Disk /dev/sde: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ST31000333AS    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0001d7a5

Device     Boot Start        End    Sectors   Size Id Type
/dev/sde1          63 1953520064 1953520002 931.5G fd Linux raid autodetect


Disk /dev/sdc: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ST31000524AS    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x005f0db9

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdc1          63 1953520064 1953520002 931.5G fd Linux raid autodetect


Disk /dev/sda: 111.79 GiB, 120034123776 bytes, 234441648 sectors
Disk model: ST3120022A      
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000d30d4

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sda1  *    7878656 234440703 226562048  108G 83 Linux
/dev/sda2          2048   7878655   7876608  3.8G 82 Linux swap / Solaris

Partition table entries are not in disk order.


Disk /dev/sdd: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ST31000333AS    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0000cf08

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdd1          63 1953520064 1953520002 931.5G fd Linux raid autodetect


Disk /dev/sdf: 29.63 GiB, 31809601536 bytes, 62128128 sectors
Disk model: Storage Device  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1d88d02c

Device     Boot Start     End Sectors  Size Id Type
/dev/sdf1  *        0 1431551 1431552  699M  0 Empty
/dev/sdf2         236    3115    2880  1.4M ef EFI (FAT-12/16/32)


Disk /dev/loop0: 637.46 MiB, 668426240 bytes, 1305520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@sysrescue ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0 637.5M  1 loop /run/archiso/sfs/airootfs
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0   108G  0 part 
└─sda2   8:2    0   3.8G  0 part 
sdb      8:16   0   3.9G  0 disk 
sdc      8:32   0 931.5G  0 disk 
└─sdc1   8:33   0 931.5G  0 part 
sdd      8:48   0 931.5G  0 disk 
└─sdd1   8:49   0 931.5G  0 part 
sde      8:64   0 931.5G  0 disk 
└─sde1   8:65   0 931.5G  0 part 
sdf      8:80   1  29.6G  0 disk /run/archiso/bootmnt
├─sdf1   8:81   1   699M  0 part 
└─sdf2   8:82   1   1.4M  0 part 
sr0     11:0    1  1024M  0 rom

pour info:

  • sda: disque IDE sur lequel est installé debian
  • sdb , sdc, sdd, et sde: disques 1 To pour le RAID; sdb est le disque HS !
  • sdf: clé USB sur laquelle j’ai booté (sous SYSTEMRESCUE)
[root@sysrescue ~]# blkid
/dev/sda1: UUID="4a2a8722-c550-42bb-a000-c9f9dd792f16" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="000d30d4-01"
/dev/sda2: UUID="8b3aeac9-9f54-463a-bf1f-ddcddffc19a8" TYPE="swap" PARTUUID="000d30d4-02"
/dev/sdd1: UUID="2488e4c7-ed21-4b40-8bdd-f2b80f485524" UUID_SUB="839a5310-627f-3038-dc78-59c9ce2eb285" LABEL="lolo-serveur:0" TYPE="linux_raid_member" PARTUUID="0000cf08-01"
/dev/sdf1: BLOCK_SIZE="2048" UUID="2020-11-22-07-45-48-00" LABEL="RESCUE701" TYPE="iso9660" PTUUID="1d88d02c" PTTYPE="dos" PARTUUID="1d88d02c-01"
/dev/sdf2: SEC_TYPE="msdos" UUID="59B0-9063" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="1d88d02c-02"
/dev/loop0: TYPE="squashfs"
/dev/sde1: PARTUUID="0001d7a5-01"
/dev/sdc1: PARTUUID="005f0db9-01"
[root@sysrescue ~]# file -s /dev/sd[ce]1
/dev/sdc1: data
/dev/sde1: data

petite boulette de ma part ! j’ai recopié 2 fois la même ligne; mais la commande donne le même résultat avec sdc et sde

Merci de ton aide :slight_smile:

AÏe, normalement, ça doit donner autre chose. Tu peux essayer de lancer les commandes :

  • dd if=/dev/sdc1 of=/dev/null size=16M count=256
  • dd if=/dev/sde1 of=/dev/null size=16M count=256
    Juste pour voir.

Voir quoi ?

Si c’est un problème physique de lecture du disque ou si ça vient des données et on l’aurait vu avec file, tu as raison @PascalHambourg, merci.
Laisse tomber mes commandes, @lologramme.

Effectivement pas de signature de superbloc RAID détectée dans les partitions /dev/sdc1 et /dev/sde1. Est-ce que par mégarde utilisé les disques entiers /dev/sdc et /dev/sde auraient été utilisés comme membres au lieu des partitions /dev/sdc1 et /dev/sde1 lors de la création de l’ensemble RAID ? En cas de doute vérifier avec

mdadm --examine /dev/sd[ce]
file -sk /dev/sd[ce]

Par curiosité, avec quoi les disques en RAID ont-il été partitionnés ? Leur partition est alignée « à l’ancienne » sur des limites de piste/cylindre (63 secteurs) et non sur des limites de blocs de 2048 secteurs comme c’est l’usage actuel, plus adapté à la géométrie des SSD et des disques durs au format avancé 512e.

[root@sysrescue ~]# mdadm --examine /dev/sd[ce]
/dev/sdc:
   MBR Magic : aa55
Partition[0] :   1953520002 sectors at           63 (type fd)
/dev/sde:
   MBR Magic : aa55
Partition[0] :   1953520002 sectors at           63 (type fd)
[root@sysrescue ~]# file -sk /dev/sd[ce]
/dev/sdc: DOS/MBR boot sector; partition 1 : ID=0xfd, start-CHS (0x0,1,1), end-CHS (0x3ff,254,63), startsector 63, 1953520002 sectors, extended partition table (last)\012-  DOS/MBR boot sector\012-  (Lepton 3.x), scale 0-0, spot sensor temperature 0.000000, unit celsius, color scheme 0, calibration: offset 0.000000, slope 0.000000\012-  (Lepton 2.x), scale 0-0, spot sensor temperature 0.000000, unit celsius, color scheme 0, calibration: offset 0.000000, slope 0.000000\012- data
/dev/sde: DOS/MBR boot sector; partition 1 : ID=0xfd, start-CHS (0x0,1,1), end-CHS (0x3ff,254,63), startsector 63, 1953520002 sectors\012-  DOS/MBR boot sector\012-  (Lepton 3.x), scale 0-0, spot sensor temperature 0.000000, unit celsius, color scheme 0, calibration: offset 0.000000, slope 0.000000\012-  (Lepton 2.x), scale 0-0, spot sensor temperature 0.000000, unit celsius, color scheme 0, calibration: offset 0.000000, slope 0.000000\012- data

J’ai crée RAID il y a bien longtemp !! et ça a toujours bien fonctionné:
j’ai crée la grappe RAID comme ceci:

mdadm --create /dev/md0 --level=5 --raid-device=4/dev/sd[abcd]1

la dessus j’ai créé un LVM avec 10 volumes logiques formatés avec mkfs.ext4

Donc l’ensemble RAID a été créé uniquement avec des partitions.
Tu peux examiner le dump hexadécimal/ASCII des partitions pour voir si seule la signature (nombre magique) du superbloc a été effacée ou si tout le superbloc a été effacé.

hd -n 8192 /dev/sdc1
hd -n 8192 /dev/sdd1
hd -n 8192 /dev/sde1

Le dump de /dev/sdd1 sert de référence pour essayer de retrouver des éléments communs comme les caractères du hostname « lolo-serveur » ou les octets de l’array UUID dans les deux autres.

pas de commande hd !!
je vais voir si je trouve à l’installer (je connais mal arch !!!)

hdparm c’est pareil ?

Non, rien à voir avec hdparm.
Essaie avec hexdump -C à la place de hd.

c’est quoi la commande exacte ?
si je fais hexdump -C /dev/sdc1, ça me sort des pages et des pages de tableau en hexa.
c’est ça que tu souhaites ?

J’ai dit de remplacer « hd » par « hexdump -C », ni plus ni moins. Le reste des commandes est inchangé.

hexdump -C -n 8192 /dev/sdc1

etc.

[root@sysrescue ~]# hexdump -C -n 8192 /dev/sdc1
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001200  fe ff fe ff fe ff fe ff  fe ff fe ff fe ff fe ff  |................|
*
00001400  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00002000
[root@sysrescue ~]# hexdump -C -n 8192 /dev/sdd1
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001000  fc 4e 2b a9 01 00 00 00  00 00 00 00 00 00 00 00  |.N+.............|
00001010  24 88 e4 c7 ed 21 4b 40  8b dd f2 b8 0f 48 55 24  |$....!K@.....HU$|
00001020  6c 6f 6c 6f 2d 73 65 72  76 65 75 72 3a 30 00 00  |lolo-serveur:0..|
00001030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001040  ad 09 e5 4d 00 00 00 00  05 00 00 00 02 00 00 00  |...M............|
00001050  00 50 70 74 00 00 00 00  00 04 00 00 04 00 00 00  |.Ppt............|
00001060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001080  00 08 00 00 00 00 00 00  82 51 70 74 00 00 00 00  |.........Qpt....|
00001090  08 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000010a0  02 00 00 00 00 00 00 00  83 9a 53 10 62 7f 30 38  |..........S.b.08|
000010b0  dc 78 59 c9 ce 2e b2 85  00 00 00 00 00 00 00 00  |.xY.............|
000010c0  5d bd 71 3d 00 00 00 00  03 ba 14 00 00 00 00 00  |].q=............|
000010d0  ff ff ff ff ff ff ff ff  ed 87 08 ee 80 01 00 00  |................|
000010e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001100  fe ff fe ff 02 00 fe ff  fe ff 01 00 fe ff fe ff  |................|
00001110  fe ff fe ff fe ff fe ff  fe ff fe ff fe ff fe ff  |................|
*
00001400  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00002000
[root@sysrescue ~]# hexdump -C -n 8192 /dev/sde1
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001200  fe ff fe ff fe ff fe ff  fe ff fe ff fe ff fe ff  |................|
*
00001400  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00002000