====== 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 [[linux:dd_image_disque|dd et nous en parlons déjà ici]] Un autre est [[http://www.cgsecurity.org/wiki/TestDisk_FR|TestDisk]] et [[http://www.cgsecurity.org/wiki/PhotoRec_FR|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 ===== [[http://www.sysresccd.org/Page_Principale|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. [[http://clonezilla.org/|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 [[http://tuxboot.org/|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 : * ''-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. ===== 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, * resélectionnez la partition * appuyez sur P pour lister les fichiers * appuyez sur a pour tout sélectionnez * appuyez sur C pour tout copiez * indiquez ou copier les fichiers * puis appuyez sur C pour lancer la copie Avec un peu de peau, vos fichiers sont récupérés