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é…
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
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 ;)
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 :
-R, –rescue
: continue même si il y a des erreurs de lectures-C, –no-check
: ne vérifie pas la taille du disque et l’espace libre-I, –ignore_fschk
: ignore la vérification du sytèmes de fichier–ignore_crc
: ignore les erreurs de vérifications crc-F, –force
: continue la progression quoi qu’il arrive.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.
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
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.
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/
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…
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
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