Met behulp van de opdracht dd

De opdracht dd (Dataset Definition) is een eenvoudig, nuttig en verrassend gebruiksvriendelijk hulpmiddel; Met deze tool kun je hetzelfde doen, op apparaten: schijven en partities, zoals met commerciële programma's zoals Norton Ghost, op Windows of gratis programma's zoals CloneZilla, op Linux, met slechts een korte opdrachtregel.

Basissyntaxis:

De meest basale syntaxis voor het gebruik van de opdracht dd is deze:

sudo dd if=origen of=destino

waarin als betekent "input file = input bestand“, Dat wil zeggen, wat u wilt kopiëren en van middelen "output file = output bestand“, Dat wil zeggen, het bestemmingsbestand (waar de data naar gekopieerd zal worden);oorsprong en De bestemming kan apparaten zijn (cd- of dvd-lezer, harde schijf, diskette, pendrive, partitie, enz.), Back-upbestand of schijfimage, enz., Maar geen mappen of submappen.

Voor een soepel gebruik van dit commando is het eerste dat altijd duidelijk moet zijn over welke partities / harde schijven in Linux worden aangeroepen (/ dev / sda1 bijvoorbeeld; / dev is afgeleid van device = device, in het Engels). om de bron- en bestemmingsschijf / -partitie te kennen, iets dat we gemakkelijk kunnen achterhalen met het commando sudo fdisk -lo met een grafisch partitieprogramma zoals gparted. Alle informatie over het dd commando kan geraadpleegd worden met het commando man dd en info dd,

Dit commando moet met de nodige voorzichtigheid worden gebruikt en altijd de volgorde en naam van de schijven / partities controleren, want net zoals een schijf wordt gekloond, wordt deze in een handomdraai gewist.

Syntaxis met het pv-commando: het gebruik van het dd-commando met de vorige syntaxis heeft een klein nadeel, omdat het een zeer gereserveerde commando is - het geeft geen informatie - omdat wanneer het wordt uitgevoerd, de terminalprompt onbeweeglijk blijft, dus we weten het niet wat gebeurt er en hoeveel tijd is er over om de uitvoering te voltooien. Dit kleine ongemak kan worden opgelost door het commando pv, (*) - dat fungeert als een terminalpipe die de gegevens meet die erdoorheen gaan - toe te voegen aan de syntaxis van het dd-commando, zodat de syntaxis nu zou zijn:

dd if=origen |pv|dd of=destino

Als gevolg hiervan zouden we een soort voortgangsbalk in de terminal krijgen, de informatie over de overgedragen bytes, de tijd dat deze heeft gedraaid en de overdrachtssnelheid, allemaal in realtime.

(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd van = / dev / mmcblk0p2 1,630 GB 0:21:30 [1,12 MB / s] [

Als u klaar bent, toont het ons bovendien statistieken van de overdrachtssnelheid, het totale aantal overgedragen bytes en de totale tijd die nodig was om alle gegevens over te dragen.

(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 10530816 + 0 records gelezen <=> 10530816 + 0 records geschreven 5391777792 bytes (5.4 GB) gekopieerd, 3873,48 s, 1,4 MB / s 5,02 GB 1:04:33 [1,33 MB / s] [<=> 10530816 + 0 records gelezen <=> 10530816 + 0 records geschreven 5391777792 bytes (5.4 GB) gekopieerd, 3873,48, 1,4 s, XNUMX MB / s (alf) - (~) └──┤

(*) Controleer voordat u een opdrachtregel uitvoert met deze tweede syntaxis, of we het pv-pakket op het systeem hebben geïnstalleerd, of installeer het als we het niet hebben: beide met Synaptic.

Laten we eens kijken naar enkele praktische voorbeelden en opties van dit commando (in zijn versie met de truc die eerder werd uitgelegd met het pv-commando):

A) Over harde schijven en partities:

= Kloon een harde schijf:

Hiermee zouden we de hda-schijf in hdb klonen. (IDE-schijven):

sudo dd if=/dev/hda |pv|dd of=/dev/hdb bs=1M

Hiermee zouden we de sda-schijf in sdb klonen. (SATA-schijven):

sudo dd if=/dev/sda |pv|dd of=/dev/sdb bs=1M

Met de optie bs = 1M wordt bereikt dat zowel lezen als schrijven wordt gedaan in blokken van 1 megabyte (minder, het zou langzamer maar veiliger zijn, en met meer lopen we het risico onderweg gegevens te verliezen).

Houd er rekening mee dat op deze manier de schijf wordt opgenomen "as is", MBR, partitietabel, lege ruimte, enz ..., zodat u alleen kunt opnemen op een schijf van dezelfde of grotere grootte.

= Schrijf alleen de eerste partitie (hda1) van de bronschijf naar de bestemmingsschijf (hdb):

sudo dd if=/dev/hda1 |pv|dd of=/dev/hdb bs=1M

= Brand de hele schijf (hda) naar de eerste partitie (hdb1) van de bestemmingsschijf:

sudo dd if=/dev/hda |pv|dd of=/dev/hdb1 bs=1M

= Maak een afbeelding - kan bin of iso zijn - vanaf de harde schijf (hda), in de / home directory:

sudo dd if=/dev/hda |pv|dd of=/home/hda.bin

= Wis informatie op een schijf volledig: om dit te doen, vult u de schijf vijf keer met willekeurige tekens. Er zal geen spoor van informatie op de schijf zijn:

for n in {1..5}; do dd if=/dev/urandom |pv|dd of=/dev/hda bs=8b conv=notrunc;

= Wis elke partitie en de hele schijf van elk apparaat:

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (Volledige schijf wissen)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (Schijfpartitie wissen)

waarbij: x de te wissen schijf is, a de te wissen partitie is

Deze bewerking is erg handig om elke partitie volledig te wissen, bovendien kunnen de gegevens die worden gewist niet worden hersteld, daarom is het een laag niveau en zeer veilig wissen, erg handig wanneer de pendrives bijvoorbeeld geïnfecteerd raken met virussen met onze dierbare vensters .

B) Op een cd / dvd

= Creëer / koppel een .iso-image vanaf een cd (of dvd)

Om een ​​.iso-image van een cd te maken in de / home-directory:

sudo dd if=/dev/cdrom |pv|dd of=/home/imagendeCD.iso

Om het .iso-image van de cd te mounten:

sudo mount -o loop imagedeCD.iso /mnt/home

= Een bekraste dvd herstellen (hiermee wordt niet de hele dvd hersteld, in dit geval alleen de leesbare sectoren). Het is ook geschikt voor defecte harde schijven:

sudo dd if=/dev/cdrom |pv|dd of=/home/dvd_recuperado.iso conv=noerror,sync

De noerror-optie dient om leesfouten in elke situatie te voorkomen.

C) Over MBR en VBS:

= Kopieer / herstel Master Boot Record (MBR):

Om de MBR te kopiëren:

sudo dd if=/dev/hda |pv|dd of=mbr count=1 bs=512

Om de MBR te herstellen:

sudo dd if=mbr |pv|dd of=/dev/hda

= Maak onze MBR en partitietabel schoon:

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=512 count=1

= Wist de MBR maar raakt de partitietabel niet aan (erg handig om de GRUB te wissen zonder gegevens op de partities te verliezen):

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=446 count=1

= Kopieer / Herstel Volume Boot Sector (VBS):

Om de VBS te kopiëren:

sudo dd if=/dev/hda |pv|dd of=/home/sector_arranque_hda count=1 bs=512

Om de VBS te herstellen:

sudo dd if=/home/sector_arranque_hda |pv|dd of=/dev/hda

D) Andere:

= Brand een schijfimage naar onze / home-directory, waarbij schijffouten worden overgeslagen (erg handig voor schijven die doodgaan):

sudo dd conv=noerror if=/dev/hda |pv|dd of=~/home/imagen_disco_con_errores.iso

= Maak een leeg bestand van 1 Mb aan:

sudo dd if=/dev/zero |pv|dd of=archivo_nuevo_vacio bs=1024 count=1024

= Maak een wisselbestand van 2 Gb:

sudo dd if=/dev/zero |pv|dd of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace

= Converteer alle letters naar hoofdletters:

sudo dd if=miarchivo |pv|dd of=miarchivo conv=ucase

Gebruik de opdracht dd met een grafisch omgevingsprogramma: Gdiskdump, is een grafische omgeving voor dit dd-commando dat de taak van partities of schijven klonen, snel en gemakkelijk. Het kan worden gedownload vanaf de pagina https://launchpad.net/gdiskdump/ Zodra we het openen, met rootrechten - sudo gdiskdump -, zien we dat het programma heel gemakkelijk te gebruiken is, omdat we het alleen de partitie of schijf hoeven te vertellen die gekloond moet worden (Invoerformaat) en de bestemming (Uitvoerformaat).


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   sieg84 zei

    Ik werd bijna diabetisch door het misbruik van het dd-commando.
    wat zou trouwens het verschil zijn met dd_rescue?

    1.    ooit zei

      ddrescue stopt standaard niet bij leesfouten en probeert op verschillende manieren onleesbare informatie te herstellen.

    2.    sheko zei

      hahahha ik heb het dd commando ook erg slecht gebruikt, het is veel krachtiger dan ik dacht.

  2.   rot87 zei

    Ik merk op dat ik geloof dat elke booggebruiker op een gegeven moment

  3.   Alf zei

    @ sieg84, het verschil is dat de dd werd onderbroken door een lees- of apparaatfout, in dit geval zal dit niet gebeuren omdat het beschadigde blok het een bepaald aantal keer leest en doorgaat met het volgende, het biedt ook het voordeel dat We kunnen het meerdere keren uitvoeren op dezelfde afbeelding en het zal niet helemaal opnieuw beginnen, maar zal proberen het te voltooien.

    Er moet worden vermeld dat dd_rescue ik het nog nooit heb gebruikt.

    1.    merlin de debianite zei

      Alf is er een GUI gemaakt in qt voor KDE die dit commando gebruikt? of moet ik aftreden?

      1.    Juli zei

        Gdiskdump is meer dan een GUI voor dit commando (het is erop gebaseerd) en hoewel ik niet weet of ze het in qt hebben gedaan (ik denk het niet), werkt het vrijwel zeker voor jou in KDE

    2.    sieg84 zei

      Bedankt voor de verduidelijking.
      Ik heb alleen dd_rescue gebruikt om ISO naar USB te kopiëren (meestal omdat ze het in de openSUSE wiki hadden).
      dd_rescue tu.iso / dev / sdX
      wat ik leuk vind, is dat het een voortgangsbalk laat zien:
      http://box.jisko.net/i/110db781.png

  4.   krel zei

    Alfa:
    Ik zag onlangs hetzelfde bericht gepost op de Hatteras Blog. Waarschijnlijk neemt hij dit niet slecht op, maar ik weet het niet, althans als beleefdheid zou het goed zijn ernaar te verwijzen. Hij wint dus ook in webpositionering.

    Ik wil hiermee geen dilemma creëren, maar op het eerste gezicht lijkt het artikel voor 95% identiek behalve de terminal screenshots die je hebt aangepast. Hij noemde zelfs zijn bronnen.

  5.   merlin de debianite zei

    Interessant, ik geef toe dat | pv | kende hem niet.

    Krel Ik denk dat de bron in ubuntu wiki of booggroeten is.

  6.   Alf zei

    @krel, het Linux-ding is dit:

    Tijdens mijn reis in deze wereld heb ik dingen gelezen en verzameld, ik heb een notitieboekje met meer dan 400 berichten die ik in Ubuntu Mexico heb geplaatst, de gemeenschap waar ik in mijn begindagen het meest aan heb bijgedragen, helaas kunnen dingen worden herhaald, als u bekijkt het grote bedrag dat op het net wordt gepost, ze zijn bijna in dezelfde volgorde, het punt is dat de meeste korter zijn.

    Ik kan in de week nog eens 5 berichten plaatsen en je kunt andere soortgelijke of dezelfde vinden, de reden? Ubuntu heeft de meeste forums / blogs op internet.

    Ik denk zeker niet dat er een dilemma zal zijn, en als de beheerders overwegen het te verwijderen, zou het me helemaal niet beledigen of storen, ik houd me aan de regels en wat volgt, onder mijn aantekeningen 8 dat ik ze niet heb in volgorde) Ik ben op zoek om iets toe te voegen om toeval te voorkomen.

    groeten

    1.    krel zei

      Het is niemand een raadsel dat hooguit 10% van de inhoud die op internet wordt gegenereerd, nieuw is. Waarbij de overige 90 inhoud wordt gedupliceerd, vernieuwd of gered, en ik zeg niet dat dit minder belangrijk is, integendeel, het is een vorm van verspreiding van kennis.

      Waar ik echter stop, is iets anders. Als je zo'n blog hebt, is er een persoonlijke motivatie om te helpen en misschien zelfs erkenning ervoor te krijgen. Tegelijkertijd ben ik er zeker van dat de meeste van degenen die inhoud over Vrije Software schrijven het eens zijn met het idee van delen. Laten we echter niet vergeten dat zelfs de edelste licenties zoals BSD om erkenning vragen.

      Ook zijn de verwijzingen een manier waarop sommige zoekmachines, zoals Google, de positionering van een website verbeteren. Ik zeg alleen maar, aangezien het materiaal als een minimum aan dankbaarheid werd gebruikt, zou ik naar dat werk willen verwijzen.

      Ik vind het geweldig dat je het deelt, maar wat verlies je als je een verwijzing maakt? Stel je eens voor dat de inhoud van een andere blog met een betere positionering dan deze zou worden gedupliceerd. desdelinux Zonder ernaar te verwijzen, zouden ze uiteindelijk deze blog begraven.

      Hatteras publiceerde het 10 dagen geleden en tenzij hij het uit je notitieboekje heeft gehaald of jij Luis Puente bent, kan ik niet begrijpen wat je zegt, het is dat bijna alles tekstueel is. Onwaarschijnlijk maar niet onmogelijk.

      Maar niets, dat dit soort dingen gebeurt. En ik weet het niet, voor persoonlijke ethiek en voor samenwerking met een andere collega zou ik naar hem verwijzen. Dat is aan jou, ik denk niet dat Hatteras dit ook verkeerd opvat, integendeel.

      1.    msx zei

        Het is waar, het is een echte kopie van dit bericht: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/

  7.   De vorige zei

    Hmm… ik heb per ongeluk een dd gemaakt if = file.iso van = / media / hard disk… 😛
    een manier om bestanden van de harde schijf te herstellen ???

    1.    levendig zei

      U kunt Testdisk gebruiken

    2.    merlin de debianite zei

      Misschien heeft een vriend mij doorgegeven met testdisk of met een live distro gespecialiseerd in het redden van data. Mijn aanbeveling om een ​​back-up te maken voor de volgende keer, aangezien het gebruik van dat commando iets delicaats is in mijn rookie-dagen om de hele harde schijf te formatteren zonder dat ik het wil en nu goed herstart ... ... Onnodig te zeggen dat noch de rups begon.

  8.   Raul zei

    Kan iemand mij vertellen welk commando ik moet gebruiken om de voortgang van het kopiëren te zien met het dd commando, wat ik bedoel is een voortgangsbalk te zien met de% die aan het kopiëren is.

    SLDs

    1.    Juli zei

      Vriend! het toevoegen van het commando pv. In dezelfde post zegt hij het bijna aan het begin en legt hij uit hoe je het moet gebruiken. Lees het opnieuw

  9.   pedro zei

    met behulp van deze opdracht:
    dd if = / dev / sdc | bzip2> /media/Elements/iso.gz
    Ik ben erin geslaagd om een ​​iso-image te maken van een 16Gb-schijf en deze op een 400Gb-schijf op te slaan.
    Maar ik weet niet wat de opdracht zou zijn om die afbeelding te herstellen naar de oorspronkelijke schijf van 16 GB of naar een andere met dezelfde capaciteit

  10.   Luis Rodriguez zei

    een vraag

    gebruik deze opdracht om
    voor n in {1..5}; doe dd als = / dev / urandom | pv | dd van = / dev / hda bs = 8b conv = notrunc;
    voor een 2TB schijf
    dan blijf ik zoiets in de console
    >
    Moet ik een ander commando uitvoeren of hoe lang kan het proces duren?

    bedankt en ga door

    1.    Jazzb zei

      Er staat een typfout in de for… ontbreekt aan het einde van de regel «; gedaan »bleef« voor n in {1..5}; doe dd als = / dev / urandom | pv | dd van = / dev / hda bs = 8b conv = notrunc; gedaan "

  11.   Hendrik Salazar zei

    heel goed artikel… ..ik ga het in de praktijk brengen… groeten maatje

  12.   Marcos_tux zei

    Heel handig, het heeft me veel geholpen, bedankt

  13.   EDFR zei

    Goede Alf. Bedankt voor de info.

    Een vraag. Is er een manier om slechts een deel van de bronschijf te kopiëren? Het geval is dat als ik een 120 Gb-schijf heb waarop slechts 25 Gb wordt gebruikt en ik wil een kopie maken naar een 40 Gb-schijf, ik alleen geïnteresseerd zou zijn in het kopiëren van de gebruikte ruimte (25 Gb), is er een manier met dit commando ?
    Bij voorbaat dank.

    1.    yukitero zei

      Het zou beter voor je zijn om rsync te gebruiken, met het commando rsync -av / pad / naar / oorsprong / pad / naar / bestemming zou je al een back-up maken van al je permissies met hun corresponderende permissies.

    2.    yukitero zei

      Ik bedoelde: "al je bestanden met hun bijbehorende rechten"

  14.   FOKSPY zei

    Beste, weet iemand waarom het bij het bezetten van het dd-commando slechts 4.2 GB bereikt en aangeeft dat het bestand erg groot is? Het is een afbeelding van een schijf van 250 GB en gaat naar een externe schijf van 1 TB.

    sudo dd if = / dev / sda | pv | dd of = / home / fox / backup.iso

    1.    Ontvoerder zei

      De 4Gb-fout geeft het u omdat u probeert een back-up te maken in een partitie met fs FAT16

  15.   Bern zei

    Wat een goede blog. Zeer nuttige vermelding. Ik had het gebruik van dit commando elders al gezien, maar ze legden helemaal niets uit. Dank je.

  16.   Carlos Torres zei

    hallo ik heb een injectiemachine waarin het programma verloren is gegaan sinds ze de bios-stack hebben vervangen, we hebben geen back-up maar we hebben een andere machine, deze heeft alleen een floppy en een seriële en parallelle poort, hoe kan ik een back-up maken van deze machine om het in de andere te laden, ik hoop dat je me kunt helpen, bedankt

  17.   ernesto zei

    Ik wil gewoon een partitie kopiëren zonder te starten vanaf LIVE CD. Ik heb bijvoorbeeld een schijf met / dev / sda1, / dev / sda5, / dev / sda6 en ik wil een kopie maken naar / dev / sda5 vanaf een andere schijf / dev / sdb1

    het commando is dd if = / dev / sdb1 of = / dev / sda5 bs = 1M ????

  18.   Peter Lobato zei

    Hallo hoe gaat het. Ik woon ook in Guadalajara.
    Uw artikel over het DD-commando is erg interessant. Ik wil een aantal Linux-distributies proberen, met name Archlinux, maar ik heb het DD-commando niet kunnen gebruiken en de Archilinux ISO die ik al heb gedownload naar een USB-stick kunnen kopiëren. Ik weet niet of je me een vinkje kunt geven om hiermee te beginnen. Bedankt, Pedro lobato

  19.   Victor zei

    Want als een iso wordt opgenomen met het commando "dd", werkt het alleen om op te starten op sommige pc's?
    Exp. Ik heb 2 laptops en geen van hen start de iso van een Linux-distributie; maar integendeel, het start wel op op een oude desktop-pc met inactieve schijf

    1.    seb zei

      Het is het beste om veilig te spelen met unetbootin, met dd heb ik ook de vraag gehad waarom het soms niet werkt.

      1.    levendig zei

        Ik denk niet dat het van DD afhangt, maar van ISO. Hetzelfde met Unetbootin, het werkt niet goed met alle distributies.

  20.   Victor zei

    Soms werkt het op alle pc's, maar je moet de mbr en syslinux aan de usb toevoegen aan het proces; maar dit is lang en vervelend.
    Het makkelijke gedeelte over het terugdraaien

    Wees voorzichtig: het is niet de iso of de dd voor mij, het is de manier waarop je het opneemt.

  21.   danny zei

    Ik twijfel of ik dit commando gebruik:
    sudo dd if = / dev / zero of = / dev / diskdrive
    In plaats daarvan is de opmaak op laag niveau hetzelfde of duurt het langer dan dit:
    sudo dd if = / dev / zero of = / dev / diskdrive bs = 1M ..

  22.   arg0s zei

    Kan de opdracht dd worden gebruikt om een ​​specifiek bestand te verwijderen?

    bijvoorbeeld

    dd if = / dev / urandom of = / home / myfile delete

  23.   arg0s zei

    met bs = 1M wordt het sneller

  24.   alex zei

    En als ik een exacte kopie ga maken van de ene schijf naar de andere, met al zijn partities (swap, sda ...) en beide schijven hetzelfde, maar de ene op de pc en de andere op een NAS over het netwerk? ???
    bedankt

  25.   Gerardo zei

    Een opmerking, ik gebruik het met status = voortgang aan het einde en ik heb geen pv nodig, dus debian werkt erg goed voor mij om de voortgang te zien.
    En de tweede, is er een manier om alleen de gegevens te krijgen en niet de hele eenheid, want als het een 2TB-schijf is en ik gebruik slechts 100 GB, heb ik al die ruimte nodig. Is er een manier om gewoon een back-up van die 100 GB te maken? En als ik het doorgeef aan een ander medium, kan het een kleinere schijf zijn, misschien een van de 500?

  26.   Alexander zei

    Help !!!
    Voer de opdracht uit
    dd if = cbpp-9.0-amd64-20170621.iso of = / dev / sdb

    allemaal goed ... maar nu wil ik de usb gebruiken als opslageenheid en ...

    De USB is niet aangekoppeld, hij verschijnt niet eens in GParted.

    Weet iemand wat ik kan doen.

    PS: wat zou het beste programma zijn om informatie van schijven en cd-dvd's te herstellen….

    1.    anoniem zei

      je moet de partitietest opnieuw uitvoeren met fdisk