1 line
4.0 KiB
JSON
1 line
4.0 KiB
JSON
{"uuid":"72d39afd-c4cb-4f11-8b21-8a8f9a462e1c","slug":"dd","title":"dd","author":"cedric@abonnel.fr","published":true,"published_at":"2023-01-11 17:37:35","created_at":"2023-01-11 17:37:35","updated_at":"2023-01-11 17:37:35","revisions":[],"cover":"","files_meta":[],"external_links":[],"seo_title":"","seo_description":"","og_image":"","category":"Informatique","content":"# dd\n\ndd permet de **copier** et **convertir des fichiers de type block**\n\n**dd** signifie **Data Destroyer** ou **Data Dump** ou **Dataset Definition**\n\nIl est possible d'utiliser la commande **ddrescue** qui reprend la copie en cas d'arrêt intempestif.\n\n**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.\n\nLe 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).\n\n## - Exemples d'utilisation\n### - Créer une clé USB bootable\nPour créer une clé USB bootable à partir d'une image ISO.\n\nOn considère :\n- `/dev/sdX` la clé non montée\n- `debian.iso` est l'image ISO présent dans le dossier courant\n\n```\n# dd if=debian.iso of=/dev/sdX bs=1M; sync\n```\n\n### - Réaliser une image d'un DVD\nCréé une image ISO de sauvegarde d'un CD ou d'un DVD :\n\nOn considère :\n- `/dev/cdrom` le chemin d'accès au DVD\n- `debian.iso` est le nom de l'image ISO\n\n```\n$ dd if=/dev/cdrom of=debian.iso\n```\n\n### - Découper un fichier\nPour découper un fichier en tranches de 100 Mio.\n\nOn considère :\n- `grosfichier` le nom du fichier à découper\n- `grosfichier-part1` le nom du 1er fichier de 100 Mio.\n- `grosfichier-part2` le nom du 2nd fichier des 100 Mio suivant.\n\n```\n$ dd bs=10K count=10K if=grosfichier of=grosfichier-part1\n$ dd bs=10K count=10K skip=10K if=grosfichier of=grosfichier-part2\n$ dd bs=10K count=10K skip=20K if=grosfichier of=grosfichier-part3\n$ dd bs=10K count=10K skip=30K if=grosfichier of=grosfichier-part4\n```\n\nRemarque, la commande `split` aurait été plus appropriée.\n\n### - Copier la table MBR\nPour faire une copie du MBR (table des partitions principales comprises) d'un disque.\n\nOn considère :\n- `/dev/hda` le disque dur contenant le MBR\n- `full-mbr.bin` le nom du fichier contant le MBR sauvegardé\n\n```\n$ dd if=/dev/hda of=full-mbr.bin bs=512 count=1\n```\n\n### - Effacer un disque dur avec des zéros\nPour détruire les données d'un disque dur `hda` en le remplissant de zéros.\n\n```\n$ dd if=/dev/zero of=/dev/hda\n```\n\nRemarque, la commande `shred` aurait été plus approprié.\n\n### - Tester le débit des disques dur avec dd\nSous Linux, la commande `dd` peut être utilisée pour une mesure de performance en lecture et écriture séquentielle.\n\nPour 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.\n\nEn 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.\n\n```bash\n$ dd if=/dev/zero of=/media/disk_6/testfile bs=1G count=1 oflag=direct\n```\n\n## - Biblio\n- <https:*www.gnu.org/software/coreutils/dd>\n- <https:*fr.wikipedia.org/wiki/Dd_(Unix)>","featured":false,"tags":[]} |