GNU/Linux >> Tutoriels Linux >  >> Linux

Comment cloner des disques avec la commande Linux dd

Dans ce didacticiel, nous ferons référence à un exemple pratique de la commande Linux dd qui peut être utilisée par les administrateurs système pour migrer ou cloner un système d'exploitation Windows ou un système d'exploitation Linux à partir d'un disque dur plus grand partitionné en style MBR ou GPT vers un SSD plus petit. Dans cet extrait, nous utiliserons comme exemple un système Windows installé sur un disque dur avec plusieurs partitions. Cette méthode peut devenir assez compliquée si le disque dur est partitionné selon le schéma MBR et contient une partition étendue avec plusieurs partitions logiques ou si les partitions sont hors service. Je vous suggère de ne pas utiliser cette méthode si c'est le cas. Dans de tels cas, il est plus sûr d'utiliser ddrescure qui peut cloner l'intégralité de la disposition de votre disque (table de partition et blocs utilisés à l'intérieur de chaque partition) sans réellement transférer l'espace vide. DDrescure peut être obtenu en installant le package gddrescue à partir des référentiels principaux d'Ubuntu.

ETAPE 1 - Réduire la partition

Vous pouvez redimensionner une partition Linux ou Windows (réduire) à une taille minimale à l'aide d'une distribution Linux en direct telle que Gparted ou exécuter l'utilitaire d'interface graphique gparted à partir de l'image ISO Ubuntu Desktop Live. Les autres distributions Linux payantes que vous pouvez utiliser pour manipuler les tailles de système de fichiers de partition de disque (ext2, ext4, NTFS, xfs) sont Partition Wizard ou Parted Magic . Vous pouvez également utiliser l'utilitaire Microsoft Windows diskmgmt.msc pour réduire une partition NTFS. En réduisant l'espace libre d'une partition, le temps nécessaire à dd pour copier les blocs de disque non utilisés, dans le cas de partitions énormes, sera considérablement réduit. Dans le cas d'une grande partition avec seulement un petit pourcentage d'espace utilisé, il est conseillé de réduire le système de fichiers car l'utilitaire dd copiera également l'espace inutilisé dans le processus (dd copiera également tous les blocs libres d'une partition de 100 Go ou 1 To qui a moins de 10 % de l'espace utilisé).

ÉTAPE 2 - Cloner des disques

Une fois la partition redimensionnée au minimum, branchez physiquement le deuxième disque ou SSD dans le contrôleur SATA/SCSI etc. de la machine et démarrez la machine avec une distribution Live Linux. Une fois la distribution Linux en direct chargée dans la RAM, ouvrez une console Linux et exécutez fdisk -l /dev/sda (en supposant que /dev/sda est votre disque d'installation Windows ou votre lecteur C:dans l'environnement Windows) et notez le dernier " Fin" secteur (44898303 comme indiqué dans l'exemple ci-dessous):

- Exemple 1 - Cloner le disque MBR (système d'exploitation Windows installé sur la deuxième partition)

Dans cet extrait, les disques sont inversés, donc /dev/sdb représente l'installation de Windows sur le disque et /dev/sda représente le SSD vide.

Exécutez ensuite la commande suivante avec les privilèges root afin de cloner le disque d'installation de Windows du disque dur (/dev/sdb) vers le SSD (/dev/sda). L'utilitaire pv n'est pas installé par défaut dans Ubuntu. Vous pouvez l'installer en exécutant :

sudo apt install pv

Lancez ensuite le processus de clonage en lançant la commande ci-dessous :

sudo dd if=/dev/sdb bs=512 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sda

ATTENTION :le disque cible doit avoir au moins la taille de l'espace total occupé par toutes les partitions jusqu'à la partition Windows à partir du disque source, y compris la partition Windows.

Expliquer la commande utilisée dans l'exemple ci-dessus :

dd - dd signifie "Copier et Convertir". Certains pourraient dire que cela signifie 'Data Destroyer' (au cas où vous tromperiez la commande, des dommages sérieux pourraient survenir) ou Data Duplicate ou Data Description. Utilisez la description qui correspond à vos besoins !

if - le disque source (fichier d'entrée/d'entrée)

bs - Valeur de taille de secteur à partir de la sortie fdisk (taille de bloc ou nombre d'octets à lire/écrire une fois)

count - Dernier secteur "End" de la sortie fdisk incrémenté d'un entier (+1) - Combien de blocs de taille 512 doivent copier avant qu'il ne s'arrête. Ici, il devrait transférer 44099584 secteurs de 512 octets.

conv=sync,noerror - synchronise les E/S et ne s'arrête pas si vous rencontrez des erreurs de blocage sur le disque source

| - Pipe Linux (canal de communication interprocessus sous Linux ou FIFO)

pv -s 21 Go - surveiller la progression du clonage - Environ 21 Go doivent être transférés via le canal

of - le disque cible sur lequel les données redirigées sont réellement écrites (fichier de sortie/sortie)

Si vous souhaitez utiliser une taille de bloc plus grande que la taille de bloc de disque standard (512), disons jusqu'à quatre fois la taille de la taille de bloc standard (2048), pour accélérer les choses, vous pouvez faire quelques calculs simples et multiplier par quatre la taille de bloc standard du disque (512x4) puis divisez par quatre le nombre total de blocs +1 de la dernière partition.

Exemple :

Dans cet exemple la "Fin" de sda2 :44898303+1 divisé par 4. dd fonctionnera avec une taille de bloc de 2048 octets.

sudo dd if=/dev/sda bs=2048 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sdb

Une fois le processus terminé (selon la taille et la vitesse de votre disque, cela peut prendre dix minutes, voire des heures), vérifiez le disque cible à l'aide de la même commande sfdisk et comparez les sorties des deux disques. Les résultats devraient être similaires.

- Exemple 2 - Cloner le disque GPT (système d'exploitation Windows installé sur la quatrième partition)

Dans cet extrait, dd fonctionnera avec une taille de bloc jusqu'à huit fois la taille de la taille de bloc standard (4096) afin de transférer plus de blocs à la fois. Le système d'exploitation Windows réside dans la quatrième partition du disque dur. Toutes les partitions Windows précédentes doivent également être clonées. Le disque sera entièrement copié jusqu'au dernier secteur 19855359, qui représente la fin de la limite de partition Windows. Les données qui suivent le secteur 19855359+1 représentent la partition D:dans Windows, donc cette partition ne nous intéresse pas puisque nous ne voudrons cloner que la partition du système d'exploitation.

Multipliez par huit la taille de bloc standard du disque (512x8) puis divisez le nombre total de blocs +1 de la dernière partition par huit comme illustré dans l'image ci-dessous. La "Fin" de sda4 qui représente la partition Windows est 19855359+1 divisé par 8. dd fonctionne avec une taille de bloc de 4096 octets.

sudo dd if=/dev/sda bs=4096 count=2481920 conv=sync,noerror | pv -s 9G |sudo dd of=/dev/sdb

Dans cet exemple, comme nous ne copions que le système d'exploitation Windows et non l'intégralité des données du disque qui suivent la quatrième partition, nous devons supprimer la dernière partition. Nous pouvons le supprimer en exécutant l'utilitaire de ligne de commande cgdisk directement depuis la console, comme illustré sur les captures d'écran suivantes

Vérifiez les différences de table de partition sur les deux disques en exécutant la commande fdisk. La table de partition devrait être similaire, à l'exception de la 5ème partition de /dev/sda qui doit être supprimée du disque cloné (/dev/sdb ).

ÉTAPE TROIS - Tester le disque cloné

Enfin, éteignez la machine, débranchez l'ancien disque dur et allumez l'ordinateur avec le nouveau disque cloné uniquement. Il devrait démarrer dans votre système d'exploitation en un rien de temps. Si la machine refuse de démarrer, vérifiez physiquement les connecteurs SATA sur la carte mère et essayez de les inverser ou accédez aux paramètres BIOS/UEFI et assurez-vous que le disque approprié est activé dans la séquence de démarrage.

Essayez de ne pas démarrer la machine avec les deux disques branchés car cela pourrait confondre le chargeur de démarrage, rendant votre machine impossible à démarrer le système d'exploitation. Une fois que vous avez la confirmation que votre système d'exploitation démarre normalement, utilisez le même outil que pour réduire le système de fichiers pour étendre la partition clonée en ajoutant l'espace non alloué.

En utilisant cette méthode dd, vous pouvez transférer n'importe quelle variante de système d'exploitation Windows ou Linux avec tous vos paramètres personnalisés, programmes installés et fichiers d'un disque dur plus grand vers un SSD plus petit, sans avoir à installer le système d'exploitation à partir de zéro et passer des tonnes d'heures à le personnaliser. .


Linux
  1. Comment partitionner un disque sous Linux

  2. Comment sauvegarder ou cloner des partitions Linux à l'aide de la commande 'cat'

  3. Gérer les disques avec DiskPart

  4. Comment configurer le système de fichiers ZFS sous Linux avec des exemples de commande zpool

  5. Comment cloner une partition de disque Linux sur le réseau à l'aide de dd

Comment configurer le réseau IP avec la commande nmcli sous Linux

Comment créer et gérer des partitions de disque avec Fdisk sous Linux

Comment cloner et restaurer une partition Linux à l'aide de la commande dd

Comment lister les disques sous Linux

Comment chiffrer une partition sous Linux

Comment créer des partitions de disque sous Linux