Archives Pour le 'Linux' Category

Récupération de données avec GNU ddrescue :

Je vais détailler ici comment j’ai récupéré les données issues d’un disque dur de 1 To (Samsung HD103UJ), monté dans un boitier externe ayant subit les effets de la gravité pour finir contre le sol. (Merci les enfants)

Je ne donne pas « la méthode infaillible » ici mais uniquement celle qui à marché pour moi à un moment donné. Une chose qu’il faut savoir c’est que plus l’on essaye de récupérer les données sans savoir ce que l’on fait plus on à de chance de tout perdre, donc si ces données sont vitales ou de grande valeur et qu’elles justifient le payement (relativement cher) d’un pro pour la récupération faites le plutôt que de prendre le risque de tout perdre.

Dans un premier temps, je branche le disque dur afin d’écouter le bruit qu’il fait :

 

  • pas de bruits de claquement de tête
  • on entend les plateaux tourner

 

Cela s’annonce déjà pas mal, on  va pouvoir passer a la suite :

Pour les récupération de données je me suis fait un petit poste avec une Debian Squeez 6.0.2,  pour brancher le disque dur à  récupérer sur la machine, je ne passes pas par le  contrôleur interne de la carte mère,  les secteurs défectueux présents sur le disque à récupérer ont tendances à  me  faire ralentir ou même freezer la machine complétement.

Je passes donc par un contrôleur USB 2 vers Sata / IDE 2.5 et 3.5 Pouces que j’ai pris chez LDLC.  (Je l’ai vu aussi sur ebay en provenance de chine)

Installation de ddrescue :

Simple et rapide :

apt-get install gddrescue

Mais dans les dépôt on à que la version 1.11 actuellement

 

Compilée à partir des sources :

cd /home/<user>
wget http://mirror.ibcp.fr/pub/gnu/ddrescue/ddrescue-1.14.tar.gz
tar -xvvf ddrescue-1.14.tar.gz
cd ddrescue-1.14
./configure
make
make install

C’est la méthode que je préfère personnellement.

 La récupération vers une image :

Dans un premier temps on va copier tout ce que l’on peux sans trop approfondir sur les  secteurs défectueux (option -n)

cd /mnt/recovery/
ddrescue -n -v /dev/sdb hddhs.dd rescue.log

ou sdb est bien sur votre disque à récupérer

Ne pas oublier de se mettre dans un emplacement ou l’on aura assez de place pour  recueillir d’image du  disque (Moi je me déplace dans /mnt/recovery/ ou je monte un array de 7.2 TB)

Laisser la copie se faire, pour le disque en question cela à mis 2 jours. (Chance que le disque ne soit  pas mort entre temps)

Dans un second temps maintenant que l’on à copié ce qui était le plus facilement lisible on va essayer de tirer le maximum de données des zones défectueuses (option -r)

Dans le cas actuel on va essayer 6 fois  de lire le secteur défectueux avant de passer au suivant.

ddrescue -r 6 -v /dev/sdb hddhs.dd rescue.log

 

11 Jours plus tard la copie est finie, j’ai arrêté avant la fin  car je considère que plus rien de plus ne pourrais être récupéré sur les secteurs défectueux restant. Il manques 330 MB illisibles.

Maintenant on va lancer Photorec afin de récupérer le maximum de fichiers de notre image de disque dur.

dans un premier temps on va se faire une copie de sauvegarde de notre dump :

cp hddhs.dd hddhs.dd.bak

Maintenant même en cas de fausse manipulation on peux recommencer avec une copie de notre sauvegarde :)
On installe donc Photorec contenu dans le paquet testdisk :

apt-get install testdisk

Lancement du programme sur le dump :

debian:/mnt/recovery# photorec hddhs.dd

On va sélectionner notre image disque (elle l’est pas défaut normalement) et Proceed :

PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER
http://www.cgsecurity.org

  PhotoRec is free software, and
comes with ABSOLUTELY NO WARRANTY.

Select a media (use Arrow keys, then press Enter):
Disk hddhs.dd - 1000 GB / 931 GiB (RO)

[Proceed ]  [  Quit  ]

Note:
Disk capacity must be correctly detected for a successful recovery.
If a disk listed above has incorrect size, check HD jumper settings, BIOS
detection, and install the latest OS patches and disk drivers.

Je ne l’avais pas précisé plus tôt mais le malade avait une seule partition en NTFS.
On choisis Intel dans le menu et on valide avec entrée :

PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER
http://www.cgsecurity.org

Disk hddhs.dd - 1000 GB / 931 GiB (RO)

Please select the partition table type, press Enter when done.
[Intel ]  Intel/PC partition
[EFI GPT]  EFI GPT partition map (Mac i386, some x86_64...)
[Mac    ]  Apple partition map
[None   ]  Non partitioned media
[Sun    ]  Sun Solaris partition
[XBox   ]  XBox partition
[Return ]  Return to disk selection

Note: Do NOT select 'None' for media with only a single partition. It's very
rare for a drive to be 'Non-partitioned'.

Dans le prochain choix je vois que Photorec à réussis à reconnaitre une partition NTFS de nom [Nouveau nom].

On sélectionne celle ci (Si aucune partition était trouvée le premier choix serais à prendre [Whole disk] puis dans les deux cas Search et entrée :

PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER
http://www.cgsecurity.org

Disk hddhs.dd - 1000 GB / 931 GiB (RO)

     Partition                  Start        End    Size in sectors
     No partition             0   0  1 121601  47 29 1953523055 [Whole disk]
 1 P HPFS - NTFS 0 1 1 121600 254 63 1953520002 [Nouveau nom] [ Search ]  [Options ]  [File Opt]  [  Quit  ]
                              Start file recovery

Puis on confirme le système de fichier (NTFS dans notre cas) :

PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER
http://www.cgsecurity.org

 1 P HPFS - NTFS              0   1  1 121600 254 63 1953520002 [Nouveau nom]

To recover lost files, PhotoRec need to know the filesystem type where the
file were stored:
[ ext2/ext3 ]  ext2/ext3/ext4 filesystem
[ Other ]  FAT/NTFS/HFS+/ReiserFS/...

Comme on veux récupérer un maximum de  nos données perdues on sélectionne [Whole].

On prend tout ce qui peux être pris :

PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER
http://www.cgsecurity.org

 1 P HPFS - NTFS              0   1  1 121600 254 63 1953520002 [Nouveau nom]

Please choose if all space need to be analysed:
[   Free    ]  Scan for file from NTFS unallocated space only
[ Whole ]  Extract files from whole partition

Puis il nous faut sélectionner un endroit ou mettre les fichiers récupérés :

PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER
http://www.cgsecurity.org

Do you want to save recovered files in /mnt/recovery ? [Y/N]
Do not choose to write the files to the same partition they were stored on.

To select another directory, use the arrow keys.
drwxrwxrwx  1000     0         0 12-Aug-2011 21:03 .
drwxr-xr-x     0     0      4096  7-Aug-2011 18:35 ..
drwxrwxrwx 1000 0 0 12-Aug-2011 21:04 test
-rwxrwSrwx  1000     0   1000203804160 10-Aug-2011 22:59 hddhs.dd.bak
-rwxrwSrwx  1000     0    465019  3-Aug-2011 22:10 rescue.log.bak
-rwxrwSrwx  1000     0   1000203804160 10-Aug-2011 22:59 hddhs.dd

Puis on confirmes que c’est bien dans ce répertoire que l’on veux mettre les fichiers en appuyant sur la touche Y :

PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER
http://www.cgsecurity.org

Do you want to save recovered files in /mnt/recovery/test ? [Y/N]
Do not choose to write the files to the same partition they were stored on.

To select another directory, use the arrow keys.
drwxrwxrwx 1000 0 0 12-Aug-2011 21:04 .
drwxrwxrwx  1000     0         0 12-Aug-2011 21:03 ..

Puis se lance un long travail et une longue période d’attente :

PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER
http://www.cgsecurity.org

Disk hddhs.dd - 1000 GB / 931 GiB (RO)
     Partition                  Start        End    Size in sectors
 1 P HPFS - NTFS              0   1  1 121600 254 63 1953520002 [Nouveau nom]

Pass 1 - Reading sector    2325867/1953520002, 251 files found
Elapsed time 0h02m43s - Estimated time for achievement 37h59m02
jpg: 195 recovered
doc: 20 recovered
txt: 16 recovered
cab: 5 recovered
bmp: 4 recovered
exe: 4 recovered
mpg: 4 recovered
asf: 1 recovered
gpg: 1 recovered
zip: 1 recovered

  Stop

Suite plus tard, quand cette passe sera finie.

Sites où je me suis documenté :

http://serverfault.com

Page Officielle de GNU ddrescue

http://doc.ubuntu-fr.org/ddrescue

Bilan : comment récupérer des données perdues

DynHOST ovh sur DD-WRT (WRT54G-TM)

Je met pour mémoire la configuration à mettre dans un routeur équipé du firmware alternatif DD-WRT.
Afin de pouvoir utiliser un DynHOST OVH.

Configuration –> DDNS

Rattacher son minicloud OVH à un Nom de Domaine :

Prérequis :

  • Un Nom de domaine chez OVH
  • Un minicloud chez OVH
  • 15 Minutes de temps Disponible
  • Une Debian 5 (32 ou 64 Bits)

Problème :

Quand on archive un minicloud, au moment de son redémarrage il n’as plus la même IP, après cette manipulation il nous sera possible de retomber toujours sur lui grâce à un  sous domaine.

Mise en place :

Dans un premier temps  nous allons créer le sous domaine qui pointera vers notre minicloud,

Se connecter sur le manager V3 d’OVH, puis aller dans le section Domaine
et DNS –> Zone DNS –> Champ DynHOST
Créer un sous domaine : (Pour l’exemple : minicloud.lelouya.com)
AdresseIP : 127.0.0.1
Laisser la case « Créer un Identifiant DynHOST cochée »
Comme Suffixe : minicloud
Sous Domaine : Choisir le sous domaine crée juste avant
Mot de Passe :  motdepasse (A remplacer par votre choix)

Sur notre minicloud en SSH :

Nous allons télécharger le script qui va informer OVH des changement D’IP afin que l’on pointe toujours sur la bonne IP :

  • wget http://www.funtaff.com/software/addns.pl/addns-1.2a.tar.gz
  • tar xvvf addns-1.2a.tar.gz
  • cd addns-1.2
  • cp addns.conf.sample addns.conf
  • nano addns.conf

Le faire ressembler à cela :

{
 proxy_host = "localhost"
 proxy_port = 3128
 use_proxy = no
 }
# Example for using an interface
 [iface]
 {
 detect_method = "iface"
 update_host = minicloud.lelouya.com
 iface = "eth0"
 username = "lelouya.com-minicloud"
 password = "motdepasse"
 server_port = 80
 server_host = www.ovh.com
 }

Maintenant on va mettre les fichiers au bon endroit :

  • mv addns.pl /usr/local/bin
  • mv addns.conf /etc/addns.conf
  • nano /etc/init.d/addns.sh

On va mettre cela dedant :

#!/bin/sh
 sleep 30
 /usr/local/bin/addns.pl
 sleep 30
 /usr/local/bin/addns.pl

On rend le tout executable :

  • chmod +x /etc/init.d/addns.sh

Puis pour finir on active le script pour qu’il se lance automatiquement
au démarrage :

  • update-rc.d addns.sh defaults 90

Et voila :)

Au prochain Démarrage, après son archivage, il va mettre automatiquement son ip à jour dans la zone DNS tout seul comme un grand.

Récupération de données