Ved hjelp av dd-kommandoen

Kommandoen dd (Dataset Definition) er et enkelt, nyttig og overraskende enkelt å bruke verktøy; Med dette verktøyet kan du gjøre det samme på enheter: disker og partisjoner, som med kommersielle programmer som Norton Ghost, på Windows eller gratis programmer som CloneZilla, på Linux, med bare en kort kommandolinje.

Grunnleggende syntaks:

Den mest grunnleggende syntaksen for å bruke dd-kommandoen vil være denne:

sudo dd if=origen of=destino

Hvor hvis betyr "inngangsfil = inngangsfil“, Det vil si hva du vil kopiere og av betyr "utdatafil = utdatafil“, Det vil si destinasjonsfilen (hvor dataene blir kopiert);opprinnelse og Målet kan være enheter (CD- eller DVD-leser, harddisk, diskett, pendrive, partisjon osv.), Sikkerhetskopifil eller diskbilde osv., Men ikke mapper eller undermapper.

For jevn bruk av denne kommandoen er det første å alltid være klar over hva partisjoner / harddisker kalles i Linux (/ dev / sda1 for eksempel; / dev kommer fra device = device, på engelsk). å kjenne kilde og destinasjonsdisk / partisjon, noe vi enkelt kan finne ut med kommandoen sudo fdisk -lo med noe grafisk partisjonsprogram som gparted. All informasjon om dd-kommandoen kan konsulteres med kommandoen man dd og info dd,

Denne kommandoen bør brukes med forsiktighet, og alltid sjekke rekkefølgen og navnet på diskene / partisjonene, fordi akkurat som en disk er klonet, sletter den den raskt.

Syntaks med pv-kommandoen: Å bruke dd-kommandoen med forrige syntaks har en liten ulempe, siden det er en veldig reservert kommando - den gir ikke informasjon - for når den blir utført, forblir terminalprompten ubemannet, så vi vet ikke hva er hva som skjer og hvor mye tid det er igjen for å fullføre utførelsen. Denne mindre ulempen kan løses ved å legge kommandoen pv, (*) - som fungerer som et terminalrør som måler dataene som går gjennom den - til syntaksen til dd-kommandoen, slik at syntaksen nå ville være:

dd if=origen |pv|dd of=destino

Som et resultat ville vi få en slags fremdriftslinje i terminalen, informasjonen om byte overført, tiden den har kjørt og overføringshastigheten, alt i sanntid.

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

Også når det er ferdig viser det oss statistikk over overføringshastigheten, det totale antallet byte overført og den totale tiden det tok å overføre alle dataene.

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

(*) Kontroller før du utfører en kommandolinje med denne andre syntaksen, at vi har pv-pakken installert på systemet, eller installer den hvis vi ikke har den: begge med Synaptic.

La oss se noen praktiske eksempler og alternativer for denne kommandoen (i sin versjon med trikset forklart tidligere med pv-kommandoen):

A) Om harddisker og partisjoner:

= Klone en harddisk:

Med dette ville vi klone hda-disken i hdb. (IDE-disker):

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

Med dette ville vi klone sda-disken i sdb. (SATA-disker):

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

Med alternativet bs = 1M oppnås det at både lesing og skriving gjøres i 1 megabyte blokker, (mindre vil det være tregere, men sikrere, og med mer risikerer vi å miste data underveis).

Husk at på denne måten blir disken registrert "som den er", MBR, partisjonstabell, tom plass osv ..., slik at du bare kan ta opp på en disk av samme eller større størrelse.

= Skriv bare den første partisjonen (hda1) på kildedisken til måldisken (hdb):

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

= Brenn hele disken (hda) til den første partisjonen (hdb1) på måldisken:

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

= Lag et bilde - kan være bin eller iso - fra harddisken (hda), i / hjemmekatalogen:

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

= Slett informasjonen på en plate helt: For å gjøre dette, fyll platen med tilfeldige tegn, fem ganger. Det vil ikke være spor av informasjon på disken:

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

= Slett en hvilken som helst partisjon og hele disken fra hvilken som helst enhet:

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (Full disk sletting)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (Sletting av diskpartisjon)

hvor: x er disken som skal slettes, a er partisjonen som skal slettes

Denne operasjonen er veldig nyttig for å fullstendig slette en hvilken som helst partisjon, i tillegg kan ikke dataene som blir slettet gjenopprettes, og derfor er det et lavt nivå og veldig sikker sletting, veldig nyttig for eksempel når pendrives blir smittet med virus med vår kjære vinduer.

B) På en CD / DVD

= Opprett / monter et .iso-bilde fra en CD (eller DVD)

Slik oppretter du .iso-bildet av en CD i / home-katalogen:

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

Slik monterer du .iso-bildet fra CDen:

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

= Gjenopprette en riper DVD (Dette gjenoppretter ikke hele DVDen, i dette tilfellet bare de lesbare sektorene). Det er også egnet for defekte harddisker:

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

Noerror-alternativet brukes til å unngå lesefeil i alle situasjoner.

C) Om MBR og VBS:

= Kopier / gjenopprett Master Boot Record (MBR):

Slik kopierer du MBR:

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

Slik gjenoppretter du MBR:

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

= Rengjør MBR og partisjonstabellen:

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

= Tømmer MBR men berører ikke partisjonstabellen, (veldig nyttig for å slette GRUB uten å miste data om partisjonene):

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

= Copy / Restore Volume Boot Sector (VBS):

Slik kopierer du VBS:

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

Slik gjenoppretter du VBS:

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

D) Andre:

= Brenn et diskbilde til / hjemmekatalogen vår, og hopp over diskfeil (veldig nyttig for disker som er døende):

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

= Opprett en tom 1 Mb fil:

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

= Opprett en 2Gb-byttefil:

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

= Konverter alle bokstaver til store bokstaver:

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

Bruk dd-kommandoen med et grafisk miljøprogram: Gdiskdump, er et grafisk miljø for denne dd-kommandoen som letter oppgaven med klone partisjoner eller disker, raskt og enkelt. Den kan lastes ned fra siden https://launchpad.net/gdiskdump/ Når vi åpner det, med rottillatelser - sudo gdiskdump -, ser vi at programmet er veldig enkelt å bruke, siden vi bare trenger å fortelle det partisjonen eller disken som skal klone (Input Format) og dens destinasjon (Output Format).


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   sieg84 sa

    Jeg ble nesten diabetiker med misbruk av dd-kommandoen.
    forresten, hva ville være forskjellen med dd_rescue?

    1.    noensinne sa

      ddrescue stopper som standard ikke ved lesefeil og prøver på forskjellige måter å gjenopprette uleselig informasjon.

    2.    Sheko sa

      hahahha Jeg brukte også dd-kommandoen veldig dårlig, den er mye kraftigere enn jeg trodde.

  2.   råtner87 sa

    Jeg kommenterer at jeg tror at alle buebrukere på et eller annet tidspunkt brukte

  3.   Alf sa

    @ sieg84, forskjellen er at dd ble avbrutt med noen lese- eller enhetsfeil, i dette tilfellet vil dette ikke skje siden den skadede blokken vil lese den et bestemt antall ganger og fortsette med den neste, det gir også fordelen at Vi kan utføre det flere ganger på det samme bildet, og det vil ikke starte fra bunnen av, men vil prøve å fullføre det.

    Det er verdt å nevne at dd_rescue jeg aldri har brukt den.

    1.    debianitten merlin sa

      Hvis det er noen GUI laget i qt for KDE som bruker denne kommandoen? eller må jeg trekke meg.?

      1.    Juli sa

        Gdiskdump er mer enn en GUI for denne kommandoen (den er basert på den), og selv om jeg ikke vet om de gjorde det i qt (tror jeg ikke), fungerer det nesten helt sikkert for deg i KDE

    2.    sieg84 sa

      Takk for oppklaringen.
      Jeg har bare brukt dd_rescue for å kopiere ISO til USB (hovedsakelig fordi de hadde det i openSUSE-wiki).
      dd_rescue tu.iso / dev / sdX
      det jeg liker er at det viser en fremdriftslinje:
      http://box.jisko.net/i/110db781.png

  4.   krel sa

    Alfa:
    Jeg så nylig dette samme innlegget lagt ut på Hatteras-bloggen. Det er sannsynlig at han ikke tar dette dårlig, men jeg vet ikke, i det minste som en høflighet ville det være bra å referere til det. Så også vinner han innen nettposisjonering.

    Jeg vil ikke skape et dilemma med dette, men ved første øyekast virker artikkelen 95% identisk bortsett fra de terminale skjermbildene du har tilpasset. Han nevnte til og med kildene sine.

  5.   debianitten merlin sa

    Interessant jeg innrømmer at | pv | kjente ham ikke.

    Krel Jeg tror kilden er i ubuntu wiki eller buehilsener.

  6.   Alf sa

    @krel, linux-tingen er dette:

    Gjennom min reise i denne verden har jeg lest og samlet ting, jeg har en notatbok med mer enn 400 innlegg som jeg la i Ubuntu Mexico, som var det samfunnet der jeg bidro mest i mine tidlige dager, dessverre kan ting gjentas, hvis du gjennomgår den store mengden innlegg på nettet, de er nesten i samme rekkefølge, tingen er at de fleste er kortere.

    Jeg kan publisere ytterligere 5 innlegg i løpet av uken, og du kan finne andre lignende eller det samme, årsaken? Ubuntu har flest forumer / blogger på nettet.

    Jeg tror på ingen måte det vil være et dilemma, og hvis administratorene vurderer å slette det, vil det ikke fornærme eller plage meg i det hele tatt, jeg følger reglene og det som følger, blant mine notater 8 om at jeg ikke har dem i orden) Jeg ønsker å legge til noe for å unngå tilfeldigheter.

    Hilsen

    1.    krel sa

      Det er ikke noe mysterium for noen at høyst bare 10% av innholdet som genereres på nettet er nytt. Som de andre 90 er duplisert, fornyet eller reddet innhold med, og jeg sier ikke at dette er mindre viktig, tvert imot, det er en form for formidling av kunnskap.

      Der hvor jeg stopper er imidlertid noe annet. Når du har en blogg av denne typen, er det en personlig motivasjon for å hjelpe og kanskje til og med få anerkjennelse for den. Samtidig er jeg sikker på at de fleste av dem som skriver innhold om fri programvare, er enige i ideen om deling. La oss imidlertid ikke glemme at selv de edleste lisensene som BSD ber om anerkjennelse.

      Referansene er også en måte som noen søkemotorer som google forbedrer plasseringen av et nettsted på. Jeg sier bare, siden materialet ble brukt som et minimum av takknemlighet, vil jeg referere til det arbeidet.

      Jeg synes det er flott at du deler, men hva taper du på å referere? Bare tenk om innholdet i denne ville bli duplisert fra en annen blogg med bedre plassering enn denne. desdelinux Uten å referere til det, ville de til slutt begrave denne bloggen.

      Hatteras publiserte den for 10 dager siden, og med mindre han har tatt den ut av notatboken din, eller du er Luis Puente, kan jeg ikke forklare hva du sier, det er at nesten alt er tekstlig. Usannsynlig, men ikke umulig.

      Men ingenting, at denne typen ting skjer. Og jeg vet ikke, for personlig etikk og for samarbeid med en annen kollega vil jeg henvise til ham. Det er opp til deg, jeg tror heller ikke Hatteras tar dette på feil måte, snarere tvert imot.

      1.    MSX sa

        Det er sant, det er en sann kopi av dette innlegget: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/

  7.   Den før sa

    Hmm ... Jeg lagde en dd if = file.iso av = / media / harddisk ... ved en feiltakelse 😛
    noen måte å gjenopprette filer fra harddisken ???

    1.    livlig sa

      Du kan bruke Testdisk

    2.    debianitten merlin sa

      En venn har skjedd meg kanskje med testdisk eller med en spesialisert live distro for å redde data. Min anbefaling om å ta en sikkerhetskopi til neste gang siden jeg bruker den kommandoen, er noe delikat i begynnelsedagene mine for å formatere hele harddisken uten å ville, og nå for å starte på nytt ...… Unødvendig å si, verken grubben startet.

  8.   Raul sa

    Kan noen fortelle meg hvilken kommando jeg skal bruke for å se kopieringsfremdriften med dd-kommandoen, det jeg mener er å se en fremdriftslinje med% som har kopiert.

    slds

    1.    Juli sa

      Venn! legge til kommandoen pv. I dette samme innlegget sier han det nesten i begynnelsen og forklarer hvordan du bruker det. Les det igjen

  9.   pedro sa

    ved hjelp av denne kommandoen:
    dd hvis = / dev / sdc | bzip2> /media/Elements/iso.gz
    Jeg har klart å lage et iso-bilde av en 16 GB disk og lagre den på en 400 GB disk.
    Men jeg vet ikke hva kommandoen ville være å gjenopprette det bildet til den opprinnelige 16 GB disken eller til en annen med samme kapasitet

  10.   Luis Rodriguez sa

    et spørsmål

    bruk denne kommandoen til
    for n i {1..5}; gjør dd hvis = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc;
    for en 2 TB disk
    så holder jeg meg i konsollen noe sånt
    >
    Skal jeg kjøre en annen kommando, eller hvor lang tid kan prosessen ta?

    takk og fortsett

    1.    Jazb sa

      Det er en skrivefeil i for ... mangler på slutten av linjen «; ferdig »ble« i n i {1..5}; gjør dd hvis = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc; ferdig »

  11.   henry salazar sa

    veldig god artikkel ... ..Jeg skal sette den i praksis ... hilsen kompis

  12.   Marcos_tux sa

    Veldig nyttig, det hjalp meg mye takk

  13.   EDFR sa

    Bra Alf. Takk for infoen.

    Et spørsmål. Er det en måte å kopiere bare en del av kildedisken? Saken er at hvis jeg har en 120 GB-disk der bare 25 GB blir brukt og jeg vil lage en kopi til en 40 GB-disk, vil jeg bare være interessert i å kopiere den brukte plassen (25 GB), er det en måte med denne kommandoen?
    Takk på forhånd.

    1.    yukiteru sa

      Det ville være bedre for deg å bruke rsync, med kommandoen rsync -av / sti / til / opprinnelse / sti / til / skjebne, vil du allerede sikkerhetskopiere alle tillatelsene dine med tilhørende tillatelser.

    2.    yukiteru sa

      Jeg mente: "alle filene dine med tilhørende tillatelser"

  14.   FOXSPY sa

    Kjære, er det noen som vet hvorfor når du bruker dd-kommandoen, når den bare 4.2 GB og indikerer at filen er veldig stor? Det er et bilde av en 250 GB disk og går til en 1 TB ekstern disk.

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

    1.    Bortfører sa

      4Gb-feilen gir deg den fordi du prøver å ta sikkerhetskopi i en partisjon med fs FAT16

  15.   Bern sa

    For en god blogg. Veldig nyttig oppføring. Jeg hadde allerede sett bruken av denne kommandoen andre steder, men de forklarte ikke noe i det hele tatt. Takk skal du ha.

  16.   Carlos Torres sa

    Hei, jeg har en injeksjonsmaskin der programmet gikk tapt siden de byttet ut bios-stakken, vi har ikke en sikkerhetskopi, men vi har en annen samme maskin, den har bare diskett og seriell og parallell port, hvordan kan jeg ta en sikkerhetskopi av denne maskinen for å laste den inn i den andre, håper jeg du kan hjelpe meg takk

  17.   ernesto sa

    Jeg vil bare kopiere en partisjon uten å starte fra LIVE CD. For eksempel har jeg en disk med / dev / sda1, / dev / sda5, / dev / sda6, og jeg vil lage en kopi til / dev / sda5 fra en annen disk / dev / sdb1

    kommandoen er dd hvis = / dev / sdb1 av = / dev / sda5 bs = 1M ????

  18.   Peter Lobato sa

    Hei, hvordan har du det. Jeg bor også i Guadalajara.
    Artikkelen din om DD-kommandoen er veldig interessant. Jeg vil prøve noen Linux-distribusjoner, spesielt Archlinux, men jeg har ikke vært i stand til å bruke DD-kommandoen og kopiere Archilinux ISO som jeg allerede lastet ned, til en USB-pinne. Jeg vet ikke om du kan gi meg et kryss for å begynne med dette. Takk, Pedro lobato

  19.   Victor sa

    For når en iso er spilt inn med kommandoen "dd", fungerer den bare for oppstart på noen PC-er?
    Utløpsdato Jeg har to bærbare datamaskiner, og ingen av dem støtter iso for noen Linux-distribusjon; men tvert imot, den starter opp på en gammel stasjonær PC med inaktiv disk

    1.    seb sa

      Det beste er å spille trygt ved hjelp av unetbootin, med dd har jeg også satt igjen med spørsmålet om hvorfor det noen ganger ikke fungerer.

      1.    livlig sa

        Jeg tror ikke det kommer an på DD, men på ISO. Det samme skjer med Unetbootin, det fungerer ikke bra med alle distribusjoner.

  20.   Victor sa

    Noen ganger fungerer det på alle PC-er, men du må legge til mbr og syslinux til USB-en i prosessen; men dette er langt og kjedelig.
    Den enkle delen om unetbooting

    Vær forsiktig: det er ikke iso eller dd for meg, det er måten du tar opp det.

  21.   danny sa

    Jeg er i tvil om jeg bruker denne kommandoen:
    sudo dd hvis = / dev / null av = / dev / diskdrive
    I stedet for dette er formateringen på lavt nivå den samme, eller det tar lengre tid enn dette:
    sudo dd hvis = / dev / null av = / dev / diskdrive bs = 1M ..

  22.   arg0s sa

    Kan dd-kommandoen brukes til å slette en bestemt fil?

    for eksempel

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

  23.   arg0s sa

    med bs = 1M blir det raskere

  24.   alex sa

    Og hvis jeg skal lage en eksakt kopi fra en disk til en annen, med alle dens partisjoner (swap, sda ...) og begge diskene er de samme, men den ene er på PC-en og den andre på en NAS over nettverket ????
    takk

  25.   Gerardo sa

    En kommentar, jeg bruker den med status = fremgang på slutten og jeg trenger ikke pv, så debian fungerer veldig bra for meg å se fremgangen.
    Og det andre, er det en måte å få bare dataene og ikke hele enheten, siden hvis det er en 2 TB disk og jeg bare bruker 100 GB, trenger jeg all den plassen. Er det en måte å bare sikkerhetskopiere 100 GB? Og når jeg sender den til et annet medium, kan det være en mindre disk, kanskje en av 500?

  26.   Alexander sa

    Hjelp !!!
    Utfør kommandoen
    dd if = cbpp-9.0-amd64-20170621.iso av = / dev / sdb

    alt bra ... men nå vil jeg bruke USB som lagringsenhet og ...

    USB er ikke montert, den vises ikke engang i GParted.

    Er det noen som vet hva jeg kan gjøre?

    PS: som ville være det beste programmet for å gjenopprette informasjon fra plater og CD-DVDer….

    1.    anonym sa

      du må re partisjonstest med fdisk