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).
Jeg blev næsten diabetiker med misbrug af dd-kommandoen.
forresten, hvad ville være forskellen med dd_rescue?
ddrescue stopper som standard ikke ved læsefejl og prøver på forskellige måder at gendanne ulæselige oplysninger.
hahahha Jeg brugte også dd-kommandoen meget dårligt, den er meget kraftigere end jeg troede.
Jeg kommenterer, at jeg mener, at hver buebrug på et eller andet tidspunkt har brugt
@ 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.
Hvis der er lavet nogen GUI i qt til KDE, der bruger denne kommando? eller skal jeg træde tilbage.?
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
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
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.
Interessant Jeg indrømmer, at | pv | kendte ham ikke.
Krel Jeg tror, kilden er i ubuntu wiki eller buehilsener.
@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
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.
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/
Hmm ... Jeg lavede en dd if = file.iso af = / media / harddisk ... ved en fejltagelse 😛
nogen måde at gendanne filer fra harddisken ???
Du kan bruge Testdisk
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.
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
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
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
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
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 "
meget god artikel… ..Jeg vil sætte den i praksis… hilsen kammerat
Meget nyttigt, det hjalp mig meget tak
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.
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.
Jeg mente: "alle dine filer med deres tilsvarende tilladelser"
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
4Gb-fejlen giver dig det, fordi du prøver at lave en sikkerhedskopi i en partition med fs FAT16
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.
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
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 ????
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
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
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.
Jeg tror ikke, det afhænger af DD, men af ISO. Den samme ting med Unetbootin, det fungerer ikke godt med alle distributioner.
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å.
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 ..
Kan dd-kommandoen bruges til at slette en bestemt fil?
for eksempel
dd if = / dev / urandom of = / home / myfile delete
med bs = 1M bliver det hurtigere
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
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?
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….
du skal re partitionstest med fdisk