Uporaba ukaza dd

Ukaz dd (definicija nabora podatkov) je preprosto, uporabno in presenetljivo enostavno orodje; S tem orodjem lahko naredite enako na napravah: diskih in particijah, kot pri komercialnih programih, kot je Norton Ghost, v sistemu Windows ali brezplačnih programih, kot je CloneZilla, v sistemu Linux, s samo kratko ukazno vrstico.

Osnovna sintaksa:

Najosnovnejša sintaksa za uporabo ukaza dd bi bila ta:

sudo dd if=origen of=destino

kjer je če pomeni "vhodna datoteka = vhodna datoteka“, To je tisto, kar želite kopirati in pomeni "izhodna datoteka = izhodna datoteka“, To je ciljna datoteka (kamor se bodo podatki kopirali);poreklo in Cilj so lahko naprave (CD ali DVD bralnik, trdi disk, disketa, pendrive, particija itd.), Varnostna kopija datoteke ali slike diska itd., Ne pa tudi mape ali podmape.

Za nemoteno uporabo tega ukaza moramo najprej jasno vedeti, katere particije / trdi diski se v Linuxu imenujejo (na primer / dev / sda1; / dev izhaja iz device = device, v angleščini). da poznamo izvorni in ciljni disk / particijo, kar lahko zlahka ugotovimo z ukazom sudo fdisk -lo z nekaterimi grafičnimi particijskimi programi, kot je gparted. Vse informacije o ukazu dd si lahko ogledate pri ukazu man dd in info dd,

Ta ukaz je treba uporabljati previdno in vedno preverjati vrstni red in ime diskov / particij, ker tako kot je disk kloniran, ga v hipu izbriše.

Sintaksa z ukazom pv: Uporaba ukaza dd s prejšnjo sintakso ima rahlo pomanjkljivost, saj je zelo zadržan ukaz - ne daje informacij - ker, ko se izvrši, terminalski poziv ostane nepremičen, zato ne vemo kaj se dogaja in koliko časa je še treba, da se dokonča. Te manjše nevšečnosti lahko rešite tako, da v sintakso ukaza dd dodate ukaz pv, (*) - ki deluje kot terminalna cev, ki meri podatke, ki prehajajo skozenj, tako da bi bila sintaksa:

dd if=origen |pv|dd of=destino

Posledično bi v terminalu dobili nekakšno vrstico napredovanja, podatke o prenesenih bajtih, času, ki se izvaja in hitrosti prenosa, vse v realnem času.

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

Ko konča, nam prikaže statistiko hitrosti prenosa, skupnega števila prenesenih bajtov in skupnega časa, potrebnega za prenos vseh podatkov.

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

(*) Pred izvajanjem katere koli ukazne vrstice s to drugo sintakso preverite, ali imamo v sistemu nameščen paket pv, ali pa ga namestite, če ga nimamo: oboje s Synaptic.

Oglejmo si nekaj praktičnih primerov in možnosti tega ukaza (v njegovi različici s trikom, ki je bil prej razložen z ukazom pv):

A) O trdih diskih in particijah:

= Klonirajte trdi disk:

S tem bi klonirali hda disk v hdb. (IDE diski):

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

S tem bi klonirali sda disk v sdb. (Diski SATA):

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

Z možnostjo bs = 1M se doseže, da se branje in pisanje izvajata v blokih po 1 megabajt, (manj, počasneje, a bolj varno in z več tvegava, da bomo na poti izgubili podatke).

Upoštevajte, da je na ta način disk zapisan "takšen, kot je", MBR, particijska tabela, prazen prostor itd ..., tako da lahko snemate samo na disk enake ali večje velikosti.

= Zapišite samo prvo particijo (hda1) izvornega diska na ciljni disk (hdb):

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

= Zapiši celoten disk (hda) na prvo particijo (hdb1) ciljnega diska:

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

= Ustvari sliko - lahko je bin ali iso - s trdega diska (hda), v imeniku / home:

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

= Popolnoma izbriši podatke na disku: za to petkrat napolnite disk z naključnimi znaki. Na disku ne bo sledu informacij:

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

= Izbrišite katero koli particijo in celoten disk iz katere koli naprave:

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

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

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

Ta operacija je zelo koristna za popolno brisanje katere koli particije, poleg tega podatkov, ki jih boste izbrisali, ni mogoče obnoviti, zato gre za nizko in zelo varno izbris, ki je zelo uporaben, na primer, ko se nosilci okužijo z virusi z našimi dragimi okni .

B) Na CD-ju / DVD-ju

= Ustvari / pritrdi sliko .iso s CD-ja (ali DVD-ja)

Če želite ustvariti sliko CD-ja .iso v imeniku / home:

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

Za namestitev slike .iso s CD-ja:

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

= Obnovite opraskan DVD (s tem ne obnovite celotnega DVD-ja, v tem primeru samo berljivih sektorjev). Primeren je tudi za pokvarjene trde diske:

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

Možnost noerror se uporablja za preprečevanje napak pri branju v kateri koli situaciji.

C) O MBR in VBS:

= Kopiraj / obnovi glavni zagonski zapis (MBR):

Če želite kopirati MBR:

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

Če želite obnoviti MBR:

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

= Očistite našo MBR in particijsko tabelo:

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

= Počisti MBR, vendar se ne dotakne tabele particij, (zelo koristno je izbrisati GRUB brez izgube podatkov na particijah):

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

= Kopiraj / obnovi zagon zagonskega sektorja (VBS):

Če želite kopirati VBS:

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

Če želite obnoviti VBS:

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

D) Ostalo:

= Zapiši sliko diska v naš / domači imenik, preskoči napake na disku (zelo koristno za diske, ki umirajo):

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

= Ustvari prazno datoteko velikosti 1 Mb:

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

= Ustvari 2Gb swap datoteko:

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

= Pretvori vse črke v velike črke:

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

Uporabite ukaz dd s programom za grafično okolje: Gdiskdump, je grafično okolje za ta ukaz dd, ki olajša nalogo klonirati particije ali diskete, hitro in enostavno. Lahko ga prenesete s strani https://launchpad.net/gdiskdump/ Ko ga odpremo s korenskimi dovoljenji - sudo gdiskdump -, vidimo, da je program zelo enostaven za uporabo, saj mu moramo le povedati particijo ali disk, da ga mora klonirati (Input Format) in njegov cilj (Output Format).


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   sieg84 je dejal

    Skoraj sem postal diabetik zaradi zlorabe ukaza dd.
    mimogrede, kakšna bi bila razlika z dd_rescue?

    1.    EVER je dejal

      ddrescue se privzeto ne ustavi pri bralnih napakah in poskuša z različnimi sredstvi obnoviti neberljive informacije.

    2.    Šeko je dejal

      hahahha Tudi ukaz dd sem zelo slabo uporabil, je veliko močnejši, kot sem mislil.

  2.   Gnilobe87 je dejal

    Komentiram, da verjamem, da je vsak uporabnik loka v določenem trenutku uporabljal

  3.   Alf je dejal

    @ sieg84, razlika je v tem, da je bil dd prekinjen z neko bralno napako ali napako naprave, v tem primeru se to ne bo zgodilo, ker ga bo poškodovani blok prebral določeno številokrat in nadaljeval z naslednjim, prav tako pa daje prednost, da Na isti sliki jo lahko izvedemo večkrat in se ne bo začela iz nič, ampak jo bo poskušala dokončati.

    Omeniti velja, da ga dd_rescue nisem nikoli uporabljal.

    1.    merlin debianite je dejal

      Alf ali obstaja kakšen GUI, narejen v qt za KDE, ki uporablja ta ukaz? ali moram odstopiti.?

      1.    Julij je dejal

        Gdiskdump je več kot GUI za ta ukaz (temelji na njem) in čeprav ne vem, ali so to storili v qt (mislim, da ne), skoraj zagotovo deluje v KDE

    2.    sieg84 je dejal

      hvala za pojasnilo.
      Uporabil sem samo dd_rescue za kopiranje ISO-ja na USB (predvsem zato, ker so ga imeli v wikiju openSUSE).
      dd_rescue tu.iso / dev / sdX
      všeč mi je, da prikazuje vrstico napredovanja:
      http://box.jisko.net/i/110db781.png

  4.   krel je dejal

    alfa:
    Pred kratkim sem to isto objavo objavil na blogu Hatteras. Verjetno tega ne jemlje slabo, vendar ne vem, vsaj kot vljudnost bi se bilo dobro sklicevati na to. Tako tudi zmaga pri spletnem pozicioniranju.

    S tem ne želim ustvarjati dileme, vendar se na prvi pogled zdi, da je članek 95% enak, razen posnetkov zaslona terminala, ki ste jih prilagodili. Omenil je celo svoje vire.

  5.   merlin debianite je dejal

    Zanimivo priznam, da | pv | ga ni poznal.

    Krel Mislim, da je vir v ubuntu wikiju ali pozdravih loka.

  6.   Alf je dejal

    @krel, stvar z linuxom je ta:

    Med svojim potovanjem po tem svetu sem bral in zbiral stvari, imel sem zvezek z več kot 400 objavami, ki sem jih postavil v Ubuntu v Mehiki, ki je bila skupnost, v kateri sem v prvih dneh največ prispeval, na žalost se lahko stvari ponovijo, če pregledate veliko količino objavi na netu, so skoraj v istem vrstnem redu, stvar je v tem, da je večina krajših.

    V tednu lahko objavim še 5 objav in lahko najdete druge podobne ali enake, razlog? Ubuntu ima največ forumov / blogov na internetu.

    Nikakor ne mislim, da bo prišlo do dileme in če me skrbniki razmislijo o njenem izbrisu, me to sploh ne bi žalilo ali motilo, spoštujem pravila in naslednje, med svojimi opombami 8, da jih nimam urejenih). da bi se izognili naključjem.

    pozdrav

    1.    krel je dejal

      Nikomur ni skrivnost, da je največ 10% vsebine, ustvarjene v spletu, novih. S katerimi se ostalih 90 vsebin podvaja, obnavlja ali reši in ne rečem, da je to manj pomembno, ravno nasprotno, gre za obliko širjenja znanja.

      Vendar, kjer se ustavim, je nekaj drugega. Ko imate takšen spletni dnevnik, obstaja osebna motivacija, da pomagate in zanj morda celo prejmete priznanje. Hkrati sem prepričan, da se večina tistih, ki pišejo vsebine o Prosti programski opremi, strinja z idejo o skupni rabi. Vendar ne pozabimo, da tudi najplemenitejše licence, kot je BSD, zahtevajo priznanje.

      Tudi reference so način, kako nekateri iskalniki, kot je google, izboljšajo položaj spletnega mesta. Pravim samo, ker je bil material uporabljen kot minimalna hvaležnost, bi se skliceval na to delo.

      Mislim, da je super, da delite, toda kaj izgubite s tem, da navedete referenco? Samo pomislite, če bi se iz drugega spletnega dnevnika z boljšim položajem od tega podvojila vsebina tega. desdelinux Brez sklicevanja nanj bi na koncu pokopali ta blog.

      Hatteras ga je objavil pred 10 dnevi in ​​če ga ni vzel iz vašega zvezka ali če ste Luis Puente, ne morem razložiti tega, kar mi rečete, skoraj vse je besedilno. Malo verjetno, a ne nemogoče.

      Ampak nič, kaj takega se zgodi. In ne vem, zaradi osebne etike in sodelovanja z drugim kolegom bi se skliceval nanj. To je odvisno od vas, mislim, da tudi Hatteras tega ne jemlje narobe, ravno nasprotno.

  7.   Tistega prej je dejal

    Hm ... naredil sem dd if = file.iso = / media / trdi disk ... po pomoti 😛
    kakršen koli način za obnovitev datotek s trdega diska ???

    1.    živahno je dejal

      Lahko uporabite Testdisk

    2.    merlin debianite je dejal

      Pri reševanju podatkov se mi je morda zgodil prijatelj s testdiskom ali s specializiranim distribucijskim sistemom v živo. Moje priporočilo je narediti varnostno kopijo za naslednjič, saj je uporaba tega ukaza nekaj občutljivega v mojih začetniških dneh za formatiranje celotnega trdega diska, ne da bi to hotel, in zdaj, da se dobro ponovno zažene ... Ni treba posebej poudarjati, da se tudi grub ni začel.

  8.   Raul je dejal

    Ali mi lahko nekdo pove, kateri ukaz naj uporabim za ogled napredka kopiranja z ukazom dd, kar mislim, da vidim vrstico napredka z%, ki je kopiral.

    slds

    1.    Julij je dejal

      Prijatelj! dodajanje ukaza pv. V tem istem prispevku pove skoraj na začetku in razloži, kako ga uporabiti. Preberite še enkrat

  9.   Pedro je dejal

    s tem ukazom:
    dd, če = / dev / sdc | bzip2> /media/Elements/iso.gz
    Uspelo mi je narediti iso podobo 16Gb diska in jo shraniti na 400Gb disk.
    Ne vem pa, kakšen bi bil ukaz za obnovitev te slike na prvotni 16 GB disk ali na drugo z enako zmogljivostjo

  10.   Luis Rodriguez je dejal

    vprašanje

    uporabite ta ukaz za
    za n v {1..5}; naredi dd, če = / dev / urandom | pv | dd od = / dev / hda bs = 8b conv = notrunc;
    za disk 2TB
    potem ostanem v konzoli nekaj takega
    >
    Ali naj zaženem drug ukaz ali kako dolgo lahko traja postopek?

    hvala in nadaljuj

    1.    Jazb je dejal

      Na koncu vrstice je tipkarska napaka za… manjka «; končano »ostal« za n v {1..5}; naredi dd, če = / dev / urandom | pv | dd od = / dev / hda bs = 8b conv = notrunc; Končano "

  11.   henry salazar je dejal

    zelo dober članek ... .. uresničil ga bom v praksi ... pozdrav kolega

  12.   Marcos_tux je dejal

    Zelo koristno, veliko mi je pomagalo, hvala

  13.   EDFR je dejal

    Dober Alf. Hvala za informacije.

    Vprašanje. Ali obstaja način za kopiranje samo dela izvornega diska? Primer je, če imam 120 GB diska, na katerem se uporablja samo 25 GB in želim kopirati na disk s kapaciteto 40 GB, bi me zanimalo samo kopiranje uporabljenega prostora (25 GB), ali obstaja način s tem ukazom?
    Hvala vnaprej.

    1.    yukiteru je dejal

      Bolje bi bilo, če bi uporabljali rsync, z ukazom rsync -av / path / to / origin / path / to / destiny bi že varnostno kopirali vsa svoja dovoljenja z njihovimi ustreznimi dovoljenji.

    2.    yukiteru je dejal

      Mislil sem: "vse vaše datoteke z ustreznimi dovoljenji"

  14.   FOXSPY je dejal

    Spoštovani, ali kdo ve, zakaj pri zasedbi ukaza dd doseže le 4.2 GB in kaže, da je datoteka zelo velika? To je slika diska z zmogljivostjo 250 GB in gre na zunanji disk z velikostjo 1 TB.

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

    1.    Ugrabitelj je dejal

      Napaka 4Gb vam jo daje, ker poskušate narediti varnostno kopijo na particiji s fs FAT16

  15.   Bern je dejal

    Kako dober blog. Zelo koristen vnos. Uporabe tega ukaza sem že videl drugje, vendar sploh niso nič pojasnili. Hvala vam.

  16.   Carlos Torres je dejal

    pozdravljeni, imam injekcijski stroj, v katerem se je program izgubil, ker so zamenjali bios stack, nimamo varnostne kopije, imamo pa še en isti stroj, ima le disketo, serijska in vzporedna vrata, kako lahko naredim varnostno kopijo tega stroja da ga naložim v drugo, upam, da mi lahko pomagate hvala

  17.   Ernesto je dejal

    Želim samo kopirati particijo, ne da bi začeli s CD-ja LIVE. Na primer imam disk z / dev / sda1, / dev / sda5, / dev / sda6 in želim narediti kopijo v / dev / sda5 z drugega diska / dev / sdb1

    ukaz je dd, če = / dev / sdb1 od = / dev / sda5 bs = 1M ????

  18.   Peter Lobato je dejal

    Živjo kako si. Živim tudi v Guadalajari.
    Vaš članek o ukazu DD je zelo zanimiv. Želim preizkusiti nekaj distribucij Linuxa, natančneje Archlinux, vendar nisem mogel uporabiti ukaza DD in kopirati že prenesenega sistema Archilinux ISO na USB ključek. Ne vem, če mi lahko za začetek dodaš kljukico. Hvala, Pedro lobato

  19.   Victor je dejal

    Kajti, ko je iso posnet z ukazom "dd", deluje le za zagon na nekaterih računalnikih?
    Exp. Imam 2 prenosnika in nobeden od njih ne zažene iso distribucije linuxa; nasprotno pa se zažene na starem namiznem računalniku z nedejavnim diskom

    1.    seb je dejal

      Najbolje je, da z unetbootinom igramo varno, pri dd pa mi je ostalo tudi vprašanje, zakaj včasih to ne deluje.

      1.    živahno je dejal

        Mislim, da ni odvisno od DD, ampak od ISO. Enako je z Unetbootinom, ne deluje dobro pri vseh distribucijah.

  20.   Victor je dejal

    Včasih deluje na vseh osebnih računalnikih, vendar morate procesu dodati mbr in syslinux v usb; ampak to je dolgotrajno in dolgočasno.
    Preprost del o unetbootingu

    Bodite previdni: zame ni iso ali dd, ampak način snemanja.

  21.   Danny je dejal

    Dvomim, če uporabim ta ukaz:
    sudo dd, če = / dev / nič od = / dev / diskdrive
    Namesto tega je oblikovanje na nizki ravni enako ali traja dlje od tega:
    sudo dd, če = / dev / nič od = / dev / diskdrive bs = 1M ..

  22.   arg0s je dejal

    Ali lahko z ukazom dd izbrišem določeno datoteko?

    na primer

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

  23.   arg0s je dejal

    z bs = 1M postane hitrejši

  24.   alex je dejal

    In če bom naredil natančno kopijo z enega diska na drugega z vsemi njegovimi particijami (swap, sda ...) in obema diskoma enako, vendar je eden v računalniku, drugi pa v NAS-ju prek omrežja? ???
    hvala

  25.   Gerardo je dejal

    Komentar, na koncu ga uporabim s status = progress in ne potrebujem pv, zato debian zelo dobro deluje zame, da vidim napredek.
    In drugo, ali obstaja način, da dobite samo podatke in ne celotne enote, saj če gre za disk 2TB in uporabljam le 100 GB, potrebujem ves ta prostor. Ali obstaja način, da samo varnostno kopirate teh 100 GB? In ko ga prenesem na drug medij, je to morda manjši disk, morda eden od 500?

  26.   Alexander je dejal

    Pomoč !!!
    Izvedite ukaz
    dd if = cbpp-9.0-amd64-20170621.iso of = / dev / sdb

    vse dobro ... zdaj pa želim uporabiti USB kot enoto za shranjevanje in ...

    USB ni nameščen, niti ni prikazan v GPartedu.

    Ali kdo ve, kaj lahko storim.

    PS: kateri bi bil najboljši program za obnovitev informacij z diskov in CD DVD-jev….

    1.    anonimni je dejal

      morate znova preizkusiti particijo s fdiskom