publish: dd

This commit is contained in:
Cédrix
2026-05-16 19:13:15 +02:00
parent 67e496e0dd
commit 375076b23f
5 changed files with 134 additions and 136 deletions
@@ -1,11 +0,0 @@
{
"title": "dd",
"_updated_at": "2026-05-16 17:13:11",
"slug": "dd",
"published": true,
"published_at": "2023-01-11 17:37",
"category": "Informatique",
"tags": [],
"seo_title": "",
"seo_description": ""
}
@@ -1,84 +0,0 @@
# 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
- <https://www.gnu.org/software/coreutils/dd>
- <https://fr.wikipedia.org/wiki/Dd_(Unix)>
+35 -37
View File
@@ -1,86 +1,84 @@
# dd
dd permet de **copier** et **convertir des fichiers de type block**
`dd` permet de **copier** et **convertir** des données au niveau bloc, sans passer par la sémantique d'un système de fichiers.
**dd** signifie **Data Destroyer** ou **Data Dump** ou **Dataset Definition**
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.
Il est possible d'utiliser la commande **ddrescue** qui reprend la copie en cas d'arrêt intempestif.
`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.
**dd** permet de reproduire des zones de disque qui ne font pas partie d'un système de fichier tels que le **secteur de démarrage** (le MBR), les **tables de partition**, les **traces laissées sur le disque par des fichiers effacés**, etc... L'un de ses emplois les plus importants est donc la création d'une copie de sauvegarde exacte d'une partition.
> 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.
Le programme `dd` lance deux tâches asynchrones, d'une part de lecture et d'autre part d'écriture, contrairement à `cp` qui copie un fichier de façon séquentielle (lecture d'une partie du fichier sur un premier périphérique, puis copie sur le second).
## Exemples d'utilisation
## - Exemples d'utilisation
### - Créer une clé USB bootable
Pour créer une clé USB bootable à partir d'une image ISO.
### Créer une clé USB bootable
Pour écrire une image ISO sur une clé USB.
On considère :
- `/dev/sdX` la clé non montée
- `debian.iso` est l'image ISO présent dans le dossier courant
- `/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éé une image ISO de sauvegarde d'un CD ou d'un DVD :
### 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 DVD
- `debian.iso` est le nom de l'image ISO
- `/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.
### 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 nom du fichier à découper
- `grosfichier-part1` le nom du 1er fichier de 100 Mio.
- `grosfichier-part2` le nom du 2nd fichier des 100 Mio suivant.
- `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 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
```
Remarque, la commande `split` aurait été plus appropriée.
> En pratique, la commande `split` est mieux adaptée à ce cas d'usage.
### - Copier la table MBR
Pour faire une copie du MBR (table des partitions principales comprises) d'un disque.
### Copier la table MBR
Pour sauvegarder le MBR (et la table des partitions primaires) d'un disque.
On considère :
- `/dev/hda` le disque dur contenant le MBR
- `full-mbr.bin` le nom du fichier contant le MBR sauvegardé
- `/dev/sda` : le disque source
- `full-mbr.bin` : le fichier de sauvegarde
```
$ dd if=/dev/hda of=full-mbr.bin bs=512 count=1
$ dd if=/dev/sda of=full-mbr.bin bs=512 count=1
```
### - Effacer un disque dur avec des zéros
Pour détruire les données d'un disque dur `hda` en le remplissant de zéros.
### 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/hda
$ dd if=/dev/zero of=/dev/sda
```
Remarque, la commande `shred` aurait été plus approprié.
> Pour un effacement sécurisé, préférez `shred` (plusieurs passes avec données aléatoires) ou `blkdiscard` sur SSD.
### - Tester le débit des disques dur avec dd
Sous Linux, la commande `dd` peut être utilisée pour une mesure de performance en lecture et écriture séquentielle.
### Tester le débit d'un disque
`dd` permet une mesure rapide des performances séquentielles en écriture.
Pour se concentrer sur l'écriture des données sur un disque, la source des informations sera une suite de zero disponible depuis le chemin `/dev/zero`. Si nous voulions mesurer la performance du disque, il aurait fallu écrire directement sur le chemin du disque (par exemple of=/dev/sda), mais cela effacerait le contenu du disque. En indiquant le chemin d'un fichier `of=/media/disk_6/test`, nous devons passer par le systèmes de gestion de fichiers, qui peut nous ralentir. Mais cela nenlèvera pas les conditions réelles que nous pouvons avoir avec un disque.
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.
En utilisant `if=/dev/zero et bs=1G`, Linux aura besoin de 1GB d'espace disponible dans la RAM. Si vous n'avez pas suffisamment d'espace disponible, pensez à réduire cette valeur, par exemple à 512MB.
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
```
## - Biblio
- <https:*www.gnu.org/software/coreutils/dd>
- <https:*fr.wikipedia.org/wiki/Dd_(Unix)>
## Bibliographie
- <https://www.gnu.org/software/coreutils/dd>
- <https://fr.wikipedia.org/wiki/Dd_(Unix)>
+13 -4
View File
@@ -4,15 +4,24 @@
"title": "dd",
"author": "cedric@abonnel.fr",
"published": true,
"published_at": "2023-01-11 17:37:35",
"featured": false,
"published_at": "2023-01-11 17:37",
"created_at": "2023-01-11 17:37:35",
"updated_at": "2023-01-11 17:37:35",
"revisions": [],
"updated_at": "2026-05-16 17:13:14",
"revisions": [
{
"n": 1,
"date": "2026-05-16 17:13:14",
"comment": "Contenu modifié",
"title": "dd"
}
],
"cover": "",
"files_meta": [],
"external_links": [],
"seo_title": "",
"seo_description": "",
"og_image": "",
"category": "Informatique"
"category": "Informatique",
"tags": []
}
@@ -0,0 +1,86 @@
# dd
dd permet de **copier** et **convertir des fichiers de type block**
**dd** signifie **Data Destroyer** ou **Data Dump** ou **Dataset Definition**
Il est possible d'utiliser la commande **ddrescue** qui reprend la copie en cas d'arrêt intempestif.
**dd** permet de reproduire des zones de disque qui ne font pas partie d'un système de fichier tels que le **secteur de démarrage** (le MBR), les **tables de partition**, les **traces laissées sur le disque par des fichiers effacés**, etc... L'un de ses emplois les plus importants est donc la création d'une copie de sauvegarde exacte d'une partition.
Le programme `dd` lance deux tâches asynchrones, d'une part de lecture et d'autre part d'écriture, contrairement à `cp` qui copie un fichier de façon séquentielle (lecture d'une partie du fichier sur un premier périphérique, puis copie sur le second).
## - Exemples d'utilisation
### - Créer une clé USB bootable
Pour créer une clé USB bootable à partir d'une image ISO.
On considère :
- `/dev/sdX` la clé non montée
- `debian.iso` est l'image ISO présent dans le dossier courant
```
# dd if=debian.iso of=/dev/sdX bs=1M; sync
```
### - Réaliser une image d'un DVD
Créé une image ISO de sauvegarde d'un CD ou d'un DVD :
On considère :
- `/dev/cdrom` le chemin d'accès au DVD
- `debian.iso` est le nom de l'image ISO
```
$ dd if=/dev/cdrom of=debian.iso
```
### - Découper un fichier
Pour découper un fichier en tranches de 100 Mio.
On considère :
- `grosfichier` le nom du fichier à découper
- `grosfichier-part1` le nom du 1er fichier de 100 Mio.
- `grosfichier-part2` le nom du 2nd fichier des 100 Mio suivant.
```
$ 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
```
Remarque, la commande `split` aurait été plus appropriée.
### - Copier la table MBR
Pour faire une copie du MBR (table des partitions principales comprises) d'un disque.
On considère :
- `/dev/hda` le disque dur contenant le MBR
- `full-mbr.bin` le nom du fichier contant le MBR sauvegardé
```
$ dd if=/dev/hda of=full-mbr.bin bs=512 count=1
```
### - Effacer un disque dur avec des zéros
Pour détruire les données d'un disque dur `hda` en le remplissant de zéros.
```
$ dd if=/dev/zero of=/dev/hda
```
Remarque, la commande `shred` aurait été plus approprié.
### - Tester le débit des disques dur avec dd
Sous Linux, la commande `dd` peut être utilisée pour une mesure de performance en lecture et écriture séquentielle.
Pour se concentrer sur l'écriture des données sur un disque, la source des informations sera une suite de zero disponible depuis le chemin `/dev/zero`. Si nous voulions mesurer la performance du disque, il aurait fallu écrire directement sur le chemin du disque (par exemple of=/dev/sda), mais cela effacerait le contenu du disque. En indiquant le chemin d'un fichier `of=/media/disk_6/test`, nous devons passer par le systèmes de gestion de fichiers, qui peut nous ralentir. Mais cela nenlèvera pas les conditions réelles que nous pouvons avoir avec un disque.
En utilisant `if=/dev/zero et bs=1G`, Linux aura besoin de 1GB d'espace disponible dans la RAM. Si vous n'avez pas suffisamment d'espace disponible, pensez à réduire cette valeur, par exemple à 512MB.
```bash
$ dd if=/dev/zero of=/media/disk_6/testfile bs=1G count=1 oflag=direct
```
## - Biblio
- <https:*www.gnu.org/software/coreutils/dd>
- <https:*fr.wikipedia.org/wiki/Dd_(Unix)>