Dd

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 11.5.2020 tarkistetusta versiosta . tarkastukset vaativat 4 muokkausta .

dd ( datan määritelmä ) on UNIX-ohjelma tiedostojen kopioimiseen ja muuntamiseen. Nimi on peritty DD-operaattorilta ( Data Definition ) JCL-kielestä [ 1 ] [2] .

Koska UNIXissa monet objektit (kiintolevyt / levykkeet, COM / LPT-portit, tietokoneen RAM, muisti kunkin prosessin koodilla / tiedoilla) esitetään erikoistiedostoina, apuohjelman sovellusvalikoima ddon paljon laajempi kuin ensi silmäyksellä näyttää. Säännöllisesti ei tarvitse kopioida vain tiedostoa tai useita tiedostoja (johon cp -apuohjelma on tarkoitettu ), vaan kopioida tiedoston ensimmäiset n tavua, ohittaa m tavua alusta, lukea tiedosto viallisesta medium, käännä tiedoston sisältö ASCII -muotoon , "käännä" tiedoston tavujärjestys ( Little-Endian vs. Big-Endian ) [3] , kopioi vain erittäin suuri tiedosto tai kaikki yhdessä. Tätä tarkoitusta varten ja palvelee dd.

Tämän apuohjelman avulla voit muun muassa kopioida alueita raa'ista laitetiedostoista, esimerkiksi tehdä varmuuskopion kiintolevyn käynnistyssektorista tai lukea kiinteitä tietolohkoja erikoistiedostoista, kuten /dev/zero tai /dev/random . [4] .

Apuohjelman nimi ddtulkitaan joskus vitsillä "levyn tuhoajaksi", "datan tuhoajaksi", "poista tiedot" tai "viimeistele levy", koska apuohjelman avulla voit suorittaa matalan tason toimintoja kiintolevyillä - pienimmälläkin virheellä. (kuten parametrien kääntäminen ifja of) voit menettää osan levyllä olevista tiedoista (tai jopa kaikki tiedot) [3] . On myös "kunnioittavampi" lempinimi - "levykopioija", koska käytännössä sen pääsovellus on osioiden kopiot, kuvat ja varmuuskopiot.

Jotkut parametrit

Tämä artikkeli on kirjoitettu käyttämällä komentoa man dd , joka kuvaa dd : n GNU -versiota . Muiden käyttöjärjestelmien dd :n versiot voivat olla erilaisia.

Perusparametrit

dd [--help] [--version] [status] [if=файл] [of=файл] [ibs=байты] [obs=байты] [bs=байты] [cbs=байты] [skip=блоки] [seek=блоки] [count=блоки] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]

Käyttöesimerkkejä

Työskentely CD/DVD-levyjen ja kuvien kanssa

Luo CD/DVD- kuva käyttämällä suurta lohkokokoa. Ohita virheet:

dd jos = /dev/cdrom of = backup.iso bs = 65536 konv = noerror

Kirjoita ISO-kuva "image.iso" sdb-laitteeseen sekä sen käynnistyssektori ja osion muotoilu kuvatiedostojärjestelmään (yleensä ISO 9660 tai UDF ):

dd if = image.iso = / dev/sdb

Työskentely tiedostojen kanssa

Kopioi tiedosto foo tiedostopalkkiin:

dd jos = foo of = bar

Kopioi tiedosto foo tiedostopalkkiin ohittaen ensimmäiset 10 kt tiedostosta foo:

dd jos = foo of = bar bs = 1k ohitus = 10

Leikkaa 10 Mt foo-tiedosto 2 5 Mt tiedostoksi:

dd jos = foo = bar.0 bs = 1M count = 5 dd jos = foo = bar.1 bs = 1M ohitus = 5 _ _

Yhdistä neljä 100 Mt tiedostoa yhdeksi:

dd jos = SMILE.001 / = SMILE bs = 1M etsintä = 0 dd jos = SMILE.002 / = SMILE bs = 1M etsintä = 100 dd , jos = SMILE.003 / = SMILE bs = 1M etsintä = 200 dd , jos = SMILE . 004 / = SMILE bs = 1M etsintä = 300

ja se on mahdollista näin:

dd jos = SMILE.001 > SMILE dd jos = SMILE.002 >> SMILE dd jos = SMILE.003 >> SMILE dd jos = SMILE.004 >> SMILE

tai (jos haluat kerätä tiedoston suuresta määrästä kappaleita):

i : lle { 1 ..4 } ; do dd if = SMILE.00 $i >> SMILE valmis

Yllä olevat esimerkit osoittavat dd:n mahdollisuudet; käytännössä kissaa käytetään yleensä :

kissa SMILE.00 { 1 ,2,3,4 } >> SMILE

Tulosta näytölle (kansioon /dev/stdout) tiedoston foo ensimmäiset 256 tavua:

dd jos = foo of = /dev/stdout bs = 128 count = 2

tai:

dd jos = foo bs = 128 count = 2

Edellinen komento on hyvä vain tekstitiedoston katseluun. Binaaritiedoston sisällön suositellaan näyttävän tältä:

dd jos = foo bs = 1 count = 10 2 >/dev/null | hexdump

Tietojen varmuuskopiointi ja poistaminen

Useimmissa tapauksissa kannattaa olla varovainen, ettei kohdetiedosto päädy samalle levylle, jolta kuva on otettu (ja itse asiassa on suositeltavaa irrottaa se kokonaan, koska kaikki vahingossa tehdyt muutokset tiedostojärjestelmään voivat kuvan eheys).

Kopioi yksi kiintolevyosio toiselle kiintolevylle I/O-virheet huomioimatta:

dd jos = /dev/sda1 / = /dev/sdb2 bs = 4096 konv = noerror,sync

Tee kopio ensimmäisen kiintolevyn pääkäynnistystietueesta (MBR) :

dd jos = /dev/hda of = bootloader.mbr bs = 512 count = 1

Täytä kaikki nykyisen osion vapaa tila nollilla:

dd jos = /dev/ zeroof = nollatäyttö

Luo pakattu kuva ensimmäisestä kiintolevystä, jossa on kaikki osiot (suosittelemme ensin täyttämään vapaan tilan nollilla pakkaamisen parantamiseksi):

dd jos = /dev/sda | xz -9 > MyFuBu.ISO.XZ

Luo 2 Gt:n segmentoitu kuva ensimmäisestä kiintolevystä kaikilla osioilla (pakkauksella ja ilman):

dd jos = /dev/sda | xz -9 | split -b 2G --additional-suffix = .xz - MyFuBu.iso. dd jos = /dev/sda | split -b 2G --additional-suffix = .iso - MyFuBu.


Tarkastele ensimmäisen kiintolevyn pääkäynnistystietueen (MBR) sisältöä :

dd jos = /dev/sda bs = 512 count = 1 | hexdump -C

Kopioi kaikki paitsi tarra levyltä nauhalle :

( dd bs = 4k ohitus = 1 count = 0 && dd bs = 512k ) < $levy > $nauha

Kopioi kaikki nauhalta levylle ilman etiketin päälle kirjoittamista:

( dd bs = 4k etsintä = 1 count = 0 && dd bs = 512k ) < $nauha > $levy

Tuhoa laitteen sisältö /dev/sdgtäyttämällä se "nollailla" osoitteesta /dev/zero:

dd jos = /dev/nolla = / dev/sdg bs = 65536

Tarkista toiminnan tila:

killall -USR1 dd

Joissakin tapauksissa suoritustilaa tarkastellaan komennolla:

pkill -USR1 -x dd

Uusimmissa versioissa edistymisen tila voidaan tulostaa konsoliin antamalla dd-komento status=progress

dd if = image.iso of = /dev/sdb tila = edistyminen

dd:n palautukseen tähtäävät muunnelmat

Avoimen lähdekoodin palautusohjelmia ovat dd_rescue [5] [6] [7] [8] ja dd_rhelp [9] [10] , jotka toimivat yhdessä, savehd7 ja GNU ddrescue .

Antonio Diaz Diaz (GNU ddrescuen kehittäjä) vertaa [11] dd-vaihtoehtoa palautustehtäviin:

Tavallinen dd -apuohjelma suorittaa levyn lineaarisen lukemisen, ja tämä voi kestää kauan tai jopa polttaa aseman ilman palautusta, jos virheet sijaitsevat kiintolevyn alussa.

dd_rescue tekee saman kuin dd, mutta tehokkaammin.

dd_rhelp  on monimutkainen komentosarja, joka suorittaa dd_rescue-komentoa monta kertaa yrittäen kopioida asemaa strategisesti, mutta se on erittäin tehoton.

  • dd_rhelp purkaa ensin kaikki luettavissa olevat tiedot ja tallentaa ne tiedostoon lisäämällä nollia tavujen sijasta, joita se ei voinut lukea. Apuohjelma yrittää sitten lukea virheelliset tiedot uudelleen ja päivittää tiedoston.
  • GNU dd_rescuea voidaan käyttää tietojen kopioimiseen suoraan uudelle asemalle tarpeen mukaan, aivan kuten dd:tä.

Katso myös

Muistiinpanot

  1. IBM . JCL-lauseet: Mitä DD-lause tekee? . Haettu 26. huhtikuuta 2022. Arkistoitu alkuperäisestä 26. huhtikuuta 2022.
  2. Dennis Ritchie (17. helmikuuta 2004). " Re: UNIX dd -komennon alkuperä ". alt.folklore.computers . (Google-ryhmät) . Arkistoitu alkuperäisestä 8. heinäkuuta 2012.
  3. 1 2 Sam Chessman. Miten ja milloin dd-komentoa käytetään? (linkki ei saatavilla) . koodikahvi. Haettu 19. helmikuuta 2008. Arkistoitu alkuperäisestä 21. tammikuuta 2012. 
  4. Dd - LQWiki . LinuxQuestions.org. Haettu 19. helmikuuta 2008. Arkistoitu alkuperäisestä 21. tammikuuta 2012.
  5. dd_rescue . www.garloff.de. Haettu 19. helmikuuta 2019. Arkistoitu alkuperäisestä 16. toukokuuta 2001.
  6. GNU ddrescue on paras apuohjelma tietojen palauttamiseen vaurioituneelta kiintolevyltä . rus-linux.net. Haettu 19. helmikuuta 2019. Arkistoitu alkuperäisestä 19. helmikuuta 2019.
  7. OpenNET: artikkeli - Tietojen palauttaminen vaurioituneelta tietovälineeltä gddrescue-sovelluksella (levypalautuksen korjaus fs forensic linux) . www.opennet.ru Haettu 19. helmikuuta 2019. Arkistoitu alkuperäisestä 19. helmikuuta 2019.
  8. Bruce Nikkel. Käytännön rikostekninen kuvantaminen: digitaalisten todisteiden turvaaminen Linux-työkaluilla . - No Starch Press, 2016. - 324 s. — ISBN 9781593278007 . Arkistoitu 19. helmikuuta 2019 Wayback Machinessa
  9. Kalysto - /Utilities/dd_rhelp - (pelastuskiintolevyapu) . www.kalysto.org. Haettu 19. helmikuuta 2019. Arkistoitu alkuperäisestä 16. toukokuuta 2008.
  10. Kyle Rankin. Knoppix Hacks: Vinkkejä ja työkaluja tietokoneesi hakkerointiin, korjaamiseen ja siitä nauttimiseen . - "O'Reilly Media, Inc.", 20.11.2007. — 422 s. — ISBN 9780596551759 . Arkistoitu 19. helmikuuta 2019 Wayback Machinessa
  11. Haastattelu GNU DDRescuen Antonio Diaz Diazin kanssa (linkki ei saatavilla) . Sininen GNU. Haettu 6. joulukuuta 2008. Arkistoitu alkuperäisestä 15. huhtikuuta 2008. 

Kirjallisuus

Linkit