From f43659019d2bdd7c0f5472a5b255bfe6bb09d3ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sat, 16 May 2026 19:13:01 +0200 Subject: [PATCH] draft: dd --- .../draft_overlay.json | 4 + .../draft_overlay.md | 84 +++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.json create mode 100644 72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.md diff --git a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.json b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.json new file mode 100644 index 0000000..d583b97 --- /dev/null +++ b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.json @@ -0,0 +1,4 @@ +{ + "title": "dd", + "_updated_at": "2026-05-16 17:13:01" +} diff --git a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.md b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.md new file mode 100644 index 0000000..955bc74 --- /dev/null +++ b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.md @@ -0,0 +1,84 @@ +# dd + +`dd` permet de **copier** et **convertir** des données au niveau bloc, sans passer par la sémantique d'un système de fichiers. + +Le nom officiel signifie **Dataset Definition** (héritage d'IBM/JCL), mais sa réputation lui a valu les surnoms ironiques de **Data Destroyer** ou **Disk Destroyer** : une faute de frappe sur `of=` peut écraser un disque entier sans confirmation. + +`dd` permet de manipuler des zones qui n'appartiennent pas à un système de fichiers : **secteur d'amorçage** (MBR), **tables de partition**, **espace libre contenant des traces de fichiers effacés**, etc. L'un de ses usages principaux est donc la création d'une copie exacte (bit à bit) d'une partition ou d'un disque. + +> Astuce : pour les copies longues sur supports défectueux, préférez [`ddrescue`](https://www.gnu.org/software/ddrescue/), qui reprend la copie après une erreur de lecture au lieu d'abandonner. + +## Exemples d'utilisation + +### Créer une clé USB bootable +Pour écrire une image ISO sur une clé USB. + +On considère : +- `/dev/sdX` : la clé USB **non montée** +- `debian.iso` : l'image ISO présente dans le dossier courant + +``` +# dd if=debian.iso of=/dev/sdX bs=1M; sync +``` + +### Réaliser une image d'un DVD +Créer une image ISO de sauvegarde d'un CD ou d'un DVD : + +On considère : +- `/dev/cdrom` : le chemin d'accès au lecteur +- `debian.iso` : le nom de l'image générée + +``` +$ dd if=/dev/cdrom of=debian.iso +``` + +### Découper un fichier +Pour découper un fichier en tranches de 100 Mio (avec `dd`, `K` = 1024 octets, donc `bs=10K count=10K` = 100 Mio par tranche). + +On considère : +- `grosfichier` : le fichier à découper +- `grosfichier-partN` : les fragments successifs + +``` +$ dd bs=10K count=10K if=grosfichier of=grosfichier-part1 +$ dd bs=10K count=10K skip=10K if=grosfichier of=grosfichier-part2 +$ dd bs=10K count=10K skip=20K if=grosfichier of=grosfichier-part3 +$ dd bs=10K count=10K skip=30K if=grosfichier of=grosfichier-part4 +``` + +> En pratique, la commande `split` est mieux adaptée à ce cas d'usage. + +### Copier la table MBR +Pour sauvegarder le MBR (et la table des partitions primaires) d'un disque. + +On considère : +- `/dev/sda` : le disque source +- `full-mbr.bin` : le fichier de sauvegarde + +``` +$ dd if=/dev/sda of=full-mbr.bin bs=512 count=1 +``` + +### Effacer un disque avec des zéros +Pour écraser toutes les données d'un disque en le remplissant de zéros : + +``` +$ dd if=/dev/zero of=/dev/sda +``` + +> Pour un effacement sécurisé, préférez `shred` (plusieurs passes avec données aléatoires) ou `blkdiscard` sur SSD. + +### Tester le débit d'un disque +`dd` permet une mesure rapide des performances séquentielles en écriture. + +Pour isoler la performance d'écriture, on utilise `/dev/zero` comme source. Écrire directement sur le périphérique (`of=/dev/sda`) donnerait la mesure la plus pure, mais détruirait son contenu : on passe donc par un fichier (`of=/media/disk_6/testfile`), ce qui inclut le coût du système de fichiers — c'est-à-dire les conditions réelles d'utilisation. + +L'option `oflag=direct` contourne le cache du noyau pour mesurer le disque, pas la RAM. Notez qu'avec `bs=1G`, `dd` alloue 1 Gio en mémoire ; réduisez la valeur (ex. `bs=512M`) si la RAM disponible est limitée. + +```bash +$ dd if=/dev/zero of=/media/disk_6/testfile bs=1G count=1 oflag=direct +``` + +## Bibliographie +- +- \ No newline at end of file