La plupart des informations ont été décrites dans les recettes précédemment insérées, mais pas toutes.
Sous Linux, vous pouvez cloner un disque dur ou une partition avec la commande dd. Attention, si vous faites une erreur, vous perdrez toutes vos données.
Tout d'abord, la destination ne doit pas être utilisée, deuxièmement la source ne doit pas être utilisée, ou remontée en mode lecture seule. Sinon, la copie sera endommagée. Si le remontage est impossible, veuillez créer un lecteur bootable (HDD/SSD/clé USB) avec n'importe quelle distribution live Linux. Je préfère Knoppix, mais c'est à vous de choisir. Si possible, vous pouvez démarrer ou changer le niveau système en 1, pour le mode utilisateur unique, ou vous pouvez redémarrer directement en mode utilisateur unique, cela dépend de la distribution. Si vous ne clonez qu'une seule partition, cette partition doit être démontée ou remontée en lecture seule :
umount /point_de_montage_ou_dispositif
ou
remount -o,ro /point_de_montage_ou_dispositif
Si vous voulez cloner un disque dur entier, vous devez démonter ou remonter toutes les partitions.
Vous devez identifier le dispositif source et de destination. Veuillez regarder le dmesg, toutes les informations nécessaires sur le dispositif y sont stockées, avec le fabricant, etc. Alternativement, l'identification peut être basée sur la taille du dispositif, si elle est différente. Ensuite, la destination doit être la même taille ou plus grande que la source. Vous devez calculer la source, par exemple : fdisk -l /dev/sda à l'exception de la géométrie de la partition (il peut y avoir un GPT), vous trouverez :
par exemple :
# fdisk -l /dev/sda
Disque /dev/sda : 21.5 Go, 21474836480 octets
255 têtes, 63 secteurs/piste, 2610 cylindres, total 41943040 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique/physique) : 512 octets / 512 octets
taille d'E/S (minimale/optimale) : 512 octets / 512 octets
Identifiant du disque : 0x000f1d1e
Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 * 2048 40136703 20067328 83 Linux
/dev/sda2 40138750 41940991 901121 5 Étendue
/dev/sda5 40138752 41940991 901120 82 partition de swap Linux / Solaris
ensuite, essayons avec un diviseur supérieur à 512, nous avons 41943040 secteurs physiques :
41943040 / 256 = 163840, très bon, nous pouvons copier en blocs de 256 secteurs. Pouvons-nous en faire plus ? Essayons :
41943040 / 1024 = 40960, je pense que c'est suffisant, nous sélectionnerons celui-ci. Calculons la taille du groupe de secteurs :
512 (taille de secteur) * 1024 = 524288 octets soit 512K. Ensuite, nous pouvons utiliser le paramètre bs=512K ou moins, mais divisez cela par 2^x. Pour les disques durs modernes avec une grande mémoire cache interne, c'est suffisamment pratique. Pour les anciens disques avec une mémoire cache beaucoup plus petite, une valeur de 32K ou moins est suffisante.
Ensuite, après la préparation, nous pouvons faire une copie : dd if=/dev/dispositif_source of=/dev/dispositif_destination bs=32K et la copie sera faite. Faites attention, la moindre erreur écrasera vos données importantes. Sur la destination, tout sera écrasé.
Si vous essayez de récupérer des données sur un disque source endommagé, il vaut mieux utiliser la taille de secteur native, qui est généralement de 512 octets, et ajouter l'option conv=notrunc. Sinon, les lacunes dans la source causées par les secteurs défectueux seront réassemblées par un décalage de secteur sur la destination. Cela endommagera la copie avec peu de chances de réparation. Dans ce cas, la commande sera :
dd if=/dev/source of=/dev/destination bs=512 conv=notrunc
, et attendez longtemps que le lecteur et le système abandonnent et passent secteur par secteur jusqu'à la fin.
dd est un outil utile pour déplacer une partition vers un nouvel emplacement. Créez simplement une partition, faites un dd vers la nouvelle partition (qui peut être plus grande, beaucoup plus grande), et si possible, étendez le système de fichiers copié pour remplir toute la nouvelle partition, ext3/ext4/xfs/zfs/btrfs ont cette fonctionnalité. Enfin, vous devez modifier /etc/fstab, puis démontez/remontez si possible, ou redémarrez le système.
Vous pouvez bien sûr cloner n'importe quel type de partition. La commande dd ne tient pas compte du type de système de fichiers, elle ne fait rien avec sa structure. Cette commande peut donc être utilisée pour cloner des partitions NTFS ou d'autres types de partition.
Il y a un petit truc. Si vous ne définissez pas de paramètres, alors dd mettra la sortie dans sa sortie standard. Vous pouvez donc faire une copie brute compressée du disque ou de la partition, par exemple :
dd if=/dev/sda bs=512 | gzip >/emplacement/quelconque/ordinateurUn_sda.gz
Bien sûr, cela doit être fait hors ligne. Vous pouvez restaurer cela en :
zcat /emplacement/quelconque/ordinateurUn_sda.gz | dd of=/dev/sda bs=512
, puis tout le disque dur sda sera écrasé par cette sauvegarde, et toutes les données actuelles seront perdues. Vous pouvez également faire la même chose avec une partition Windows NTFS et le disque dur utilisé par celle-ci. Bien sûr, vous pouvez utiliser une autre commande de compression, selon votre préférence.
0 votes
Je suis conscient de la façon dont dd fonctionne, ma question était plutôt dirigée vers d'éventuels problèmes connus liés à dd lors du clonage de disques (comme décrit par le lien), peut-être que cela n'était pas très clair. Ce que sa réponse contient et la vôtre ne contient pas, c'est "Je n'ai jamais eu de problème avec ça". J'ai également voté pour votre réponse, car vous avez définitivement présenté des points intéressants (j'aime celui sur l'absence d'indication de progression).
1 votes
Il semblerait que vous ayez obtenu le Spolsky Bump : joelonsoftware.com/items/2009/05/29.html
0 votes
N'avais pas vu cela ici lorsque j'ai posé (et répondu) une question similaire sur superutilisateur - superutilisateur.com/questions/11453/…
8 votes
Il est ironique que Joel ait lié la question comme un bon exemple de panne de serveur, bien que aucune des réponses n'était bonne. Il n'y avait pas une seule réponse parmi les 25 (hors commentaires) avec les bonnes options
dd
pour sauter les blocs défectueux - ce qui est essentiel lors de la clonage de disques pour la récupération. J'ai ajouté une meilleure réponse, qui peut cloner des disques ayant des blocs défectueux:dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror
0 votes
Je pense que la restauration dd pourrait "échouer" si on parle de systèmes de fichiers dépendants de la géométrie du disque et que la restauration est effectuée sur des disques durs non identiques? J'ai rencontré quelques échecs lors de la restauration dd, et je pense que c'était le problème dans mon cas.
1 votes
Cette méthode permettra également de sauvegarder la partie non allouée d'un disque, le cas échéant. Si vous n'en avez pas besoin, vous pouvez lui indiquer où s'arrêter (
count
paramètre pourdd
, ou faire passer les données à travershead -c ...
pour tout autre chose; mais je ne suis pas sûr de comment trouver le nombre exact d'octets pour le moment, ou du moins une bonne borne supérieure)1 votes
Aussi notez que la plupart du temps, le programme
dd
est inutile. Vous pouvez utiliserhead
oucat
pour lire à partir d'un périphérique de bloc, et écrire dans un fichier régulier en utilisant une redirection. Et vous pouvez écrire dans un périphérique de bloc avectee
. Alors vous n'aurez pas à deviner une bonne taille de bloc, et cela va probablement être plus rapide aussi. Et si le disque source est en mauvais état, alorsdd
n'est pas vraiment une bonne option non plus, utilisezddrescue
pour sauver les données des disques endommagés à la place.0 votes
Veuillez également consulter cette question : superuser.com/q/1050894/910769 Deux autres ressources à prendre en compte : tecmint.com/clone-linux-partitions et cyberciti.biz/faq/unix-linux-dd-create-make-disk-image-commands