Très récemment mon Readynas Ultra 2 a eu un problème de carte réseau, par chance il est encore sous garantie et Netgear m’a proposé de l’envoyer chez eux pour remplacer le chassis.
Ne pouvant pas vraiment me passer d’un NAS pour quelques semaines (à ce stade toutes les excuses sont valables…) j’ai investit dans un NAS Synology. J’ai alors réalisé que toutes mes sauvegardes, quelques scripts intéressant, etc étaient stockés uniquement sur mon ReadyNAS.
Il m’a donc fallu trouver un moyen d’accéder à ces données via le disque-dur directement.
Petite précision, il n’est pas ici question de la récupération de données sur des disques endommagés… c’est un sujet beaucoup plus complexe, qui se base toutefois sur le même principe.
RAID dingue de… données ?
L’intêret d’un NAS par rapport à un disque-dur externe par exemple se situe dans sa capacité à gérer de manière plus ou moins automatique la redondance des données. Je ne vais pas me lancer dans une explication des différents modes de RAID (Google !), mais en général les NAS “grand public” proposent un mode de gestion “automatique”, où le système va favoriser la redondance par rapport à la performance ou au volume de données disponible.
Avec 2 disques, un Readynas configuré en mode “X-RAID-2” va créer un espace de données correspondant à la taille du disque le plus petit et gérer un redondance entre les deux disques. Le système peut donc supporter au maximum un disque en panne sur les deux disponibles.
Bien que propriétaire, ce mode de gestion se base en fait sur du RAID classique, et nous permet donc d’utiliser les outils habituels pour gérer ces configurations sous Linux.
La trousse à outils
Pour connecter le disque à ma machine j’ai utilisé un adaptateur SATA/USB tel que celui-ci : Advance - USB-009 - Adaptateur IDE / SATA.
Pour éviter de polluer mon système j’ai aussi décidé de travailler à partir d’une Ubuntu 14.04 en live-USB.
L’outil principal pour travailler sur du RAID en Linux est mdadm
… qui s’installe ainsi sur Ubuntu :
sudo apt-get update && sudo apt-get install mdadm
apt
va aussi installer Postfix… probablement pour permettre l’envoi d’emails d’alertes… donc notre cas tout à fait inutile, on peut donc ignorer la configuration.
“À la bataille !”
Oui, c’est bien une référence à Ages Of Empire II !
mdadm
étant installé, il est temps de connecter le disque-dur à la machine. Ubuntu devrait automatiquement monter certaines partitions… mais rarement la bonne…
Pour déterminer la partition qui contient les données je me suis basé essentiellment sur la taille du volume, dans mon cas environ 1 To. Plusieurs commandes permettent de trouver cette information, j’ai utilisé fdisk -l
, voici un extrait du résultat :
Disk /dev/mapper/c-c: 984.6 GB, 984621252608 bytes
255 heads, 63 sectors/track, 119706 cylinders, total 1923088384 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Disk identifier: 0x00000000
Cette partition a la bonne taille, essayons de la monter :
mkdir data
mount -t ext4 /dev/mapper/c-c ./data/
Victoire !
Et sinon ?
Si cette solution ne fonctionne pas, il est toujours possible de travailler avec mdadm
pour monter la partition. Par exemple fdisk -l
peut nous dire que /dev/md125
a aussi la bonne taille.
mdadm --detail /dev/md125
peut permettre de confirmer cela et identifer la partition correspondante :
root@ubuntu:/home/ubuntu# mdadm --detail /dev/md125
/dev/md125:
Version : 1.2
Creation Time : Sat Sep 27 09:19:16 2014
Raid Level : raid5
Array Size : 972040704 (927.01 GiB 995.37 GB)
Used Dev Size : 972040704 (927.01 GiB 995.37 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Sun Oct 5 16:37:57 2014
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
Name : A021B7C17002:2
UUID : c04e7c99:2f19ec0b:7ed9de43:dee7c184
Events : 5667
Number Major Minor RaidDevice State
0 0 0 0 removed
2 8 35 1 active sync /dev/sdc3
La toute dernière ligne nous indique donc que /dev/sdc3
est la partition à monter après avoir lancé le RAID avec mdadm --run /dev/md125
.