Korištenje naredbe dd

Naredba dd (Definicija skupa podataka) jednostavan je, koristan i iznenađujuće jednostavan alat; Pomoću ovog alata možete učiniti isto na uređajima: diskovima i particijama, kao i kod komercijalnih programa poput Norton Ghost, na Windowsima ili besplatnim programima poput CloneZille, na Linuxu, samo kratkom naredbenom linijom.

Osnovna sintaksa:

Najosnovnija sintaksa za upotrebu naredbe dd bila bi ova:

sudo dd if=origen of=destino

Gde 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);porijeklo i Odredište mogu biti uređaji (CD ili DVD čitač, tvrdi disk, disketa, privjesak, particija itd.), Sigurnosna kopija datoteke ili slike diska itd., Ali ne i mape ili podmape.

Za nesmetanu upotrebu ove naredbe, prva stvar je uvijek biti jasna oko toga koje se particije / tvrdi diskovi nazivaju u Linuxu (/ dev / sda1 na primjer; / dev potječe od device = device, na engleskom). da 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 možete pogledati kod naredbe man dd i info dd,

Ovu naredbu treba koristiti s oprezom i uvijek provjeravati redoslijed i ime diskova / particija, jer kao što je disk kloniran, on ga u trenutku 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 šta 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, informacije o prebačenim bajtovima, vremenu provedenom i brzini prijenosa, sve u realnom vremenu.

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

Pored toga, kada je završen, prikazuje nam statistiku brzine prijenosa, ukupnog broja prebačenih 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 bajtova (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) - (~) └──┤

(*) Provjerite prije izvođenja bilo koje naredbene linije s ovom drugom sintaksom da li imamo pv paket instaliran na sistemu ili ga instalirajte ako ga nemamo: oboje sa Synaptic-om.

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

A) O čvrstim diskovima i particijama:

= Klonirajte tvrdi disk:

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

Uz opciju bs = 1M, moguće je da se i čitanje i pisanje obavljaju u blokovima od 1 megabajta, (manje, bilo bi sporije, ali sigurnije, a s više rizikujemo gubitak podataka na putu).

Imajte na umu da se na ovaj način disk snima "takav kakav je", 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 - sa tvrdog diska (hda), u / home direktoriju:

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

= Potpuno obrišite informacije na disku: 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 pendrivi zaraze virusima s našim dragi prozori.

B) Na CD-u / DVD-u

= Kreirajte / montirajte .iso sliku sa CD-a (ili DVD-a)

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

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

Da biste montirali .iso sliku sa 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). Pogodan je i za oštećene 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 za brisanje GRUB-a bez gubitka podataka na particijama):

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

= Kopiranje / vraćanje sektora za podizanje volumena (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

= Kreirajte praznu datoteku od 1 Mb:

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

= Stvorite 2Gb datoteku za razmjenu:

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 kada ga otvorimo, uz root dozvole - 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).


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   sieg84 rekao je

    Skoro da sam dijabetički zloupotrijebio naredbu dd.
    usput, koja bi bila razlika sa dd_rescue?

    1.    ikada rekao je

      ddrescue se po defaultu ne zaustavlja na greškama čitanja i pokušava na različite načine oporaviti nečitljive informacije.

    2.    Sheko rekao je

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

  2.   rots87 rekao je

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

  3.   Alf rekao je

    @ 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 početi od početka, već ćemo ga pokušati dovršiti.

    Vrijedno je spomenuti da dd_rescue nikada ga nisam koristio.

    1.    merlin debianite rekao je

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

      1.    julio rekao je

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

    2.    sieg84 rekao je

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

  4.   krel rekao je

    alfa:
    Nedavno sam vidio ovaj isti post objavljen na blogu Hatteras. Vjerovatno je da on to ne shvaća pogrešno, ali ne znam, barem bi iz ljubaznosti bilo dobro pozvati se na to. Takođe pobjeđuje u web pozicioniranju.

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

  5.   merlin debianite rekao je

    Zanimljivo priznajem da | pv | nije ga poznavao.

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

  6.   Alf rekao je

    @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 veliku količinu objavite na netu, gotovo su istim redoslijedom, stvar je u tome da je većina kraća.

    Mogu objaviti još 5 postova u sedmici, 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 u redu), želim nešto dodati kako bi se izbjegla slučajnost.

    Saludos

    1.    krel rekao je

      Nikome nije tajna da je najviše samo 10% sadržaja koji se generira na mreži nov. S kojim se ostalih 90 duplicira, obnavlja ili spašava sadržaj, i ne kažem da je ovo manje važno, već naprotiv, to je oblik širenja znanja.

      Međutim, tamo gdje se zaustavim je nešto drugo. Kada imate blog ove vrste, postoji lični motiv da pomognete, a možda čak i dobijete priznanje za to. U isto vrijeme siguran sam da se većina onih koji pišu sadržaj o Slobodnom softveru slaže 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.

      Mislim da je sjajno što dijelite, ali šta gubite referenciranjem? Zamislite samo da li bi se s drugog bloga s boljim pozicioniranjem od ovog sadržaj ovog duplicirao. desdelinux Bez referenciranja, na kraju bi zakopali ovaj 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 govorite, gotovo je sve tekstualno. Malo vjerovatno, ali ne i nemoguće.

      Ali ništa, takve se stvari događaju. I ne znam, zbog lične 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.

      1.    MSX rekao je
  7.   Onaj prije rekao je

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

    1.    živahno rekao je

      Možete koristiti Testdisk

    2.    merlin debianite rekao je

      Možda mi se prijatelj dogodio sa testdisk-om ili sa specijalizovanom distribucijom uživo za spašavanje podataka. Moja preporuka da napravim sigurnosnu kopiju za sljedeći put, budući da je upotreba te naredbe nešto delikatno 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 rekao je

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

    slds

    1.    julio rekao je

      Prijatelju! dodavanje naredbe pv. U ovom istom postu to govori gotovo na početku i objašnjava kako se koristi. Pročitaj ponovo

  9.   pedro rekao je

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

  10.   Luis Rodriguez rekao je

    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 nekako
    >
    Da li bih trebao pokrenuti drugu naredbu ili koliko dugo postupak može trajati?

    hvala i nastavi

    1.    Jazb rekao je

      Postoji greška u pismu za ... nedostaje na kraju reda «; 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 rekao je

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

  12.   Marcos_tux rekao je

    Vrlo korisno, puno mi je pomoglo zahvaljujući

  13.   EDFR rekao je

    Dobar Alf. Hvala na informacijama.

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

    1.    yukiteru rekao je

      Bilo bi vam bolje da koristite rsync, naredbom rsync -av / path / to / origin / path / to / destiny već biste napravili sigurnosnu kopiju svih svojih dozvola s pripadajućim dozvolama.

    2.    yukiteru rekao je

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

  14.   FOXSPY rekao je

    Poštovani, zna li neko zašto kada zauzima naredbu dd, ona doseže samo 4.2 GB i pokazuje 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 rekao je

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

  15.   Bern rekao je

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

  16.   Carlos Torres rekao je

    Pozdrav, imam mašinu za ubrizgavanje u kojoj je program izgubljen otkako su zamijenili bios stack, nemamo sigurnosnu kopiju, ali imamo drugu istu mašinu, ima samo disketu, serijski i paralelni port, kako mogu napraviti sigurnosnu kopiju ove mašine da ga učitam u drugi, nadam se da mi možete pomoći

  17.   ernesto rekao je

    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.   Peter Lobato rekao je

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

  19.   pobjednik rekao je

    Jer kad je iso snimljen naredbom "dd", radi li samo za pokretanje na nekim računarima?
    Exp. Imam 2 laptopa i nijedan se ne pokreće iso bilo koje linux distribucije; već upravo suprotno, pokreće se na starom stolnom računaru sa neaktivnim diskom

    1.    seb rekao je

      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 radi.

      1.    živahno rekao je

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

  20.   pobjednik rekao je

    Ponekad to radi na svim računarima, 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 rekao je

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

  22.   arg0s rekao je

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

    na primjer,

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

  23.   arg0s rekao je

    sa bs = 1M postaje brže

  24.   alex rekao je

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

  25.   Gerardo rekao je

    Komentar, koristim ga sa status = progress na kraju i ne treba mi pv, tako da debian radi jako dobro 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 koristim samo 100 GB, potreban mi je sav taj prostor. Postoji li način da napravite sigurnosnu kopiju tih 100 GB? A kad ga prebacim na drugi medij, to bi mogao biti manji disk, možda jedan od 500?

  26.   Alejandro rekao je

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

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

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

    Zna li neko šta mogu učiniti?

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

    1.    Anónimo rekao je

      morate ponovo particionirati test sa fdisk-om