# Récupération de données d’un disque dur issu d’un RAID1 d’un NAS Synology en usb

On conseille fortement de sauvegarder ses données , et à juste titre. Et aussi de multiplier ses sauvegardes sur différents supports. Là aussi, à juste titre.

Personnellement, c’est ce que je fais, mal certes (j’ai un peu de mal à m’y retrouver parfois avec de multiples systèmes). Un NAS est un outil très pratique pour cette tâche et bien d’autres encore.

Au printemps 2016, le DSM de mon NAS Synology DS212j m’informe que j’ai un Disque Dur (le 1er pour être précis) qui est en train de rendre l’âme. Pas de chance me direz-vous ? Moi je dis qu’il faillait s’y attendre à un moment ou à un autre. Lors du montage, j’avais utilisé des Disques Durs de récup c’est-à-dire qu’il s’agissait de Disques Durs standards et non de Disques Durs spécialement conçu pour les NAS. Grossière erreur même si en utilisant des Disques Durs spécialement fait pour les NAS n’empêchent pas les crashs disques, toutefois ils les limitent, vu qu’ils sont étudiés pour tourner plus longtemps et tout le temps.

A cette période, ma mère a eu quelques soucis de santé (mal à un genou et des difficultés à respirer) qui ont malheureusement fait place à quelques choses de plus grave qui à abouti à son décès. Par la suite, il a fallut s’occuper de pas mal de choses.
Bref, cela a traîné jusqu’au grandes chaleurs de cette année. Pour palier à cette situation, j’ai changé directement les Disques Durs et acheté aussi un Disques Durs externe afin de pouvoir réaliser ma backup. L’installation s’est déroulée sous Manjaro mais n’entrera pas dans le cadre d’un article, du moins de cet article. Je ne sais pas encore si c’est utile d’en faire un tant que cette opération est facile.
Maintenant que la belle saison est fini, j’ai plus de temps et j’ai décidé de m’y mettre un Samedi. Cela m’a quand même pris une partie de l’après-midi.

Raid pour tous

Lors de l’installation, j’avais crée à l’époque une grappe RAID1. Pour rappel, il existe différents types de raids lorsque vous créez un serveur dans lequel vous mixer 2 paramètres vitesse et sauvegarde. Je ne vais pas vous passer en revu tous les types de raid mais juste les principaux, à savoir :

 

 

  • RAID0: C’est le mode le plus rapide. Les données sont dupliquées sur les 2 Disques à la fois par blocs. L’inconvénient est lors de la perte d’un disque dur vous perdez les 2 sans espoirs de retrouver un jour vos données.
  • RAID1: C’est le mode de sécurité par excellence. Les données sont d’abord écrites sur le 1er DD puis sont dupliquées sur le second. L’avantage est lors d’un crash de pouvoir récupérer ses données et de recréer sa grappe. L’inconvénient est la lenteur liée à l’écriture en double des données et à la reconstitution de la nouvelle grappe.
  • RAID5: C’est le sommun car il allie à la fois la rapidité et la sécurité en combinant les avantages des 2 premiers types de raid précédant. Mais comme il y a toujours un mais, il nécessite au moins 4 DD alors que les 2 premiers n’en demandent que 2.

Le modèle DS212J est un modèle à 2 baies donc d’office exit le RAID5. Préférant la sécurité, j’opte donc pour le RAID1 avec deux DD de récup de 500 Go chacun.

Voici ci-dessous un schéma expliquant mieux le RAID1.

Ayant remplacé les disques durs défectueux par 2 Disques Durs spécial NAS Seagate IronWolf de 3 To chacun (quitte à remplacer les anciens autant exploiter la capacité maximale de mon NAS), je n’avais plus aucun moyen d’avoir accès aux données de ceux-ci. Mon idée était, outre le fait de ménager la durée de vie du Disque Dur défaillant (par expérience, cela va très vite dès que vous êtes informé), de récupérer les données au moyen d’un boîtier externe branché en USB.

Avant de commencer, j’ai donc commencé à fouiller le net à la recherche d’information sur cette pratique. A première vue, chaque cas est unique et donc différent. Voici ce qu’il en ressort et qui a marché pour moi.

Toutes ces opérations sont réalisés sur des Linux à savoir sur un Manjaro   au début puis sur une Linux Mint Tara.

Mes échecs sous Manjaro m’ont fait pensé que ceux-ci venaient de la distribution mais en fait, il n’en été rien. Je l’ai appris bien plus tard.

mdadm et lvm2 à la rescousse

Premier reflex a été d’aller voir sur le site de Synology qui conseille (comme c’est surprenant) d’utiliser une distribution Linux et une mondialement connue : Ubuntu. Pourquoi ? Le système d’exploitation de la majorité des NAS sont des Linux modifiés pour les serveurs avec une interface graphique, plus conviviale qu’un terminal mais nous restons dans les logiciels libres par excellence. Après vérification, il y a aussi un tuto pour ceux qui utilisent encore Windaube mais ne tournant que sur Manjaro et accessoirement sur Linux Mint Tara le choix fut vite fait.

Comme vous pouvez vous en doutez, la procédure échoua lamentablement car il fallait avoir les 2 Disques Durs branches. N’ayant malheureusement qu’un boîtier, il fallait trouver autre chose mais cela devait marché car avec un RAID1, rappelez-vous les données sont sur chacun des Disques Durs.

Voici la procédure que j’ai employé.
Même si certaines choses différent, d’autres sont communes.

D’abord, nous allons installé (si ce n’est pas déjà fait) les paquets des outils que sont mdadm et lvm2.

  • mdadm est une solution de Raid Logiciel très efficace et très répandue.

 

  • lvm2 est un système logiciel destiné à faire abstraction des partitions lors de la gestion de stockage sur un système Linux. Les partitions sont remplacés par des volumes logiques qui peuvent être ensuite organisés en groupes de volumes

Réalisez cette opération avec votre gestionnaire de logiciel préféré (Octopi, Pacmac pour Manjaro, Synaptic pour Tara) ou bien en ligne de commande. Normalement, ils sont souvent installés par défaut. Au moins pour moi.

  •  **Manjaro**
    > sudo pacam -S mdadm lvm2
  •  * **Tara**
    > sudo apt-get install mdadm lvm2

Ensuite, nous passons en mode administrateur (ou root) car toutes les commandes suivantes nécessitent des droits élevés.

> sudo -i

On liste ensuite les disques présents et notre fameux Disque Dur:

> fdisk -l

>Résultat

Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 63 123361279 123361217 58,8G 83 Linux
/dev/sdb2 123361280 451041279 327680000 156,3G 83 Linux
/dev/sdb3 451041280 625121279 174080000 83G 7 HPFS/NTFS/exFAT

Disk /dev/sdc: 465,8 GiB, 500107862016 bytes, 976773168 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
Disklabel type: dos
Disk identifier: 0x00097780

Device Boot Start End Sectors Size Id Type
/dev/sdc1 256 4980735 4980480 2,4G fd Linux raid autodetect
/dev/sdc2 4980736 9175039 4194304 2G fd Linux raid autodetect
/dev/sdc3 9437184 976768064 967330881 461,3G fd Linux raid autodetect

On voit ici que le Disque Dur externe est reconnue en tant que sdc composé de 3 partitions. Le Disque Dur qui se situe en sdb est un Disque Dur externe portable que j’ai recyclé en créant trois partitions. La première contient une Linux Mint persistante, la deuxième une partition cryptée. Quand à la troisième est une partition en NTFS au cas où j’en aurai besoin pour ceux de ma famille et amis qui sont encore sous Windaube.

Mais je veux en savoir plus, notamment le fameux mdxxx, ce qui nous sera utile par la suite. Servons-nous de l’utilitaire graphique de notre environnement ; pour moi qui suis sous Cinnamon ce sera Disques ou plutôt gnome-disk-utility.

Surprise, je vois bien que ce disque dur est reconnu 2 fois ; une première en tant que Disque Dur avec mes 3 partitions que l’on retrouve bien mais en deuxième il est reconnue en tant que RAID1 sous l’ appellation md127.

Cela n’a rien à voir avec les info que j’ai trouvé en tant que md0 ou bien md2 et pourtant cette information est capitale pour la suite.

Et c’est parti…

A partir de ce moment, on va pouvoir réaliser les opérations en console qui vont nous permettre (ou pas) d’accéder à nos donner dans notre explorateur de fichier, ici le bien nommé Nemo.

  1. On essaie l’astuce de Synology au cas où cela marcherait…

>> mdadm -Asf && vgchange -ay

root@eomer:~# mdadm -Asf && vgchange -ay
mdadm: No arrays found in config file or automatically 

  1. On vérifie avec mdstat par cat /proc/mdstat:

root@eomer:~# cat /proc/mdstat
Personalities :
md127 : inactive sdc30
483664416 blocks super 1.2

unused devices:

On se rend compte que le service est inactif. Là, on voit apparaître md127 pour la première fois.

On crée donc un point de montage pour md127 en prenant la troisième partition (sdc3), celle qui contient les données que l’on retrouve par sa taille (461,3). Les deux autres partitions semblent avoir été créent par Synolgy lors de la constitution de la grappe raid.

Il n’existe pas donc on monte ce point de montage. On le crée aussitôt avec :

root@eomer:~# mkdir /mnt/md127

root@eomer:~# mount /dev/sdc3 /mnt/md127
mount: /mnt/md127: unknown filesystem type 'linux_raid_member'.

Impossible d’accéder à la partition qui contient les données.
On scanne et on assemble les données du disque dur:
>> mdadm –assemble –scan

 mdadm:No arrays found in config file or automatically

Un début de piste ici et ici aussi
On crée ce fichier afin de le visualiser après.
>> mdadm –detail –scan >> /etc/mdadm/mdadm.conf

root@eomer:~# mdadm --detail --scan >> /etc/mdadm/mdadm.conf

On essaie de monter md127:

> mount /dev/md127 /mnt/md127

root@eomer:~# mount /dev/md127 /mnt/md127/
mount: /mnt/md127: can't read superblock on /dev/md127.

On verifie avec:
>> pvscan

root@eomer:~# pvscan
No matching physical volumes found

>> vgscan

root@eomer:~# vgscan
Reading volume groups from cache.

>> lvscan

root@eomer:~# lvscan

On essaie de forcer le tout:

root@eomer:~# mdadm --assemble --run /dev/md127 /dev/sdc3
mdadm: Unknown keyword INACTIVE-ARRAY
mdadm: /dev/sdc3 is busy - skipping

Cela ne fonctionne pas. On arrête donc le raid avec:

mdadm –stop /dev/md127

root@eomer:~# mdadm --stop /dev/md127
mdadm: Unknown keyword INACTIVE-ARRAY
mdadm: stopped /dev/md127

On essaye la commande suivante :

> mdadm -E  /dev/sdc

root@eomer:~# mdadm -E /dev/sdc
mdadm: Unknown keyword INACTIVE-ARRAY
/dev/sdc:
MBR Magic : aa55
Partition[0] : 4980480 sectors at 256 (type fd)
Partition[1] : 4194304 sectors at 4980736 (type fd)
Partition[2] : 967330881 sectors at 9437184 (type fd)

On retente une dernière fois l’astuce de Synology.

root@eomer:~# mdadm -Asf && vgchange -ay
mdadm: Unknown keyword INACTIVE-ARRAY
mdadm: /dev/md/DiskStation:2 has been started with 1 drive (out of 2).

Bingo il est maintenant actif. On se rend d’ailleurs compte que son appellation est passée de md127 à DiskStation.

On revérifie avec cat /proc/mdstat:

root@eomer:~# cat /etc/mdadm/mdadm.conf

#mdadm.conf
#
#!NB! Run update-initramfs -u after updating this file.
#!NB! This will ensure that initramfs has an uptodate copy.
#
#Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all

#containers for MD superblocks. alternatively, specify devices to scan, using

#wildcards if desired.

#DEVICE partitions containers

# automatically tag new arrays as belonging to the local system
HOMEHOST

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays

# This configuration was auto-generated on Sat, 27 Oct 2018 16:52:33 +0200 by mkconf
INACTIVE-ARRAY /dev/md127 metadata=1.2 name=DiskStation:2 UUID=8e355262:ebd8b4b5:5a3a18b4:c7b5098a

On jette un œil dans Disques et on se rend bien compte que RAID1 a changé d’appellation. De md127 il est maintenant nommé Diskstation2.

Dans Nemo, on clique sur 1.42.1227 qui est maintenant monté et donc accessible en lecture comme en écriture. On voit tous nos fichiers et on peut procéder au transfert.
Il faut juste être patient car 500 G0 de transfert des fichiers va prendre beaucoup de temps…Pour ma part, cela a duré 2 jours.

J’espère que je me suis pas trompé dans mes notes. Cette partie de plaisir a quand même durée 5 heures (entre les commandes et la recherche des erreurs).

Cette méthode a fonctionné pour moi toutefois elle n’est pas universelle. La commande mdadm comporte pas mal de commandes dont nous n’avons fait qu’effleuré la syntaxe. On peut citer raid1, scan, add disk, remove disk, assemble, stop,… Cet outil est une merveille et aussi un monstre de complexité, c’est pourquoi nous allons arrêter là aujourd’hui.

Publicités