start:parcours_linux:dd
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
start:parcours_linux:dd [2020/05/26 14:49] – gerardadmin | start:parcours_linux:dd [2024/11/20 20:41] (Version actuelle) – [Exemple : Cloner un disque A sur le B] gerardadmin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ======== La commande dd ======== | ||
+ | |||
+ | Liens web sur la commande dd : | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Pour pouvoir copier ou modifier une partition, elle ne doit pas être en cours d' | ||
+ | |||
+ | Imaginez que vous cherchiez à copier un livre que l' | ||
+ | |||
+ | |||
+ | |||
+ | == Introduction: | ||
+ | |||
+ | Extrait de la page de man de dd : | ||
+ | |||
+ | "dd copie un fichier (par défaut, depuis l' | ||
+ | |||
+ | Utilisée fréquemment, | ||
+ | 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! | ||
+ | |||
+ | ''' | ||
+ | |||
+ | == Syntaxe == | ||
+ | |||
+ | La syntaxe d'une ligne de commandes utilisant dd se présente généralement sous cette forme: | ||
+ | |||
+ | dd if=< | ||
+ | |||
+ | #source = D'où proviennent les données à copier; | ||
+ | #cible = où seront copiées les données traitées par la commande; | ||
+ | #bs = taille des blocs, de puissance 2, par défaut égale à 512 octets; | ||
+ | #skip = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de la lecture; | ||
+ | #seek = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de l' | ||
+ | #conv = Modifier le fichier comme indiqué par l' | ||
+ | |||
+ | | ||
+ | |||
+ | ===== Exemple : Cloner un disque A sur le B ===== | ||
+ | |||
+ | Imaginons, le disque A est la source et le disque B la destination. | ||
+ | Il faut que B soit égal ou plus grand que A. | ||
+ | |||
+ | Pour cloner direct de disque à disque, on peut toujours utiliser dd : | ||
+ | Copier vers le presse-papierCode BASH : | ||
+ | |||
+ | dd status=progress if=/dev/sda of=/dev/sdb bs=100M | ||
+ | |||
+ | Je mets un BS de 100M pour que ça aille plus vite (testé OK sur un SSD, à adapter sur un HDD) | ||
+ | |||
+ | |||
+ | ==== Copier un disque sur un autre avec le materiel Inateck ==== | ||
+ | |||
+ | {{ : | ||
+ | == Utilisation == | ||
+ | |||
+ | == Copier une partition d'un disque dur vers un partition d'un autre disque dur == | ||
+ | |||
+ | Copie l' | ||
+ | |||
+ | sudo dd if=/dev/sdl of=/dev/sdm bs=8192 conv=notrunc, | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | noerror = Continuer même en cas d' | ||
+ | |||
+ | |||
+ | |||
+ | ==Remarque au sujet de l' | ||
+ | |||
+ | Copier une partition autre vers une partition copie aussi l'UUID puisqu' | ||
+ | Vous vous retrouveriez alors avec deux partitions qui ont le même UUID... | ||
+ | |||
+ | blkid | ||
+ | |||
+ | / | ||
+ | / | ||
+ | |||
+ | 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 | ||
+ | / | ||
+ | / | ||
+ | |||
+ | == Cloner un disque dur en entier == | ||
+ | |||
+ | Copie de l' | ||
+ | |||
+ | #dd if=/dev/sdg of=/dev/sdh conv=noerror | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Copie de l' | ||
+ | |||
+ | Autre exemple : | ||
+ | sudo dd if=/dev/sdm of=/dev/sdl bs=100M status=progress | ||
+ | |||
+ | == Réaliser un fichier image ISO copie d'un CD-ROM == | ||
+ | |||
+ | #dd if=/dev/sr0 of=/ | ||
+ | |||
+ | 737+0 enregistrements lus | ||
+ | 737+0 enregistrements écrits | ||
+ | | ||
+ | |||
+ | Pour monter le fichier image ISO obtenu : | ||
+ | |||
+ | # mkdir /mnt/cd | ||
+ | # mount -o loop -t iso9660 cd.iso /mnt/cd | ||
+ | |||
+ | Montage permanent par /etc/fstab : | ||
+ | |||
+ | / | ||
+ | |||
+ | == Effacer un lecteur == | ||
+ | |||
+ | **ATTENTION, | ||
+ | |||
+ | 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... | ||
+ | |||
+ | #for n in $(seq 7); do dd if=/ | ||
+ | |||
+ | dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique | ||
+ | | ||
+ | | ||
+ | | ||
+ | dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique | ||
+ | | ||
+ | | ||
+ | | ||
+ | dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique | ||
+ | | ||
+ | | ||
+ | | ||
+ | dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique | ||
+ | | ||
+ | | ||
+ | | ||
+ | dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique | ||
+ | | ||
+ | | ||
+ | | ||
+ | dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique | ||
+ | | ||
+ | | ||
+ | | ||
+ | dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | == Sauvegarder le chargeur de boot d'un disque dur == | ||
+ | |||
+ | #dd if=/dev/sda of=ChrgBoot.dd bs=440 count=1 | ||
+ | 1+0 enregistrements lus | ||
+ | 1+0 enregistrements écrits | ||
+ | 440 octets (440 B) copiés, 0,000473112 s, 930 kB/s | ||
+ | |||
+ | Cette commande copiera les 440 premiers octets du disque dur dans un fichier. | ||
+ | |||
+ | == Sauvegarder le MBR d'un disque dur == | ||
+ | |||
+ | #dd if=/dev/sda of=MBR.dd bs=512 count=1 | ||
+ | 1+0 enregistrements lus | ||
+ | 1+0 enregistrements écrits | ||
+ | 512 octets (512 B) copiés, 7,4232e-05 s, 6,9 MB/s | ||
+ | |||
+ | Cette commande copiera les 512 premiers octets du disque dur dans un fichier. | ||
+ | |||
+ | |||
+ | == Sauvegarder la table des partitions d'un disque dur == | ||
+ | |||
+ | $ dd if=/dev/sda of=TablePart.dd bs=64 count=1 skip=446 | ||
+ | 1+0 enregistrements lus | ||
+ | 1+0 enregistrements écrits | ||
+ | 64 octets (64 B) copiés, 0,000558829 s, 115 kB/s | ||
+ | |||
+ | Cette commande copiera les 512 premiers octets du disque dur dans un fichier. | ||
+ | |||
+ | pour restaurer la table de partition | ||
+ | |||
+ | dd if=TablePart.dd of=/dev/sda bs=64 count=1 seek=446 | ||
+ | 64+0 enregistrements lus | ||
+ | 64+0 enregistrements écrits | ||
+ | 64 octets (64 B) copiés, 0,00132602 s, 48,3 kB/s | ||
+ | |||
+ | Cette commande copiera la table des partitions contenue dans le fichier ''' | ||
+ | |||
+ | == 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 " | ||
+ | (peu importe le type de partition) | ||
+ | |||
+ | #dd if=/ | ||
+ | |||
+ | Dans cette ligne de commandes, le programme " | ||
+ | Le flux de sortie du programme " | ||
+ | " | ||
+ | Si le fichier "/ | ||
+ | Pour restaurer la partition ainsi sauvegardée faire : | ||
+ | |||
+ | #gzip -cd / | ||
+ | |||
+ | Dans cette commande, le programme " | ||
+ | Le flux de sortie du programme " | ||
+ | La sortie (of=) du programme " | ||
+ | et le contenu de cette partition sera écrasé et remplacé par le contenu du fichier sauvegardé par la ligne de commandes précédente. | ||
+ | |||
+ | ==== Clef_usb_d' | ||
+ | |||
+ | === Commande dd avec barre de defillement === | ||
+ | |||
+ | (PV -n image.iso | dd off=/ | ||
+ | |||
+ | |||
+ | == Références == | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | |||