Table des matières

Backup, récupération de données

Description

Ici nous allons voir tout ce dont on a besoin pour faire un backup d’un disque dur / d’une partition et pour récupérer des partitions effacées, un disque dur planté…

Les logiciels

Un des logiciels de base se nomme dd et nous en parlons déjà ici

Un autre est TestDisk et PhotoRec

PhotoRec et plus dédié à la récupération de photos/images qui auraient été effacé du disque ou de carte mémoire.

TestDisk en revanche possède un tas de fonctionnalités.

A tester foremost

partclone pour cloner une partition, un disque et le restaurer.

parted permet de gérer un disque en ligne de commande (comme peut le faire gparted qui a une interface graphique)

Pour afficher la table de partition d’un disque

parted /dev/sda print

gdisk est comme fdisk sauf qu’il supporte le GPT et permet de remettre dans l’ordre les numéros de partition, nommer les partitions etc.. et d’écrire tout ça dans la table GPT

gdisk /dev/sda

Les LiveCD / Live USB

SystemRescueCD est un liveCD avec une interface graphique de type texte qui inclut une liste assez importante de logiciel de traitement de stockage (voir le détail sur leur site). Il inclut notemment TestDisk.
L’installation sur clé USB est possible mais nécessite un peu de travail.

CloneZilla est un liveCD avec une interface graphique de type texte qui a l’avantage d’être en français et qui détaille précisement chaque action qu’il va faire et qu’il est en train de faire. Idéal pour cloner un disque dur ou une partition, pour faire un backup ou changer de disque dur trop vieux ou pas assez grand.
L’installation sur clé USB a été grandement simplifié grace au logiciel TuxBoot créé par la même enseigne. Il suffit d’installer TuxBoot de choisir ce que l’on veut dans la liste, le téléchargement débute, on choisit notre clé usb et hop tout est automatique ;)

Cloner un disque ou une partition

Installer partclone en téléchargeant un .deb ⇒ http://sourceforge.net/projects/partclone/files/

dpkg -i nom_du_paquet.deb

partclone peut être disponible dans les dépôts, sur ma ubuntu 12.04, j’ai du rajouter la section universe à mes dépôts de base pour le trouver.

Sinon télécharger les sources, installer les paquets build-essentiel,gawk, pour avoir l’essentiel pour compiler.

Pour faire une image du disque dans un fichier si c’est du ntfs

partclone.ntfs -c -d -s /dev/sda -o /home/toto/image

Pour restaurer

partclone.ntfs -r -d -s /home/toto/image -o /dev/sda

Pour cloner de disque à disque depuis la source (-s) SDA vers la sortie (-o) SDB

partclone.ntfs -b -d -s /dev/sda -o /dev/sdb

Si il y a des messages d’ereur, on peut ajouter les options suivantes :

exemple clonage

$ sudo partclone.btrfs -b -d -s /dev/sdc1 -o /dev/sdb
Partclone v0.2.51 http://partclone.org
Démarrage sauvegarde périphérique (/dev/sdc1) vers périphérique (/dev/sdb)
Reading Super Block
Calculating bitmap... Please wait... done!
Système de fichiers:  BTRFS
Device size:    2,0 TB = 488378368 Blocks
Space in use: 903,6 GB = 220612892 Blocks
Free Space:     1,1 TB = 267765476 Blocks
Taille de bloc:  4096 octets
Elapsed: 12:46:49, Remaining: 00:00:00, Completed: 100.00%, Rate:   1,18GB/min, 
current block:  488378368, total block:  488378368, Complete: 100.00%           
Durée totale: 12:46:49, Débit moyen:    1,2GB/mn, 100.00% completed!
Syncing... OK!
Partclone a réussi à cloner le périphérique (/dev/sdc1) vers le périphérique (/dev/sdb)
Cloned successfully.

Cloner un disque défectueux

http://www.cgsecurity.org/wiki/Disque_Dur_Endommag%C3%A9

avec ddrescue en installant le paquet gddrescue

#récupérer en priorité le plus de zones mémoires saines:
ddrescue -B -n /dev/old_disk /dev/new_disk rescued.log
#puis essayez de récupérer le plus de zones mémoires endommagées possible:
ddrescue -B -r 1 /dev/old_disk /dev/new_disk rescued.log

Suivant les besoins et dans le cas ou ddrescue n’y arrive pas, vous pouvez retrouver des commandes/exemples intéressant sur la doc officiel ⇒ https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html

Cloner un serveur à chaud sur une autre machine

Pour ça, on va se renseigner sur le serveur à cloner avec les commandes

cat /etc/*release
cat /etc/*version
uname -a

Partitionner votre VM qui va recevoir le contenu du serveur à cloner avec gparted

Lancer un linux en live sur la VM et monter le disque

mkdir /mnt/root
mount /dev/sdaX /mnt/root

Transférer les données avec rsync

rsync -avPHX root@SOURCE_IP:/ /mnt/root/

N’oubliez pas les ‘/’ à la fin des chemins. -a pour conserver plusieurs attributs comme propriétaire et permissions, -H pour conserver d’éventuels liens en dûr, -X pour conserver les attributs étendus comme setuid. Vous pouvez également ajouter -A si vous utilisez des acls.

FIXME

Windows

Dans le cas ou vous avez récupérez despartitions windows mais qu’au démarrage vous avec l’erreur 0xc0000225

Windows Boot Manager

Windows failed to start. A recent hardware or software change might be the cause. To fix the problem:

1. Insert your Windows installation disc and restart your computer.
2. Choose your language settings, and then click "Next."
3. Click "Repair your computer."

If you do not have this disc, contact your system administrator or computer manufacturer for assistance

Status: 0xc0000225

Info: An unexpected error has occured

La manip ici ⇒ https://neosmart.net/wiki/0xc0000225/

Récupérer des trucs dans la RAM

Copier la RAM dans un fichier

cat /proc/kcore > un-fichier

Extraire tout ce qui est chaine de caractère lisible

strings un-fichier

Rechercher toute information qui vous semblait perdu…

changer de disque dur en gardant l'ancien

J’ai voulu passer d’un disque dur classique à un disque dur ssd. J’ai donc copié les partitions via gparted avec la fonction copier/coller.
N’oubliez pas le flag boot sur la partition qui contient /boot

Maintenant je me retrouve avec des partitions qui ont le même uuid

$ blkid 
/dev/sda1: UUID="60f056f7-271d-45be-a38e-35c53660257e" TYPE="swap" 
/dev/sda3: UUID="1c50a7eb-b1df-4507-962c-e1e7a058c64e" TYPE="ext4" 
/dev/sda4: UUID="79f83f9f-9851-40ee-9b8e-aac91072a868" TYPE="ext4" 
/dev/sda5: UUID="9771a39e-6215-465a-b715-184d5030ee40" TYPE="swap" 
/dev/sda6: UUID="b45dea21-d221-4335-bead-be450279dd8d" TYPE="ext4" 
/dev/sdb1: UUID="b45dea21-d221-4335-bead-be450279dd8d" TYPE="ext4" 
/dev/sdb2: UUID="1c50a7eb-b1df-4507-962c-e1e7a058c64e" TYPE="ext4" 
/dev/sdb3: UUID="c7edfd04-1a76-4461-b52d-a3e665b01763" TYPE="swap" 
/dev/sdb4: UUID="79f83f9f-9851-40ee-9b8e-aac91072a868" TYPE="ext4" 

On peut les changer via la commande

sudo tune2fs /dev/sdb1 -U random

On peut aussi générer un uuid via la commande uuidgen

Pour installer grub, nous allons monter le nouveau disque puis faire un chroot dedans afin d’y installer grub proprement
Dans mon cas, le /usr se trouvait sur une autre partition. Ne pas oublier de le monter.

sudo mkdir /mnt/disk
sudo mount /dev/sdb1 /mnt/disk/
sudo mount --bind /dev/ /mnt/disk/dev/
sudo mount -t proc none /mnt/disk/proc
sudo mount /dev/sdb2 /mnt/disk/usr/
sudo chroot /mnt/disk/ /bin/bash

grub-install /dev/sdb

clé usb

Commencons par faire une copie de la clé avec dd

repérez la clé usb avec lsblk

$ lsblk 
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 111,8G  0 disk  
├─sda1           8:1    0   512M  0 part  /boot/efi
├─sda2           8:2    0 109,4G  0 part  /
└─sda3           8:3    0   1,9G  0 part  
  └─cryptswap1 252:0    0   1,9G  0 crypt [SWAP]
sdb              8:16   1   7,5G  0 disk  

ici /dev/sdb

dd if=/dev/sdb of=/tmp/usb.img

ensuite on monte l’image comme si c’était un périphérique

losetup --find --show /tmp/usb.img
/dev/loop0

Notre image sera attaché au périphérique /dev/loop0

Lancez testdisk

testdisk /dev/loop0

Essayez le type Intel et si il ne trouve pas de partition, essayer le 2eme, GPT …

Si il trouve une partition, utilisez l’option write partition

testdisk va vous dire de redémarrer, pas la peine, faite juste les commandes

losetup -d /dev/loop0
losetup --find --show /tmp/usb.img

retournez dans testdisk,

Avec un peu de peau, vos fichiers sont récupérés