Comment manipuler une copie faite avec la commande "dd"?

Bonjour,
Je viens de réinstaller un système propre, il marche nickel. C’est le moment de « dd » la partition système. « dd »: copie bit à bit. Est-ce à comprendre qu’une copie faite avec dd est une copie au bit près de la partition initiale ? Une copie effectuée avec « cp » ne copie donc pas au bit près, parfois la commande se plante sur un bit mais c’est pas grave ?
Admettons que j’obtienne mon clône de partition système avec « dd », est ce que je vais altérer des bits de donnée si je le copie avec « cp » sur un autre support ? Est-ce qu’on doit forcément « dder » un clône « ddé » pour conserver tous les bits de donné ?
C’est pas urgent et un peu un prétexte pour bavarder mais la question me taraude tout de même, je souhaite backuper mon système de façon fiable.
Au plaisir de vous lire
Petit chat
Post scriptum: j’ai en route une correction pour le tuto wireguard et je compte faire une maj du tuto icecast avec fois la prise en charge du FLAC (format libre, sans perte et plus fréquent que le mp3)

bonjour,
cp copie des fichiers. Il ne s’occupe pas des secteurs etc…
dd c’est du raw copy, de la copie brute.
Si tu as fait un dd vers un fichiers iso, la copie cp du fichier iso ne change pas le contenu.
Tu fais une confusion entre le mode fonctionnelle des deux commandes.

Bonjour,

Légende urbaine. dd est un simple outil de copie de fichiers, cf. man dd :

Copy a file, converting and formatting according to the operands.

Sur Linux tout est fichier, tu peux donc faire une copie exacte d’une partition (ou m^me d’un disque entier) qui n’est pas en cours d’utilisation avec par exemple :

dd if=/dev/sdc1 of=mon_image.iso

et tu obtiendras la même chose avec un autre outil de copie de fichiers, exemple avec cat ou cp :

cat /dev/sdc1 > mon_image.iso
cp /dev/sdc1 mon_image.iso

Cela fonctionne aussi dans l’autre sens et tous ces outils sont bien sûr interchangeables.

Ça m’écorche un peu (même beaucoup) les yeux de lire ça, d’autant plus que /dev/sdc1 n’est justement pas un fichier mais un device, donc un cas très particulier.
Il ne me serait jamais venu à l’idée de faire un cat ou cp d’un device, et n’en vois même pas l’intérêt, si ce n’est pour expérimenter, mais vraiment rien de plus.
L’énorme différence est que cat/cp prend en considération les attributs/propriétés d’un fichier/répertoire relatifs à la FAT, alors que dd se moque royalement de ce genre de concept.

Oui.

Si, mais elle ne copie pas forcément la même chose selon comment on l’emploie, pour copier un périphérique contenant un système de fichiers (démonté de préférence) ou le contenu (arborescence) d’un système de fichiers (monté bien sûr).

Non.

Si on tronque la citation, effectivement cette affirmation peut heurter dans le cas général car chacune de ces commandes a ses options et particularités. Mais dans le cas précis évoqué ici (création et restauration d’une image de disque ou partition sans option particulière) elles sont effectivement interchangeables. D’ailleurs le manuel d’installation de Debian recommande d’utiliser cp pour écrire l’image ISO sur une clé USB.

Plus simple : pas besoin de s’embêter avec if=, of=, bs=… (l’opération est atrocement lente si on laisse la taille de bloc par défaut de 512 octets).

C’est faux. Les trois sont sont soumis aux permissions pour lire la source et écrire la destination.cp a des options pour préserver les attributs de la source mais ça ne concerne pas le cas d’utilisation évoqué ici. Quant à la FAT, ça n’existe que dans les systèmes de fichiers du même nom qui ne peuvent être utilisés comme partition système par Debian.

1 J'aime

sujet: clône de partition

On va faire plus clair et concis.
dd permet de cloner une partition, de faire du raw copy.

dd if=/dev/sdxy of=/dev/sdyz # + options taille cluster pour faciliter le transfert

L’écriture se fera dès le premier secteur de /dev/sdyz.

cat/cp ne saura pas faire ça, ne saura écrire que sur une partition montée, ou supposons qu’un aventurier explique qu’il a réussi je ne sais comment, je ne vois strictement aucun intérêt d’embrouiller un sujet « clonage » avec cp/cat.

Reste à clarifier si petitchat veut réellement ‹ cloner ›, ou juste ‹ copier › un système dans un fichier sur une autre partition.
C’est seulement le jour où le clone aura besoin d’être utilisé qu’il sera découvert si la solution était le bonne, … ou pas.
Bref, bonne expérimentation, car il n’y a que comme ça qu’on apprend.

Source de cette affirmation ? Il n’y a rein de tel dans la page de man de dd, ni dans la page info qui dit :

‘dd’ copies a file (from standard input to standard output, by default)
with a changeable I/O block size, while optionally performing
conversions on it.

D’ailleurs que veut dire « raw copy » ? Une copie à l’état brut (pur), exacte ? Ce qui sous-entendrait que les autres outils de copie comme cp ne feraient pas des copies exactes ?

Et

cp /dev/sdxy /dev/sdyz

fonctionnera exactement de la même manière.

Bien sûr que si. Essaie.

Bien sûr que non.

1 J'aime

Des ‹ sources › sur le clonage de partition avec cp ou cat, ça ne doit pas beaucoup exister effectivement, et pour cause…
Si l’essai de ‹ clonage › de partition a été fait avec cp ou cat, très bien; mais quel est l’intérêt ? Aucun puisque dd le fait parfaitement en copiant cluster par cluster, pour assurer la fiabilité de copie, cp pouvant être plus aléatoire sur un très gros fichier (saturation cpu).
Le fond du sujet n’est certainement pas ça, mais plutôt de clarifier l’objectif réel:

  • copie d’un système dans un fichier ?
  • clonage d’une partition (compressé ou non) ?
  • archivage (avec un outil dédié etc) ?

Bonne expérimentation…

C’est tout simplement faux.
Cette confusion vient peut-être d’une mauvaise compréhension du paramètre bs (nombre d’octets lu/copiés à la fois) de dd
Tu inventes une distinction entre des outils de copie qui n’existe pas. Et tu ne réponds pas aux questions que j’ai posées :wink:
Tu devrais faire une recherche sur « Useless use of dd ».

C’est pas comme si je n’avais jamais été confronté à des plantages lors de copie de gros fichiers sur un disque USB externe qui avait un câble un peu trop long. Rien ne vaut l’expérimentation.

dd provides, even more options and also very useful in dealing with large backups such as tape drives (How to Clone Linux Partitions Using ‘dd’ Command), whereas cat includes lesser option and it’s not necessarily a worthy dd replacement but still, remains an option wherever applicable.

Bon courage aux expérimentateurs de clonage de partition, et récupération du clone.
That’s all for me folks.

Tu as pensé a secouer le câble pendant la copie pour accélérer le transfert ?

1 J'aime

Non, j’ai utilisé dd, plus pragmatiquement, tout simplement.

Does the « bs » option in « dd » really improve the speed ?

Also, it was very clear that the CPU sys-time was inversely proportional to the bs value (but this sounds reasonable, as the lower the bs, the higher the number of sys-calls generated by dd).

Re: That’s all for me folks.

non cela soutend que dd peut copier des blocs sans se préoccuper de savoir s’il y a des fichiers ou non. RAW Copy c’est de la copie de secteur par exemple.mais après tout dépend de ses options.
C’est bien pour ça qu’on ne peut pas faire de clef bootable avec cp, mais faisable avec dd.

On peut parfaitement faire une clé (ou un disque) bootable avec cp ou cat

https://www.debian.org/releases/stable/amd64/ch04s03.en.html

1 J'aime

En français c’est mieux.
https://www.debian.org/releases/stable/amd64/ch04s03.fr.html

Le sujet:
Comment manipuler une copie faite avec la commande “dd” ?

Cette nouvelle obstination et avalanche à vouloir tenter de démontrer que ‹ dd › serait subitement devenu ‹ useless › et à oublier est ridicule, même si un ‹ blogueur › (?) le pense, sans avoir compris ce qu’était dd qui est une opération système très bas niveau.
Essayez de faire ceci avec cp ou cat pour mieux comprendre le sens de ‹ raw copy › qui visiblement n’est pas compris:

dd if=/dev/zero bs=1 seek=446 count=64 conv=notrunc of=dd_image_file
dd if=/dev/sda of=/home/mbr_sauvegarde bs=512 count=1

La référence au wiki Debian:
cp debian.iso /dev/sdX

… ou écrire un fichier, non pas sur une partition, mais sur un disque complet, sans partition, donc rien à voir avec le clonage d’une partition vers une autre partition qui est le sujet. Certes, ça peut marcher pour un petit fichier, ou pas, mais reste ambigü, sans aucun contrôle, selon de la taille du fichier ou de la partition.
Les commandes cat ou cp n’ont jamais été prévues et spécifiées pour cloner des disques ou des partitions, ce qui ne veut pas dire que ça ne marche pas, un peu par hasard ou pas, mais pourquoi vouloir jouer avec des opérations non spécifiées, sans aucune option de contrôle ?
Un peu la roulette russe.

Ce sujet est noyé de considérations qui ne concerne pas la question, alors que je reste convaincu que la première question pour petitchat serait de clarifier ce qu’il veut vraiment faire de ce ‹ clone › (bit à bit) ou ‹ copie › ou ‹ archive › (compresssée ou pas) de partition.
Cloner, copier, archiver est une chose.
Comprendre ce que va se passer lors du ‹ déclonage › en est une autre.
Bonne expérimentation (le plus important…).
――――――――――――――――――――――――――
ps: mon avis est que cloner une partition bit à bit remplie à 10%, sans compression ne sert à rien (jamais fait ça).
Bien que je ne clone pas (inutile à mon avis), de mémoire, partimage faisait un bon job:
partimage : Sauvegarde de partitions dans un fichier image compressé

1 J'aime

Merci pour vos réponses. Alors oui j’aime bien bavarder mais je n’imaginais pas ces désaccords sur ce sujet.

je souhaite backuper mon système de façon fiable.

Ce sujet est noyé de considérations qui ne concerne pas la question, alors que je reste convaincu que la première question pour petitchat serait de clarifier ce qu’il veut vraiment faire de ce ‹ clone › (bit à bit) ou ‹ copie › ou ‹ archive › (compresssée ou pas) de partition.

Sur le plan pratique je voudrais pouvoir faire une sauvegarde de la partition système, la stocker quelque part (donc besoin de pouvoir la copier) et le jour où le disque système de ma machine rend l’âme, je voudrais pouvoir prendre un nouveau disque, restaurer dessus le système sauvegardé.
J’avais cru comprendre que « dd » était une commande dédiée à la réplication de partition avec prise en charge des secteurs d’amorçage.
Sur le plan intellectuel, mieux comprendre les différences entre « dd », « cp » et « cat ». S’il existe des commandes différentes c’est qu’elles sont utiles dans des situations différentes même si leur champs d’action peut se chevaucher.
Miaou

Sans bonne maîtrise, dd est dangereux, et sans compression
Pour aller piano, installe partimage et partimage-doc (dans les dépôts) et regarde si ça te va.
»» Partimage - Screenshots

« Sans compression » ça veut dire que si je dd une partition de 30Go avec 4Go occupés et 26 Go d’espace libre, alors le fichier image fera la taille de la partition soit 30Go et non pas 4Go comme on pourrait croire ?