Korištenje naredbe dd

Naredba dd (Definicija skupa podataka) jednostavan je, koristan i iznenađujuće jednostavan alat; Ovim alatom možete učiniti samo na uređajima: diskovima i particijama, kao i kod komercijalnih programa poput Norton Ghost, na Windowsima ili besplatnim programima poput CloneZille na Linuxu, i to samo kratkim naredbenim retkom.

Osnovna sintaksa:

Najosnovnija sintaksa za upotrebu naredbe dd bila bi sljedeća:

sudo dd if=origen of=destino

gdje ako znači "ulazna datoteka = ulazna datoteka“, Odnosno ono što želite kopirati i sredstava "izlazna datoteka = izlazna datoteka“, Odnosno odredišna datoteka (gdje će se podaci kopirati);podrijetlo i Odredište mogu biti uređaji (CD ili DVD čitač, tvrdi disk, disketa, pendrive, particija itd.), Sigurnosna kopija datoteke ili slike diska itd., Ali ne i mape ili podmape.

Za nesmetanu upotrebu ove naredbe, prvo je uvijek jasno kako se particije / tvrdi diskovi nazivaju u Linuxu (na primjer / dev / sda1; / dev potječe od device = device, na engleskom). kako bismo saznali izvorni i odredišni disk / particiju, nešto što lako možemo saznati naredbom sudo fdisk -lo s nekim grafičkim particijskim programom poput gparted. Sve informacije o naredbi dd potražite kod naredbe man dd i info dd,

Ovu naredbu treba koristiti s oprezom i uvijek provjeravati redoslijed i naziv diskova / particija, jer kao što je disk kloniran, on ga u trenu briše.

Sintaksa s naredbom pv: Korištenje naredbe dd s prethodnom sintaksom ima mali nedostatak, jer je vrlo rezervirana naredba - ne daje informacije - jer kada se izvrši, terminalski upit ostaje nepomičan, pa ne znamo što se događa i koliko je vremena ostalo da se izvrši. Ovu manju neugodnost moguće je riješiti dodavanjem naredbe pv, (*) - koja djeluje kao terminalna cijev koja mjeri podatke koji kroz nju prolaze - u sintaksu naredbe dd, tako da bi sada sintaksa bila:

dd if=origen |pv|dd of=destino

Kao rezultat, dobili bismo neku vrstu trake napretka na terminalu, podatke o bajtovima koji se prenose, vremenu provedenom i brzini prijenosa, sve u stvarnom vremenu.

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

Također po završetku prikazuje nam statistiku brzine prijenosa, ukupnog broja prenesenih bajtova i ukupnog vremena potrebnog za prijenos svih podataka.

(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd od = / dev / mmcblk0p2 10530816 + 0 pročitanih zapisa <=> 10530816 + 0 zapisanih zapisa 5391777792 bajta (5.4 GB) kopirano, 3873,48 s, 1,4 MB / s 5,02 GB 1:04:33 [1,33 MB / s] [<=> 10530816 + 0 pročitanih zapisa <=> 10530816 + 0 zapisanih zapisa 5391777792 bajta (5.4 GB) kopirano, 3873,48, 1,4 s, XNUMX MB / s (alf) - (~) └──┤

(*) Prije izvođenja bilo kojeg naredbenog retka s ovom drugom sintaksom provjerite je li na sustav instaliran pv paket ili ga instalirajte ako ga nemamo: oboje sa Synapticom.

Pogledajmo nekoliko praktičnih primjera i opcija ove naredbe (u njenoj verziji s trikom koji je gore objašnjen s naredbom pv):

A) O tvrdim diskovima i particijama:

= Kloniranje tvrdog diska:

Ovim bismo klonirali hda disk u hdb. (IDE diskovi):

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

Ovim bismo klonirali sda disk u sdb. (SATA diskovi):

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

Opcijom bs = 1M postiže se da se i čitanje i pisanje obavljaju u blokovima od 1 megabajta, (manje, bilo bi sporije, ali sigurnije, a s više riskiramo gubitak podataka na putu).

Imajte na umu da se na taj način disk snima "kakav jest", MBR, tablica particija, prazan prostor itd., Tako da možete snimati samo na disk iste ili veće veličine.

= Napišite samo prvu particiju (hda1) izvornog diska na odredišni disk (hdb):

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

= Snimite cijeli disk (hda) na prvu particiju (hdb1) odredišnog diska:

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

= Stvorite sliku - može biti bin ili iso - s tvrdog diska (hda), u / home direktoriju:

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

= Potpuno izbrišite podatke s diska: da biste to učinili, napunite disk slučajnim znakovima pet puta. Na disku neće biti traga informacijama:

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

= Izbrišite bilo koju particiju i cijeli disk s bilo kojeg uređaja:

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (Potpuno brisanje diska)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (Brisanje particije diska)

gdje je: x disk za brisanje, a particija za brisanje

Ova je operacija vrlo korisna za potpuno brisanje bilo koje particije, osim toga podaci koji će se izbrisati ne mogu se povratiti, stoga je to vrlo nisko i vrlo sigurno brisanje, vrlo korisno, na primjer kada se pendrive zaraze virusima s našim dragim prozorima .

B) Na CD-u / DVD-u

= Stvori / montiraj .iso sliku s CD-a (ili DVD-a)

Da biste stvorili .iso sliku CD-a u direktoriju / home:

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

Da biste montirali .iso sliku s CD-a:

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

= Oporavak ogrebotina DVD-a (Ovo neće oporaviti cijeli DVD, u ovom slučaju samo čitave sektore). Također je pogodan za neispravne tvrde diskove:

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

Opcija noerror koristi se za izbjegavanje pogrešaka u čitanju u bilo kojoj situaciji.

C) O MBR i VBS:

= Kopiraj / vrati glavni zapis pokretanja (MBR):

Da biste kopirali MBR:

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

Da biste vratili MBR:

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

= Očistite našu MBR i tablicu particija:

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

= Očistite MBR, ali ne dodirujte tablicu particija, (vrlo korisno izbrisati GRUB bez gubitka podataka na particijama):

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

= Kopiraj / obnovi sektor za podizanje glasnoće (VBS):

Da biste kopirali VBS:

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

Da biste vratili VBS:

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

D) Ostalo:

= Snimite sliku diska u naš / home direktorij, preskačući pogreške na disku (vrlo korisno za diskove koji umiru):

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

= Stvorite praznu datoteku od 1 Mb:

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

= Stvorite swap datoteku od 2Gb:

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

= Pretvori sva slova u velika slova:

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

Koristite naredbu dd s programom za grafičko okruženje: Gdiskdump, je grafičko okruženje za ovu naredbu dd koje olakšava zadatak klonirati particije ili diskove, brzo i jednostavno. Može se preuzeti sa stranice https://launchpad.net/gdiskdump/ Jednom kad ga otvorimo, s root dopuštenjima - sudo gdiskdump -, vidimo da je program vrlo jednostavan za upotrebu, jer mu samo moramo reći particiju ili disk da ga kloniraju (Input Format) i njegovo odredište (Output Format).


43 komentara, ostavi svoj

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   sieg84 dijo

    Skoro sam postao dijabetičar zlouporabom naredbe dd.
    usput, koja bi bila razlika s dd_rescue?

    1.    ikad dijo

      ddrescue se prema zadanim postavkama ne zaustavlja na pogreškama čitanja i pokušava na različite načine oporaviti nečitljive informacije.

    2.    Šeko dijo

      hahahha Također sam vrlo loše koristio naredbu dd, puno je moćnija nego što sam mislio.

  2.   Truleži87 dijo

    Komentiram da vjerujem da je svaki korisnik luka u nekom trenutku koristio

  3.   Alf dijo

    @ sieg84, razlika je u tome što je dd prekinut nekom greškom očitavanja ili uređaja, u ovom slučaju to se neće dogoditi jer će ga oštećeni blok pročitati određeni broj puta i nastaviti sa sljedećim, također pruža prednost u tome što Možemo ga pokrenuti nekoliko puta na istoj slici i neće započeti ispočetka, već će ga pokušati dovršiti.

    Vrijedno je spomenuti da dd_rescue nikada ga nisam koristio.

    1.    merlin debianite dijo

      Ako postoji neki GUI izrađen u qt za KDE koji koristi ovu naredbu? ili moram dati ostavku.?

      1.    Srpanj dijo

        Gdiskdump je više od GUI-ja za ovu naredbu (na njoj se temelji) i premda ne znam jesu li to učinili u qt-u (mislim da ne), gotovo sigurno radi za vas u KDE-u

    2.    sieg84 dijo

      hvala na pojašnjenju.
      Samo sam dd_rescue koristio za kopiranje ISO-a na USB (ponajviše zato što su ga imali u wikiju openSUSE).
      dd_rescue tu.iso / dev / sdX
      ono što mi se sviđa je to što prikazuje traku napretka:
      http://box.jisko.net/i/110db781.png

  4.   krel dijo

    Alfa:
    Nedavno sam vidio ovaj isti post objavljen na blogu Hatteras. Vjerojatno je da to ne podnosi loše, ali ne znam, barem bi iz ljubaznosti bilo dobro pozvati se na to. Također pobjeđuje u web pozicioniranju.

    Ne želim s tim stvarati dilemu, ali na prvi pogled članak se čini 95% identičnim, osim snimki zaslona terminala koje ste prilagodili. Čak je spomenuo i svoje izvore.

  5.   merlin debianite dijo

    Zanimljivo priznajem da | pv | nije ga poznavao.

    Krel Mislim da je izvor u ubuntu wikiju ili pozdravima u obliku luka.

  6.   Alf dijo

    @krel, stvar s linuxom je sljedeća:

    Tijekom svog putovanja po ovom svijetu čitao sam i sakupljao stvari, imam bilježnicu s više od 400 postova koje sam stavio u Ubuntu Mexico, koja je bila zajednica u kojoj sam najviše doprinio u svojim ranim danima, nažalost stvari se mogu ponoviti, ako pregledate veliki iznos na netu, oni su gotovo istim redoslijedom, stvar je u tome da je većina kraća.

    Mogu objaviti još 5 postova u tjednu, a vi možete pronaći druge slične ili iste, razlog? Ubuntu ima najviše foruma / blogova na mreži.

    Ni u kom slučaju ne mislim da će biti dileme i ako me administratori razmotre izbrisati, to me uopće ne bi vrijeđalo ili smetalo, pridržavam se pravila i onoga što slijedi, među mojim bilješkama 8 da ih nemam redom) Želim dodati nešto kako bih izbjegao slučajnost.

    pozdravi

    1.    krel dijo

      Nikome nije tajna da je najviše samo 10% sadržaja generiranog na webu novo. S kojima se ostalih 90 duplicira, obnavlja ili spašava, i ne kažem da je to manje važno, već naprotiv, to je oblik širenja znanja.

      Međutim, gdje se zaustavim, nešto je drugo. Kad imate blog ove vrste, postoji osobna motivacija da pomognete, a možda čak i dobijete priznanje za to. Istodobno sam siguran da se većina onih koji pišu sadržaj o Slobodnom softveru slažu s idejom dijeljenja. Međutim, ne zaboravimo da čak i najplemenitije licence poput BSD-a traže priznanje.

      Također, reference su način na koji neke tražilice poput google poboljšavaju pozicioniranje web stranice. Samo kažem, budući da je materijal korišten kao minimalna zahvalnost, pozvao bih se na to djelo.

      Me parece genial que compartas pero, ¿Que pierdes por hacer una referencia? Solo piensa si desde otro blog con mejor posicionamiento que este se duplicaran los contenidos de desdelinux sin referenciarlo, al final sepultarían a este blog.

      Hatteras ga je objavio prije 10 dana i ako ga nije izvadio iz vaše bilježnice ili ste Luis Puente, ne mogu objasniti što mi kažete, gotovo je sve tekstualno. Malo vjerojatno, ali ne i nemoguće.

      Ali ništa, da se takve stvari događaju. I ne znam, zbog osobne etike i zbog suradnje s drugim kolegom, pozvao bih se na njega. To ovisi o vama, mislim da ni Hatteras ovo ne shvaća pogrešno, već upravo suprotno.

  7.   Onaj prije dijo

    Hmm ... Napravio sam dd if = file.iso = / media / hard disk ... greškom 😛
    bilo koji način za oporavak datoteka s tvrdog diska ???

    1.    živo dijo

      Možete koristiti Testdisk

    2.    merlin debianite dijo

      Možda mi se prijatelj dogodio s testdiskom ili sa specijaliziranim distro distribucijom uživo za spašavanje podataka. Moja preporuka da napravim sigurnosnu kopiju za sljedeći put otkako sam upotrijebio tu naredbu nešto je osjetljivo u mojim početničkim danima za formatiranje cijelog tvrdog diska, a da to nisam želio, a sada za dobro ponovno pokretanje ...... Nepotrebno je reći, niti je grub počeo.

  8.   Raul dijo

    Može li mi netko reći koju naredbu da upotrijebim da bih vidio napredak kopiranja s naredbom dd, mislim na to da vidim traku napretka s% koji je kopirao.

    slds

    1.    Srpanj dijo

      Prijatelju! dodavanjem naredbe pv. U ovom istom postu to govori gotovo na početku i objašnjava kako ga koristiti. Pročitajte ponovo

  9.   Pedro dijo

    pomoću ove naredbe:
    dd ako = / dev / sdc | bzip2> /media/Elements/iso.gz
    Uspio sam napraviti iso sliku diska od 16 Gb i spremiti je na disk od 400 Gb.
    Ali ne znam koja bi bila naredba za vraćanje te slike na izvorni disk od 16 GB ili na drugi s istim kapacitetom

  10.   Luis Rodriguez dijo

    pitanje

    koristite ovu naredbu za
    za n u {1..5}; učiniti dd ako = / dev / urandom | pv | dd od = / dev / hda bs = 8b conv = notrunc;
    za disk od 2TB
    onda ostanem u konzoli tako nešto
    >
    Trebam li pokrenuti drugu naredbu ili koliko dugo postupak može trajati?

    hvala i dalje

    1.    Jazb dijo

      Postoji pogreška pri upisu za ... nedostaje na kraju retka «; gotovo »ostalo« za n u {1..5}; učiniti dd ako = / dev / urandom | pv | dd od = / dev / hda bs = 8b conv = notrunc; gotovo »

  11.   Henry Salazar dijo

    vrlo dobar članak ... .. provest ću ga u praksi ... pozdrav prijatelju

  12.   Marcos_tux dijo

    Vrlo korisno, puno mi je pomoglo zahvaljujući

  13.   EDFR dijo

    Dobri Alf. Hvala na informaciji.

    Pitanje. Postoji li način kopiranja samo dijela izvornog diska? Slučaj je da, ako imam disk od 120 Gb na kojem se koristi samo 25 Gb i želim kopirati na disk od 40 Gb, zanimalo bi me samo kopiranje korištenog prostora (25 Gb), postoji li način s ovom naredbom ?
    Hvala unaprijed.

    1.    yukiteru dijo

      Bilo bi vam bolje da koristite rsync, naredbom rsync -av / path / to / origin / path / to / destiny već biste sigurnosno kopirali sva svoja dopuštenja s pripadajućim dozvolama.

    2.    yukiteru dijo

      Mislio sam: "sve vaše datoteke s pripadajućim dozvolama"

  14.   FOXSPY dijo

    Poštovani, zna li netko zašto kada zauzima naredbu dd, ona doseže samo 4.2 GB i označava da je datoteka vrlo velika? To je slika diska od 250 GB i ide na vanjski disk od 1 TB.

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

    1.    Otmičar dijo

      Pogreška 4Gb vam je daje, jer pokušavate napraviti sigurnosnu kopiju na particiji s fs FAT16

  15.   Berna dijo

    Kakav dobar blog. Vrlo koristan unos. Već sam vidio upotrebu ove naredbe negdje drugdje, ali uopće nisu ništa objasnili. Hvala vam.

  16.   Carlos Torres dijo

    bok, imam stroj za ubrizgavanje u kojem je program izgubljen otkako su zamijenili bios stog, nemamo sigurnosnu kopiju, ali imamo još jedan isti stroj, ima samo disketu, serijski i paralelni port, kako mogu napraviti sigurnosnu kopiju ovog stroja da ga učitam u drugi, nadam se da mi možete pomoći hvala

  17.   Ernesto dijo

    Samo želim kopirati particiju bez pokretanja sa LIVE CD-a. Na primjer, imam disk s / dev / sda1, / dev / sda5, / dev / sda6 i želim kopirati na / dev / sda5 s drugog diska / dev / sdb1

    naredba je dd ako = / dev / sdb1 od = / dev / sda5 bs = 1M ????

  18.   Petar Lobato dijo

    Bok, kako si. Također živim u Guadalajari.
    Vaš je članak o naredbi DD vrlo zanimljiv. Želim isprobati neke Linux distribucije, posebno Archlinux, ali nisam uspio upotrijebiti DD naredbu i kopirati Archilinux ISO koji sam već preuzeo na USB stick. Ne znam možete li mi dodati kvacku da započnem s ovim. Hvala ti, Pedro lobato

  19.   pobjednik dijo

    Zašto kada je iso snimljen naredbom "dd", služi samo za pokretanje na nekim računalima?
    Isk. Imam 2 prijenosna računala i niti jedan ne pokreće iso bilo koje linux distribucije; već se naprotiv pokreće na starom stolnom računalu s neaktivnim diskom

    1.    seb dijo

      Najbolje je igrati se na siguran način koristeći unetbootin, a kod dd mi je također ostalo pitanje zašto ponekad to ne uspije.

      1.    živo dijo

        Mislim da to ne ovisi o DD već o ISO. Ista stvar s Unetbootinom, ne funkcionira dobro sa svim distribucijama.

  20.   pobjednik dijo

    Ponekad to radi na svim računalima, ali u proces morate dodati mbr i syslinux na usb; ali ovo je dugo i zamorno.
    Jednostavan dio o unetbootiranju

    Budite oprezni: to za mene nije iso ili dd, to je način na koji to snimate.

  21.   danny dijo

    Sumnjam da li koristim ovu naredbu:
    sudo dd ako = / dev / nula od = / dev / diskdrive
    Umjesto toga, oblikovanje na niskoj razini je isto ili traje duže od ovog:
    sudo dd ako = / dev / nula od = / dev / diskdrive bs = 1M ..

  22.   arg0s dijo

    Može li se naredba dd koristiti za brisanje određene datoteke?

    na primjer

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

  23.   arg0s dijo

    s bs = 1M postaje brži

  24.   alex dijo

    A ako ću napraviti točnu kopiju s jednog diska na drugi, sa svim particijama (swap, sda ...) i oba diska jednaka, ali jedan je na računalu, a drugi na NAS-u preko mreže? ???
    hvala

  25.   Gerardo dijo

    Komentar, koristim ga sa status = progress na kraju i ne treba mi pv, tako da debian dobro funkcionira da vidim napredak.
    I drugo, postoji li način da se dobiju samo podaci, a ne cijela jedinica, jer ako je riječ o disku od 2 TB i ako koristim samo 100 GB, potreban mi je sav taj prostor. Postoji li način da napravite sigurnosnu kopiju tih 100 GB? A kad ga proslijedim na drugi medij, to bi mogao biti manji disk, možda jedan od 500?

  26.   Aleksandar dijo

    Pomozite !!!
    Izvršite naredbu
    dd if = cbpp-9.0-amd64-20170621.iso od = / dev / sdb

    sve u redu ... ali sada želim koristiti usb kao jedinicu za pohranu i ...

    USB nije montiran, čak se ne pojavljuje ni u GPartedu.

    Zna li netko što mogu učiniti.

    PS: koji bi bio najbolji program za oporavak podataka s diskova i CD DVD-a ....

    1.    anoniman dijo

      morate ponoviti test particije s fdiskom