Récupérer des données sur un disque RAID 1 issu d’un synology

Suite à une boulette de ma part mon Synology est HS (ne jamais faire un reboot apres un echec dans la mise à jour de DSM).

Comme j’avais tout un tas de données dessus j’ai cherché à en faire un backup.

Pour ce faire j’ai extrait l’un des disques dur du Synology (Ils sont en RAID 1 – mirroring) et l’ai copié sur un autre disque vierge pour travailler tranquillement . [ merci http://fredo.servehttp.com/html/Astu-19_3.htm]. Les opérations seront faites à partir d’une machine Linux (Ubuntu)

dd if=/dev/sdc of=/dev/sdb bs=64k conv=noerror

J’installe mdadm pour avoir accès au RAID

J’ai rebooté en ayant le seul disque de copie (le disque original est à l’abri), mais le raid ne veux pas démarrer (erreur au démarrage). Je poursuis donc le boot et tente les commandes en manuel [merci http://forum.synology.com/wiki/index.php/How_to_retrieve_data_from_RAID_Volumes_on_Linux] :

mdadm --assemble /dev/md2 /dev/sdb3

Mais le système se plaint de ne pas trouver de superblock.

Pour information un disque synology est découpé en plusieurs partitions :

sdb1 : partition root linux

sdb2 : partition SWAP

sdb3 : partition étendue

sdb5 : partition de données

Tout du moins c’est ce que je croyais avoir compris, d’où un doute sur l’utilisation de sdb3 au lieu de sdb5 (la commande ne donne pas grand chose de mieux avec sdb5 😦 ).

Apres un moment de flottement je tente al technique « hacker », a coup de hexdump

hexdump -C /dev/sdb5 | more

et là je tombe sur une phrase magique

 00022000  06 fd 37 87 20 4c 56 4d  32 20 78 5b 35 41 25 72  |..7. LVM2 x[5A%r|

Synology (du moins chez moi) utilise LVM  (qui n’est pas installé sur ma Linux box)

apt-get install lvm2

Et là

#mdadm -A /dev/md2 /dev/sdb5
mdadm: /dev/md2 assembled from 1 drive - need all 2 to start it (use --run to insist).
Pas de bol il ralle car le RAID n'est pas complet
# mdadm -S /dev/md2
mdadm: stopped /dev/md2
# mdadm -A /dev/md2 --run /dev/sdb5
mdadm: /dev/md2 has been started with 1 drive (out of 2).

Et là maintenant

#pvscan 
  PV /dev/md2   VG vg1   lvm2 [1,36 TiB / 0    free]
  Total: 1 [1,36 TiB] / in use: 1 [1,36 TiB] / in no VG: 0 [0   ]
# vgscan 
  Reading all physical volumes.  This may take a while...
  Found volume group "vg1" using metadata type lvm2
# lvscan 
  ACTIVE            '/dev/vg1/lv' [1,36 TiB] inherit
# mount /dev/vg1/lv /mnt/syno/
# df
[...]
/dev/mapper/vg1-lv   1440839828 1214608956 226128472  85% /mnt/syno

Je respire …

Donc pour résumer, pour accéder à un disque RAID1 (les autres aussi probablement) issu d’un synology, il faut installer les packages mdadm et lvm2. Ensuite il faut réactiver le raid mdadm -A /dev/md2 –run /dev/sdb5.

Je ne sais pas par contre si l’étape pv/vg/lvscan est nécessaire et si le système voit les nouveaux device LVM sans ça.

EDIT: Au boot Ubuntu demande s’il doit démarrer le RAID en mode dégradé, si mdadm et lvm sont installé il arrive à rendre disponible /dev/vg1/lv sans manip supplémentaire

Publicités

Publié le 16 septembre 2012, dans Linux, et tagué , , , . Bookmarquez ce permalien. 11 Commentaires.

  1. Bonjour Stéphane,

    J’ai eu un scénario similaire sur mon DS207+, je ne sais pas si cela s’applique de même.

    J’ai pu monter le filesystem read-only de la manière suivante sur une machine virtuelle Tiny Core Linux avec mdadm et lvm2 et d’autres modules type samba. Seul le disque dur à récupérer est connecté.

    tc@box:~$ sudo mdadm –assemble –scan
    mdadm: /dev/md/2_0 has been started with 1 drive.
    tc@box:~$ sudo mount -t ext3 -o ro /dev/md127 /mnt/md127/

    Note: /mnt/md127/ automatiquement créé par le système, si ce n’est pas le cas chez vous, il faudra le créer au préalable.

  2. N.B: visiblement wordpress mange les tirets.
    Il faut lire sudo mdadm (double tiret)assemble (double tiret)scan

  3. Bonsoir Stef,

    Suite à un « coup de foudre » (par le câble réseau) mon Syno DS211j est tombé en panne (carte mère HS).
    J’ai pu le faire échanger mais maintenant se pose la question de la migration des disques.

    Aucune procédure de migration prévue par Synology (http://forum.synology.com/wiki/index.php/How_to_Migrate_between_Synology_Systems) n’envisage le cas où le NAS d’origine est HS (ce qui me semble hallucinant mais passons…).

    Sais-tu si la méthode 1 est envisageable sans connaître l’ordre d’installation des disques durs dans le NAS d’origine (quitte à inverser si ça ne fonctionne pas au premier essai) et sans avoir de sauvegarde de la configuration (seule la récupération des données m’importe) ?

    Sinon, étant donné que je suis un Windows user, ta solution peut-elle être réalisée depuis une machine virtuelle Linux (kubuntu, mint ?) avec le disque sur station d’accueil (USB ou eSata au choix) ?

    Merci pour les éclairages que tu pourras m’apporter !

    • Salut,

      Je penses que la manip est faisable à partir d’une machine virtuelle, sinon tu peux aussi passer par un live CD afin d’avoir des perfs un peu meilleur (et surtout sans devoir faire une installation).
      Quel type de RAID utilises-tu ? En mirrorring il te suffit de prendre un des disques, l’autre n’étant pas utilisé, donc l’ordre importe peu.

      Dans cette hypothèse je préconise une manip en trois temps :
      1/ Brancher l’un des disques sur ton ordinateur et constater que tu as accès aux données
      2/ Placer le second disque dans le nouveau synology et l’installer avec l’assistant (tu perdra toutes les données ecrites sur le disque, d’où la vérification minutieuse à faire en (1) ). Faire le paramétrage minimum pour avoir les partages adéquats
      3/ Copier les données depuis le disque connecté sur ton ordinateur vers le synology.

      Si par contre tu es en stripping il va te manquer des disques pour faire la manip vu que les deux seront la « source » (a moins que tu n’ai investi entre temps).

      Bon courage

      • Salut Stef,
        D’abord merci pour ta réponse.

        Effectivement j’ai oublié cette précision pourtant importante qu’est le type de Raid !
        Dans mon cas il s’agit de mirroring, comme pour toi donc, et c’est pourquoi ton article m’a autant intéressé (le premier article correspondant exactement à mon problème : récupérer des données en direct du disque dur suite à une panne du NAS).

        Maintenant je vais apporter une autre précision : suite à la décision prise hier soir de ne pas poursuivre avec le NAS…
        [ – utilité non avérée des fonctionnalités réseau après deux ans d’utilisation
        – NAS intégré dans le Freebox Server si nécessaire
        – si le NAS ne sert qu’à stocker mais qu’il n’est même pas fiable pour ça autant prendre un simple disque externe en eSata autorisant de ce fait des débits plus élevés et mettre en place une synchro automatique avec d’un disque interne, et pour les galeries photos maintenant le web regorge de solutions plus rapides et pratiques que l’hébergement à domicile… bref…]
        … mon seul problème est de pouvoir lire les données d’un des disques pour les copier sur l’ordi.

        Pour ce faire tu me conseilles donc l’usage d’un Live CD ? j’ai un kubuntu 7.10 qui traîne à la maison, ça suffirait ?
        Mais surtout est-ce qu’on peut installer les packages nécessaires depuis une session Live CD ?
        Aucun souci pour réaliser les manips avec le disque sur une station d’accueil ?
        Les commandes seront-elles strictement les mêmes que dans ton cas ou y-a-t’il des différences à prévoir ?
        Comment lister les devices/disques sous Linux (je suis pas très calé en Linux…) ?

      • Kubuntu 7.10 me parait un peu ancienne (2007 … ça fait quand même 5 ans), donc il pourrait y avoir des différences dans les commandes à taper.
        Je dirais qu’une des dernières Ubuntu (ou une variante) devrait faire l’affaire. Je ne sais pas si les commandes auront évolué, normalement non ça me parait peu probable.

        Tu peux tout a fait installer les packages à partir d’une session Live CD, grave en déjà un et met en place ton disque « destination », tu verras déjà s’il est reconnu, à moins d’avoir de « l’exotique » cela devrait passer.
        Pour lister les devices il y a plusieurs solutions, « dmesg » pour commencer, mais comme beaucoup de log il faut savoir s’y retrouver.
        Je t’enverrais alors plus vers des utilitaires graphiques, comme « gparted » qui permet de manipuler les partitions de ton disque.

        Apres je vois quelques problèmes si tu n’es pas très calé sous Linux, l’installation de package sur un live CD ne se fait qu’en mémoire : en rebootant tu perds tout.
        Ton idée de VM est peut être la plus simple dans ton cas, installe une Ubuntu ou autre, je ne suis pas sectaire, mais elle a(vait) l’avantage d’être simple , installe les 2-3 packages qui pourraient manquer, reboot et si ça se trouve tout marchera tout seul. Sinon tu es bon pour « bidouiller » en prenant mon tuto d’une main et ton clavier de l’autre (du coup j’espère ne pas avoir oublié d’étapes dans celui-ci ^^).

  4. Bon ben je me suis lancé tout-à-l’heure, en session Live CD, et tout s’est passé comme sur des roulettes !
    Je crois que le plus difficile a été de choper le net depuis la session Live car Ubuntu ne détectait pas le réseau wifi de la Freebox. Je m’en suis sorti en passant par le partage de connexion de mon iPhone…

    En tout cas, je te remercie vraiment pour ton aide !

  5. Je n’ai pas l’habitude de répondre au site que je consulte mais là ….
    Merci pour la simplicité des explications, c’est concis et très clair.
    Concernant la copie vers un disque vierge, comment as tu fais?
    J’ai trouvé ce type de matos (désolé pour la pub):
    http://www.darty.com/nav/achat/accessoires/stockage_memoire/disque_dur/integral_integral_copy_station.html
    Il me semble que c’est de la copie bit à bit donc rapide et efficace.
    J’hésite même à mettre en place une fois par moi en plus du backup sur DD externe une copie « offline » (syno éteint et un disque dur du raid) via cette technique (et externalisation de ce disque).
    Cela permettrait d’avoir un état consistent du synology à un instant T (incendie ou autre …)
    Paranoia quand tu nous tiens…

    Bonne continuation.

    • Il me semble avoir utilisé la commande « dd » (disponible dans toutes les bonnes distributions linux).
      Cela dit le produit que tu as trouvé devrait faire l’affaire (par contre je ne l’ai jamais utilisé).

      La sauvegarde externe c’est l’idéal il faut juste s’y tenir. Par contre dévisser le syno et un disque dur tous les mois ça risque d’être pénible à force.
      Une copie de nuit (hors période d’utilisation) me parait suffisante. Avec la crontab du syno et du rsync, tu dois pouvoir limiter le temps de traitement en ne copiant que les données qui ont bougées.
      Suivant le syno il y a des ports USB ou eSATA qui doivent permettre de mettre en place ceci sans devoir ouvrir la machine.

      De mémoire il ne me semble pas avoir réussi a transférer un disque dur d’un syno vers un autre sans devoir formater le disque (à confirmer), donc si tu perds ton syno ça ne servira a rien d’avoir fait une copie du systeme qu’il utilise, mieux vaut cibler les données.

  1. Pingback: Peltier – Net » Blog Archive Synology : Récupérer des données sur un disque RAID 1 - Peltier - Net

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :