Outils pour utilisateurs

Outils du site


tech:notes_partition_mbr_dd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tech:notes_partition_mbr_dd [2025/03/24 15:06] – créée - modification externe 127.0.0.1tech:notes_partition_mbr_dd [2026/07/16 12:15] (Version actuelle) Jean-Baptiste
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon boot block MBR}}
 +
 +# La commande dd
 +
 +Source : https://wiki.debian-fr.xyz/La_commande_dd
 +
 +## Introduction
 +
 +Extrait de la page de man de dd :
 +
 +"dd copie un fichier (par défaut, depuis l'entrée standard vers la sortie standard) en permettant de sélectionner la taille de bloc, et d'effectuer des conversions."
 +
 +Utilisée fréquemment, la commande dd est très simple d'utilisation, très puissante et... tout aussi dangereuse. Vérifiez toujours bien les commandes deux (trois ?) fois avant de les lancer.
 +
 +LES COMMANDES QUI SUIVENT PEUVENT VOUS FAIRE PERDRE TOUTES LES INFORMATIONS CONTENUES DANS VOTRE MACHINE SI ELLES NE SONT PAS CONVENABLEMENT UTILISÉES. VOUS ÊTES PRÉVENUS!
 +
 +NOTE: Pour pouvoir être copiée, déplacée, agrandie ou réduite, la partition source doit au préalable être "démountée" du système (voir "umount").
 +
 +### Syntaxe
 +
 +La syntaxe d'une ligne de commandes utilisant dd se présente généralement sous cette forme:
 +~~~bash
 +dd if=<source> of=<cible> bs=<taille des blocs> skip= seek= conv=<conversion>
 +~~~
 +
 +Arguments :
 + 1. source = D'où proviennent les données à copier;
 + 2. cible = où seront copiées les données traitées par la commande;
 + 3. bs = taille des blocs, de puissance 2, par défaut égale à 512 octets;
 + 4. skip = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de la lecture;
 + 5. seek = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de l'écriture.
 + 6. conv = Modifier le fichier comme indiqué par l'argument conversion, qui peut prendre les valeurs suivantes (pas d'espace autour des virgules lorsque plusieurs arguments sont fournis) :
 +~~~
 +ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync.
 +~~~
 +
 +
 +### Utilisation
 +
 +Copier une partition d'un disque dur vers un partition d'un autre disque dur
 +
 +Copie l'intégralité de la partition sda9 vers la partition sdb1 et ne pas interrompre la copie en cas d'erreurs.
 +~~~bash
 +dd if=/dev/sda9 of=/dev/sdb1 bs=4096 conv=noerror
 +~~~
 +
 +`noerror` : Continuer même en cas d'erreur.
 +
 +Remarque au sujet de l'UUID.
 +
 +Copier une partition autre vers une partition copie aussi l'UUID puisqu'il est inscrit dans la partition même.\\ Vous vous retrouveriez alors avec deux partitions qui ont le même UUID...
 +
 +~~~
 +# blkid
 +...
 +/dev/sda9: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"
 +/dev/sdb1: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"
 +~~~
 +
 +Il faut alors modifier l'UUID de la partition copiée pour ne pas avoir de conflit si la partition originale et sa copie sont accessibles au système :
 +
 +~~~
 +# tune2fs -U random /dev/sdb1
 +# blkid
 +/dev/sda9: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"
 +/dev/sdb1: UUID="75aa7a37-d2a2-4cf4-88f8-616067c7a684" TYPE="ext2"
 +~~~
 +
 +### Cloner un disque dur en entier
 +
 +Copie de l'intégralité (y compris le mbr) du disque sdg vers le disque sdh:
 +
 +~~~bash
 +dd if=/dev/sdg of=/dev/sdh conv=noerror
 +~~~
 +
 +### Réaliser un fichier image ISO copie d'un CD-ROM
 +
 +~~~bash
 +dd if=/dev/sr0 of=/home/laurent/cd.iso bs=2048
 +~~~
 +
 +Pour monter le fichier image ISO obtenu :
 +
 +~~~bash
 +mkdir /mnt/cd
 +mount -o loop -t iso9660 cd.iso /mnt/cd
 +~~~
 +
 +Montage permanent par `/etc/fstab` :
 +~~~
 +/chemin_vers_iso/cd.iso   /mnt/cd  iso9660 rw,user,noauto 0 0
 +~~~
 +
 +### Effacer un lecteur
 +
 +** ATTENTION, COMMANDE DANGEREUSE! **
 +
 +Pour les paranos... La commande suivante remplie 7 fois de suite un périphérique avec des données aléatoires. Autant dire qu'il ne sera plus possible de récupérer quoi que ce soit sur ce périphérique...
 +
 +~~~bash
 +for n in $(seq 7);
 +do 
 +  dd if=/dev/urandom of=/dev/sdc bs=8b;
 +done
 +~~~
 +
 +
 +### Sauvegarder le chargeur de boot d'un disque dur
 +
 +~~~bash
 +dd if=/dev/sda of=ChrgBoot.dd bs=440 count=1
 +~~~
 +
 +Cette commande copiera les 440 premiers octets du disque dur dans un fichier.
 +
 +### Sauvegarder le MBR d'un disque dur
 +
 +~~~bash
 +dd if=/dev/sda of=MBR.dd bs=512 count=1
 +~~~
 +
 +Cette commande copiera les 512 premiers octets du disque dur dans un fichier.
 +
 +
 +### Sauvegarder la table des partitions d'un disque dur
 +
 +~~~bash
 +dd if=/dev/sda of=TablePart.dd bs=64 count=1 skip=446
 +~~~
 +
 +Cette commande copiera les 512 premiers octets du disque dur dans un fichier.
 +
 +pour restaurer la table de partition
 +
 +~~~bash
 +dd if=TablePart.dd of=/dev/sda bs=64 count=1 seek=446
 +~~~
 +
 +Cette commande copiera la table des partitions contenue dans le fichier TablePart.dd sur le disque /dev/sda
 +
 +
 +### Sauvegarder un disque dur ou une partition dans une image compressée
 +
 +La ligne de commandes suivante permet de créer un fichier compressé, qui pourra être utilisé pour restaurer la partition "n" ("n" est une valeur numérique) du disque "/dev/sdX" ("X" est une lettre alphabétique).
 +(peu importe le type de partition)
 +
 +~~~bash
 +#dd if=/dev/sdXn | gzip -c > /media/suportamovible/fichierimage_part_dd.gz
 +dd if=/dev/sdXn | pigz -c > /media/suportamovible/fichierimage_part_dd.gz
 +
 +# Avec taux de compression adapté automatiquement
 +sudo dd if=/dev/sda | pv | zstd --adapt > image.dd.zst
 +zstdcat image.dd.zst | pv | sudo dd of=/dev/sda )
 +~~~
 +
 +
 +
 +Dans cette ligne de commandes, le programme "dd" lit par blocs (de 512 octets par défaut) le contenu de la partition "n" du disque "X" (/dev/sdXn).
 +Le flux de sortie du programme "dd" est connecté par un tube anonyme (|) au flux d'entrée du programme "gzip".
 +"gzip" va compresser ce flux et le retourner par son flux de sortie (option "c") qui sera re-dirigé par ">" vers le fichier "/media/suportamovible/fichierimage_part_dd.gz".
 +Si le fichier "/media/suportamovible/fichierimage_part_dd.gz" existait avant l'exécution de cette ligne de commandes, il serait "écrasé".
 +
 +Pour restaurer la partition ainsi sauvegardée faire :
 +
 +~~~bash
 +#gzip -cd /media/suportamovible/fichierimage_part_dd.gz | dd of=/dev/sdXn
 +pigz -cd /media/suportamovible/fichierimage_part_dd.gz | dd of=/dev/sdXn
 +~~~
 +
 +Dans cette commande, le programme "gzip" dé-compresse (option "d") le fichier "/media/suportamovible/fichierimage_part_dd.gz".
 +Le flux de sortie du programme "gzip" (option "c") est connecté à un tube anonyme (|) qui est connecté à l'entrée du programme "dd".
 +La sortie (of=) du programme "dd" se fera sur la partition "n" du disque "X" (/dev/sdXn),
 +et le contenu de cette partition sera écrasé et remplacé par le contenu du fichier sauvegardé par la ligne de commandes précédente. 
 +
 +
 +## Autres
 +
 +~~~bash
 +zip -r - . | dd of=/dev/nrst0 obs=16k
 +~~~
 +
 +
 +## Autres commandes
 +
 +### Clean up partition table and MBR
 +
 +~~~bash
 +sgdisk --zap-all -- /dev/sdX
 +~~~
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki