Brug af dd-kommandoen

Kommandoen dd (datasætdefinition) er et simpelt, nyttigt og overraskende let at bruge værktøj; Med dette værktøj kan du gøre det samme på enheder: diske og partitioner, som med kommercielle programmer som Norton Ghost, på Windows eller gratis programmer som CloneZilla, på Linux, med kun en kort kommandolinje.

Grundlæggende syntaks:

Den mest basale syntaks til brug af dd-kommandoen er denne:

sudo dd if=origen of=destino

hvor hvis betyder "inputfil = inputfil“Det vil sige, hvad du vil kopiere og af betyder "outputfil = outputfil“, Det vil sige destinationsfilen (hvor dataene kopieres);oprindelse og Destinationen kan være enheder (CD- eller DVD-læser, harddisk, diskett, pendrive, partition osv.), Backup-fil eller diskbillede osv., Men ikke mapper eller undermapper.

For en jævn brug af denne kommando er den første ting altid at være klar over, hvad partitioner / harddiske kaldes i Linux (/ dev / sda1 for eksempel; / dev stammer fra enhed = enhed, på engelsk). at kende kilde og destinationsdisk / partition, noget som vi let kan finde ud af med kommandoen sudo fdisk -lo med noget grafisk partitionsprogram som gparted. Alle oplysninger om dd-kommandoen kan konsulteres med kommandoen man dd og info dd,

Denne kommando skal bruges med forsigtighed og altid kontrollere rækkefølgen og navnet på diske / partitioner, fordi det samme som en disk er klonet, sletter det i en snak.

Syntaks med pv-kommandoen: Brug af dd-kommandoen med den tidligere syntaks har en lille ulempe, da det er en meget reserveret kommando - det giver ikke information - for når den udføres, forbliver terminalprompten ubevægelig, så vi ved ikke hvad der sker, og hvor meget tid der er tilbage til at afslutte udførelsen. Denne mindre ulempe kan løses ved at tilføje kommandoen pv, (*) - som fungerer som et terminalrør, der måler de data, der passerer igennem det - til syntaksen for dd-kommandoen, så syntaksen nu ville være:

dd if=origen |pv|dd of=destino

Som et resultat ville vi opnå en slags statuslinje i terminalen, oplysningerne om overførte bytes, den tid den har kørt og overførselshastigheden, alt i realtid.

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

Derudover viser det os statistikker over overførselshastigheden, den samlede overførte byte og den samlede tid, det tog at overføre alle data, når den er færdig.

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

(*) Kontroller inden du udfører en kommandolinje med denne anden syntaks, at vi har pv-pakken installeret på systemet, eller installer den, hvis vi ikke har den: begge med Synaptic.

Lad os se nogle praktiske eksempler og muligheder for denne kommando (i sin version med det trick, der tidligere er forklaret med pv-kommandoen):

A) Om harddiske og partitioner:

= Klon en harddisk:

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

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

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

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

Med indstillingen bs = 1M opnås det, at både læsning og skrivning udføres i 1 megabyte blokke (mindre ville det være langsommere, men mere sikkert, og med mere risikerer vi at miste data undervejs).

Husk, at på denne måde optages disken "som den er", MBR, partitionstabel, tom plads osv ..., så du kun kan optage på en disk af samme eller større størrelse.

= Skriv kun den første partition (hda1) på kildedisken til destinationsdisken (hdb):

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

= Brænd hele disken (hda) til den første partition (hdb1) på destinationsdisken:

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

= Opret et billede - kan være bin eller iso - fra harddisken (hda) i / home-biblioteket:

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

= Slet information på en disk fuldstændigt: For at gøre dette skal du udfylde disken med tilfældige tegn fem gange. Der vil ikke være spor af information på disken:

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

= Slet enhver partition og hele disken fra enhver enhed:

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (Fuld disk sletning)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (Sletning af diskpartition)

hvor: x er den disk, der skal slettes, a er den partition, der skal slettes

Denne handling er meget nyttig til fuldstændig at slette enhver partition, desuden kan de data, der slettes ikke gendannes, derfor er det en lav sletning og meget sikker sletning, meget nyttig for eksempel når pendrives bliver inficeret med vira med vores kære windows .

B) På en CD / DVD

= Opret / monter et .iso-billede fra en CD (eller DVD)

Sådan oprettes .iso-billedet af en cd i / home-biblioteket:

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

Sådan monteres .iso-billedet fra cd'en:

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

= Gendan en ridset DVD (Dette gendanner ikke hele DVD'en, i dette tilfælde kun de læsbare sektorer). Det er også velegnet til defekte harddiske:

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

Noerror-funktionen tjener til at undgå læsefejl i enhver situation.

C) Om MBR og VBS:

= Copy / Restore Master Boot Record (MBR):

Sådan kopieres MBR:

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

Sådan gendannes MBR:

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

= Rens vores MBR og partitionstabel:

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

= Rydder MBR men rører ikke ved partitionstabellen (meget nyttigt at slette GRUB uden at miste data om partitionerne):

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

= Kopi / gendan Boot Boot Sector (VBS):

Sådan kopieres VBS:

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

Sådan gendannes VBS:

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

D) Andre:

= Brænd et diskbillede til vores / hjemmekatalog, spring over diskfejl (meget nyttigt for diske, der er ved at dø):

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

= Opret en tom 1 Mb fil:

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

= Opret en 2Gb swap-fil:

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

= Konverter alle bogstaver til store bogstaver:

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

Brug dd-kommandoen med et grafisk miljøprogram: Gdiskdump er et grafisk miljø for denne dd-kommando, der letter opgaven med klon partitioner eller diske, hurtigt og nemt. Det kan downloades fra siden https://launchpad.net/gdiskdump/ Når vi åbner det med rodtilladelser - sudo gdiskdump - ser vi, at programmet er meget let at bruge, da vi kun skal fortælle det partitionen eller disken, der skal klones (Input Format) og dens destination (Output Format).


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   sieg84 sagde han

    Jeg blev næsten diabetiker med misbrug af dd-kommandoen.
    forresten, hvad ville være forskellen med dd_rescue?

    1.    nogensinde sagde han

      ddrescue stopper som standard ikke ved læsefejl og prøver på forskellige måder at gendanne ulæselige oplysninger.

    2.    Sheko sagde han

      hahahha Jeg brugte også dd-kommandoen meget dårligt, den er meget kraftigere end jeg troede.

  2.   rådner87 sagde han

    Jeg kommenterer, at jeg mener, at hver buebrug på et eller andet tidspunkt har brugt

  3.   Alf sagde han

    @ sieg84, forskellen er, at dd blev afbrudt med en eller anden læsning eller enhedsfejl, i dette tilfælde vil dette ikke ske, da den beskadigede blok vil læse den et bestemt antal gange og fortsætte med den næste, det giver også den fordel, at Vi kan køre det flere gange på det samme billede, og det starter ikke fra bunden, men prøver at færdiggøre det.

    Det er værd at nævne, at dd_rescue jeg aldrig har brugt det.

    1.    Debianiten Merlin sagde han

      Hvis der er lavet nogen GUI i qt til KDE, der bruger denne kommando? eller skal jeg træde tilbage.?

      1.    Juli sagde han

        Gdiskdump er mere end en GUI for denne kommando (den er baseret på den), og selvom jeg ikke ved, om de gjorde det i qt (tror jeg ikke), fungerer det næsten helt sikkert for dig i KDE

    2.    sieg84 sagde han

      tak for afklaringen.
      Jeg har kun brugt dd_rescue til at kopiere ISO til USB (hovedsagelig fordi de i openSUSE wiki havde det).
      dd_rescue tu.iso / dev / sdX
      hvad jeg kan lide er, at det viser en statuslinje:
      http://box.jisko.net/i/110db781.png

  4.   krel sagde han

    Alfa:
    Jeg så for nylig det samme indlæg udgivet på Hatteras-bloggen. Det er sandsynligt, at han ikke tager det på den forkerte måde, men jeg ved det ikke, i det mindste som en høflighed ville det være godt at henvise til det. Så også han vinder inden for webpositionering.

    Jeg vil ikke skabe et dilemma med dette, men ved første øjekast virker artiklen 95% identisk bortset fra de terminale skærmbilleder, som du har tilpasset. Han nævnte endda sine kilder.

  5.   Debianiten Merlin sagde han

    Interessant Jeg indrømmer, at | pv | kendte ham ikke.

    Krel Jeg tror, ​​kilden er i ubuntu wiki eller buehilsener.

  6.   Alf sagde han

    @krel, linux-tingen er dette:

    Gennem min rejse i denne verden har jeg læst og samlet ting, jeg har en notesbog med mere end 400 indlæg, som jeg placerede i Ubuntu Mexico, som var det samfund, hvor jeg bidrog mest i mine tidlige dage, desværre kan ting gentages, hvis du gennemgår den store mængde post på nettet, de er næsten i samme rækkefølge, sagen er, at de fleste er kortere.

    Jeg kan offentliggøre yderligere 5 indlæg i ugen, og du kan finde andre lignende eller det samme, årsagen? ubuntu har flest fora / blogs på nettet.

    Jeg tror på ingen måde, at der vil være et dilemma, og hvis administratorerne overvejer at slette det, ville det slet ikke fornærme eller genere mig, jeg overholder reglerne og det, der følger, blandt mine noter 8 om, at jeg ikke har dem i orden) Jeg ønsker at tilføje noget for at undgå tilfældighed.

    hilsen

    1.    krel sagde han

      Det er ikke noget mysterium for nogen, at højst kun 10% af det indhold, der genereres på nettet, er nyt. Med hvilke de andre 90 er indhold duplikeret, fornyet eller reddet, og jeg siger ikke, at dette er mindre vigtigt, tværtimod er det en form for formidling af viden.

      Men hvor jeg stopper er noget andet. Når du har en blog af denne type, er der en personlig motivation til at hjælpe og måske endda modtage anerkendelse for den. Samtidig er jeg sikker på, at flertallet af dem, der skriver indhold om fri software, er enige i ideen om deling. Lad os dog ikke glemme, at selv de ædleste licenser som BSD beder om anerkendelse.

      Henvisningerne er også en måde, hvorpå nogle søgemaskiner som google forbedrer placeringen af ​​et websted. Jeg siger bare, da materialet blev brugt som et minimum af taknemmelighed, ville jeg henvise til det arbejde.

      Jeg synes det er dejligt at du deler, men hvad taber du ved at lave en reference? Tænk bare, hvis indholdet af denne fra en anden blog med bedre positionering end denne ville blive duplikeret. desdelinux Uden at henvise til det, ville de i sidste ende begrave denne blog.

      Hatteras offentliggjorde den for 10 dage siden, og medmindre han har taget den ud af din notesbog, eller du er Luis Puente, kan jeg ikke forstå, hvad du siger, det er, at næsten alt er tekstmæssigt. Usandsynligt, men ikke umuligt.

      Men intet, at denne slags ting sker. Og jeg ved det ikke, for personlig etik og for samarbejde med en anden kollega vil jeg henvise til ham. Det er op til dig, jeg tror heller ikke, at Hatteras tager den forkerte vej, tværtimod.

      1.    MSX sagde han

        Det er sandt, det er en ægte kopi af dette indlæg: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/

  7.   Den før sagde han

    Hmm ... Jeg lavede en dd if = file.iso af = / media / harddisk ... ved en fejltagelse 😛
    nogen måde at gendanne filer fra harddisken ???

    1.    Elav sagde han

      Du kan bruge Testdisk

    2.    Debianiten Merlin sagde han

      Måske har en ven sendt mig videre med testdisk eller med en live distro, der er specialiseret i at redde data. Min anbefaling om at lave en sikkerhedskopi til næste gang, da jeg bruger denne kommando, er noget delikat i mine rookiedage for at formatere hele harddisken uden at skulle og nu for at genstarte godt …… Det er overflødigt at sige, at hverken grub startede.

  8.   Raul sagde han

    Kan nogen fortælle mig, hvilken kommando jeg skal bruge til at se kopieringsforløbet med dd-kommandoen, hvad jeg mener er at se en statuslinje med det%, der har kopieret.

    slds

    1.    Juli sagde han

      Ven! tilføje kommandoen pv. I dette samme indlæg siger han det næsten i starten og forklarer, hvordan man bruger det. Læs det igen

  9.   pedro sagde han

    ved hjælp af denne kommando:
    dd hvis = / dev / sdc | bzip2> /media/Elements/iso.gz
    Det er lykkedes mig at lave et iso-billede af en 16 GB disk og gemme den på en 400 GB disk.
    Men jeg ved ikke, hvad kommandoen ville være at gendanne billedet til den originale 16 GB disk eller til en anden med samme kapacitet

  10.   Luis Rodriguez sagde han

    et spørgsmål

    brug denne kommando til
    for n i {1..5}; gør dd hvis = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc;
    til en 2 TB disk
    så bliver jeg i konsollen sådan noget
    >
    Skal jeg køre en anden kommando, eller hvor lang tid kan processen tage?

    tak og fortsæt

    1.    Jazzb sagde han

      Der er en tastefejl i for ... mangler i slutningen af ​​linjen «; færdig »opholdt sig« i n i {1..5}; gør dd hvis = / dev / urandom | pv | dd af = / dev / hda bs = 8b conv = notrunc; Færdig "

  11.   henry salazar sagde han

    meget god artikel… ..Jeg vil sætte den i praksis… hilsen kammerat

  12.   Marcos_tux sagde han

    Meget nyttigt, det hjalp mig meget tak

  13.   EDFR sagde han

    God Alf. Tak for info.

    Et spørgsmål. Er der en måde at kun kopiere en del af kildedisken på? Sagen er, at hvis jeg har en 120 GB-disk, hvor kun 25 GB bruges, og jeg vil lave en kopi til en 40 GB-disk, ville jeg kun være interesseret i at kopiere det brugte rum (25 GB), er der en måde med denne kommando?
    På forhånd tak.

    1.    yukiteru sagde han

      Det ville være bedre for dig at bruge rsync, med kommandoen rsync -av / sti / til / oprindelse / sti / til / skæbne, ville du allerede sikkerhedskopiere alle dine tilladelser med deres tilsvarende tilladelser.

    2.    yukiteru sagde han

      Jeg mente: "alle dine filer med deres tilsvarende tilladelser"

  14.   FOXSPY sagde han

    Kære, ved nogen, hvorfor når de besætter dd-kommandoen, når den kun 4.2 GB og indikerer, at filen er meget stor? Det er et billede af en 250 GB disk og går til en 1 TB ekstern disk.

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

    1.    Bortføreren sagde han

      4Gb-fejlen giver dig det, fordi du prøver at lave en sikkerhedskopi i en partition med fs FAT16

  15.   Bern sagde han

    Hvilken god blog. Meget nyttig indgang. Jeg havde allerede set brugen af ​​denne kommando andetsteds, men de forklarede slet ikke noget. Tak skal du have.

  16.   Carlos Torres sagde han

    hej jeg har en injektionsmaskine, hvor programmet gik tabt, da de udskiftede bios-stakken, vi har ikke sikkerhedskopi, men vi har en anden samme maskine, den har kun floppy og seriel og parallel port, hvordan kan jeg lave en backup af denne maskine for at indlæse den i den anden, håber jeg, du kan hjælpe mig tak

  17.   ernesto sagde han

    Jeg vil bare kopiere en partition uden at starte fra LIVE CD. For eksempel har jeg en disk med / dev / sda1, / dev / sda5, / dev / sda6, og jeg vil lave en kopi til / dev / sda5 fra en anden disk / dev / sdb1

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

  18.   Peter Lobato sagde han

    Hej, hvordan går det. Jeg bor også i Guadalajara.
    Din artikel om DD-kommandoen er meget interessant. Jeg vil prøve nogle Linux-distributioner, specifikt Archlinux, men jeg har ikke været i stand til at bruge DD-kommandoen og kopiere Archilinux ISO, som jeg allerede har downloadet, på en USB-stick. Jeg ved ikke, om du kan give mig et kryds for at starte med dette. Tak, Pedro lobato

  19.   Victor sagde han

    Fordi når en iso er optaget med kommandoen "dd", bruges den kun til at starte på nogle pc'er?
    Exp. Jeg har 2 bærbare computere, og ingen af ​​dem støtter iso for nogen Linux-distribution; men tværtimod starter den på en gammel stationær pc med inaktiv disk

    1.    seb sagde han

      Det bedste er at spille det sikkert ved hjælp af unetbootin, med dd har jeg også været tilbage med spørgsmålet om, hvorfor det nogle gange ikke fungerer.

      1.    Elav sagde han

        Jeg tror ikke, det afhænger af DD, men af ​​ISO. Den samme ting med Unetbootin, det fungerer ikke godt med alle distributioner.

  20.   Victor sagde han

    Nogle gange fungerer det på alle pc'er, men du skal tilføje mbr og syslinux til usb til processen; men dette er langt og kedeligt.
    Den lette del om unetbooting

    Vær forsigtig: det er ikke iso eller dd for mig, det er den måde, du optager det på.

  21.   danny sagde han

    Jeg er i tvivl om jeg bruger denne kommando:
    sudo dd hvis = / dev / nul af = / dev / diskdrive
    I stedet for dette er formateringen på lavt niveau den samme eller tager længere tid end dette:
    sudo dd hvis = / dev / nul af = / dev / diskdrive bs = 1M ..

  22.   arg0s sagde han

    Kan dd-kommandoen bruges til at slette en bestemt fil?

    for eksempel

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

  23.   arg0s sagde han

    med bs = 1M bliver det hurtigere

  24.   alex sagde han

    Og hvis jeg skal lave en nøjagtig kopi fra en disk til en anden med alle dens partitioner (swap, sda ...) og begge diske er de samme, men den ene er på pc'en og den anden på en NAS over netværket? ?
    tak

  25.   Gerardo sagde han

    En kommentar, jeg bruger den med status = fremskridt i slutningen, og jeg har ikke brug for pv, så debian fungerer meget godt for mig at se fremskridtene.
    Og det andet er der en måde at få kun dataene og ikke hele enheden, da hvis det er en 2 TB disk, og jeg kun bruger 100 GB, har jeg brug for al den plads. Er der en måde at bare sikkerhedskopiere den 100 GB på? Og når jeg sender det til et andet medium, kan det være en mindre disk måske en på 500?

  26.   Alexander sagde han

    Hjælp !!!
    Udfør kommandoen
    dd hvis = cbpp-9.0-amd64-20170621.iso af = / dev / sdb

    alt godt ... men nu vil jeg bruge usb som en lagerenhed og ...

    USB'en er ikke monteret, den vises ikke engang i GParted.

    Ved nogen, hvad jeg kan gøre.

    PS: hvilket ville være det bedste program til at gendanne oplysninger fra diske og CD DVD'er….

    1.    Anonymous sagde han

      du skal re partitionstest med fdisk