Sauvegarde et restauration d'images à l'aide de dd
Qu'est-ce que dd ?
La commande dd est un utilitaire de copie et de conversion de fichiers, couramment utilisé dans la plupart des systèmes d'exploitation de type Unix. Elle peut être utilisée pour des tâches telles que la création de sauvegardes de données, le clonage de disques, la création d'images de partitions, etc. Il convient toutefois d'être prudent lors de l'utilisation de dd, car une mauvaise utilisation peut entraîner une perte de données.
Voici la syntaxe de base de la commande dd :
dd if=fichier_d'entrée of=fichier_de_sortie [options]
Où :
- if (fichier d'entrée) spécifie le fichier d'entrée ou la source de données.
- of (fichier de sortie) indique le fichier de sortie ou la destination des données.
Voici quelques options et paramètres courants de dd :
1. bs (taille du bloc) : Détermine la taille du bloc de données. Par exemple, bs=4K fixe la taille du bloc à 4 kilo-octets.
2. count (nombre) : Spécifie le nombre de blocs à copier. Par exemple, count=100 copie 100 blocs de données.
3. iflag et oflag : Options permettant de contrôler les drapeaux d'entrée et de sortie. Par exemple, iflag=direct peut être utilisé pour lire des données directement, en contournant le cache du système d'exploitation.
4. seek et skip : Options permettant de déplacer le pointeur du fichier d'entrée ou de sortie pour commencer ou terminer la copie à partir d'une position spécifique.
5. état : Option permettant d'afficher des informations sur la progression de l'opération de copie.
6. conv (conversion) : Permet diverses conversions de données, telles que le changement de casse (conv=ucase ou conv=lcase), la suppression de caractères (conv=sync), etc.
7. iflag et oflag : Ces options vous permettent de configurer les drapeaux pour les données d'entrée (iflag) et de sortie (oflag). Par exemple, direct peut être utilisé pour lire ou écrire des données directement sans mise en mémoire tampon.
8. statut : Cette option permet d'afficher des informations sur la progression de l'opération de copie.
9. recherche et saut : Vous permettent de déplacer le pointeur du fichier d'entrée ou de sortie pour commencer la copie à partir d'une position spécifique.
Prenons des exemples d'utilisation de dd pour copier des fichiers et des répertoires vers le stockage en nuage distant fourni par Introserv à l'aide du protocole SSH et de la commande rsync. De plus, l'exemple démontrera la sauvegarde et la restauration d'une image système en utilisant un troisième disque. Remarque importante : des commandes similaires, avec la spécification d'un serveur cible, vous permettront de copier des répertoires et des fichiers sur n'importe quel serveur distant via SSH. En outre, pour assurer l'intégrité des données, nous utiliserons une image de "récupération" appelée Finnix.
Création d'une sauvegarde de l'image du système
1. création d'une sauvegarde :
Préparatifs :
1. Téléchargez Finnix sur votre ordinateur à partir de https://www.finnix.org.
2. Connectez l'image ISO via IP-KVM.
3. Démarrer le serveur à partir de l'image ISO Finnix.
2.Travailler avec Finnix
Nous allons explorer deux méthodes, dont l'une est possible en utilisant le Cloud Storage d'Introserv.
Pour monter un stockage de fichiers à distance (stockage dans le nuage) via SSH, nous recommandons d'utiliser un outil comme SSHFS (SSH File System), qui vous permet de connecter des répertoires distants sur votre ordinateur local en utilisant le protocole SSH. Voici comment procéder :
2.1. Installer SSHFS.
Comme il est déjà installé dans Finnix, nous ne ferons pas cette étape.
sudo apt-get install sshfs
2.2. Créez un répertoire local dans lequel vous souhaitez monter le dossier distant.
Par exemple :
sudo mkdir -p /root/mnt/backup

Cette commande crée la structure de répertoire nécessaire, y compris les répertoires parents manquants (drapeau -p).
2.3. Montez le répertoire distant via SSHFS :

sudo sshfs box17469@box17469.introserv.cloud:/backups ~/mnt/backup/
- boîte***** : Le nom d'utilisateur SSH sur le serveur distant.
- Box*****.introserv.cloud : L'adresse IP ou le nom d'hôte du serveur distant.
- /backups : Le chemin d'accès au répertoire sur le cloudstorage.
- ~/remote_mount : Le chemin vers le répertoire local que nous avons créé ci-dessus, où nous voulons monter notre dossier distant à partir du cloudstorage.
Le système demandera le mot de passe, que vous trouverez dans les détails de la commande dans la section Sauvegarde.
2.4. Vérifier notre dossier réseau.

2.5. Pour créer une sauvegarde de votre système, utilisez la commande suivante :

dd if=/dev/sda of=/root/mnt/backup/sda.ing bs=8M conv=sync,noerror
La méthode 2 est possible par l'intermédiaire d'un troisième disque ou d'une autre unité de stockage externe.
2.1 Déterminer le disque dur sur lequel est installé le système principal (dans ce cas, Ubuntu)
Dans ce cas, il s'agit de sda.

2.2 Montez également le dossier du disque externe afin de pouvoir y placer l'image de sauvegarde.
Pour monter le système de fichiers créé dans le répertoire /mnt/, exécutez les commandes suivantes :
sudo mount /dev/sdX /mnt/папка # remplacez sdX par le périphérique ou la partition spécifique (dans ce cas, nous avons sdb)


Pour créer une sauvegarde de votre disque dur, utilisez la commande suivante :
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror
- if=/dev/sda - copie l'intégralité du disque dur sda ;
- of=/mnt/backup/sda.img - copie vers /mnt/backup/sda.img, où le répertoire /mnt/backup est le point de montage du disque qui contiendra l'image ;
- bs=8M - définit la taille du cache du disque dur afin d'accélérer le processus de copie (sinon, les données seront transférées par petits lots de 512 octets) ;
- conv=sync,noerror - indique à dd de copier bit à bit en ignorant les erreurs.
Restauration d'une sauvegarde du système sur un autre serveur ou disque
1. Connexion de l'image de secours
- Connecter l'image ISO via IP-KVM.
- Redémarrez le serveur dans l'image ISO Finnix.
2. Travailler avec Finnix
Comme pour la sauvegarde, nous avons deux façons d'utiliser CloudStorage :
2.1. Créer un répertoire local où vous voulez monter le dossier distant. Par exemple, sudo mkdir -p /root

sudo mkdir -p /root/mnt/backup
2.2. Montez le répertoire distant via SSHFS :

sudo sshfs box17469@box17469.introserv.cloud:/backups ~/mnt/backup
Le système vous demandera un mot de passe, que vous trouverez dans les détails de la commande, dans la section Sauvegarde.
Vérifiez également si le dossier est monté.
ls -l /root/mnt/backup/
2.3. Trouvez l'image signée sda.img sur le lecteur réseau connecté.

Pour restaurer votre système à partir d'une sauvegarde, utilisez la commande suivante :
dd if=/root/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror
2.4. Après cela, nous redémarrons dans le BIOS
Définissez le disque sur lequel nous avons déployé le système comme étant la priorité de démarrage, redémarrez et essayez de démarrer le système.

En outre, nous allons envisager de déployer une image système à l'aide d'un troisième disque ou d'un autre type de stockage :
2.1. Перезеграужаемся в Finniх.
Montez le disque ou le stockage réseau contenant l'image à l'aide de la commande sudo mount /dev/external_network_disk_or_storage /mnt/folder_for_mounting.

Trouvez l'image signée sda.img

Pour restaurer votre système à partir d'une sauvegarde, utilisez la commande suivante :
dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror
Après cela, nous redémarrons dans le BIOS et définissons le disque sur lequel nous avons déployé le système comme étant la priorité de démarrage, nous redémarrons et essayons de démarrer le système.