diff --git a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.json b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.json deleted file mode 100644 index 252e230..0000000 --- a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.json +++ /dev/null @@ -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": "" -} diff --git a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.md b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.md deleted file mode 100644 index 955bc74..0000000 --- a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/draft_overlay.md +++ /dev/null @@ -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 -- -- \ No newline at end of file diff --git a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/index.md b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/index.md index e8857db..955bc74 100644 --- a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/index.md +++ b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/index.md @@ -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 n’enlè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 -- -- \ No newline at end of file +## Bibliographie +- +- \ No newline at end of file diff --git a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/meta.json b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/meta.json index a37a409..7a99132 100644 --- a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/meta.json +++ b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/meta.json @@ -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": [] } diff --git a/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/revisions/0001.md b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/revisions/0001.md new file mode 100644 index 0000000..e8857db --- /dev/null +++ b/72d39afd-c4cb-4f11-8b21-8a8f9a462e1c/revisions/0001.md @@ -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 n’enlè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 +- +- \ No newline at end of file