Ero sivun ”Dd” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
ei muokkausyhteenvetoa
Pb (keskustelu | muokkaukset) (ei se toimi) |
pEi muokkausyhteenvetoa |
||
(15 välissä olevaa versiota 10 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
dd on työkalu eri tiedostojen matalan tason kopiointiin ja muuntamiseen toiseen muotoon. Toisin kuin [[cp]], joka kopioi kokonaisia tiedostoja, kopioi dd tiedoston sisällön bitintarkasti. Tästä syystä dd:llä voidaan esimerkiksi tehdä identtinen kopio jostakin osiosta (partition) jollekin toiselle osiolle. | {{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | ||
'''dd''' on [[komentorivi]]työkalu eri tiedostojen matalan tason kopiointiin ja muuntamiseen toiseen muotoon. Toisin kuin [[cp]], joka kopioi kokonaisia tiedostoja, kopioi dd tiedoston sisällön bitintarkasti. Tästä syystä dd:llä voidaan esimerkiksi tehdä identtinen kopio jostakin osiosta (partition) jollekin toiselle osiolle. | |||
== Käyttö == | == Käyttö == | ||
{{Haitallinen esimerkki|komento}} | |||
Kopioidaan koko ykköskiintolevy (<tt>/dev/hda</tt>), mukaanlukien esimerkiksi osiotaulukko, täyteen satunnaista dataa, mikä tuhoaa kaiken tällä kiintolevyllä ja sen eri osioilla sijaitsevan tiedon. Mikäli lähdetiedostona käytetään <tt>/dev/u[[random]]</tt>in sijasta <tt>/dev/random</tt>ia, on satunnaisluvun taso korkeampi, mutta operaatio sujuu selvästi hitaammin. | |||
dd if=/dev/urandom of=/dev/hda | dd if=/dev/urandom of=/dev/hda | ||
Kirjoitetaan kiintolevyn /dev/hdb osiotaulukko ja pääkäynnistyslohko täyteen nollaa, mikä käytännössä estää kiintolevyn nykyisten tietojen käytön. Sitä varten käytettäväksi lohkokooksi määritellään 512 tavua ja tämän lohkon kirjoitus määritellään toistettavaksi kaksi kertaa. | |||
dd if=/dev/zero of=/dev/hdb bs=512 count=2 | |||
{{HEL}} | |||
Dd:tä voi käyttää myös [[komentorivin perusteet|putkissa]], if- ja of-parametrit eivät ole pakollisia: | Dd:tä voi käyttää myös [[komentorivin perusteet|putkissa]], if- ja of-parametrit eivät ole pakollisia: | ||
fortune | dd | less | fortune | dd | less | ||
Rivi 17: | Rivi 18: | ||
===[[levykuva|Levykuvien]] luominen=== | ===[[levykuva|Levykuvien]] luominen=== | ||
Tehdään sisälläolevasta levykkeestä (laitetiedosto <tt>/dev/fd0</tt>) [[levykuva]] (image) tiedostoon <tt>korppu.img</tt>. Vastaavasti voi luoda myös iso-imagen optisesta levystä. | |||
dd if=/dev/fd0 of=korppu.img | dd if=/dev/fd0 of=korppu.img | ||
Luodaan tyhjä tiedosto, jota voi käyttää levykuvana. Levykuvan koko annetaan tässä [http://fi.wikipedia.org/wiki/Tavu_(tietotekniikka)#Tavun_monikerrat kibitavuina]. | |||
dd if=/dev/zero of=/polku/<[[levykuva|levykuvan]] nimi> count=<koko> bs=1024 | dd if=/dev/zero of=/polku/<[[levykuva|levykuvan]] nimi> count=<koko> bs=1024 | ||
===Naarmuisen DVD:n tai CD:n kopioiminen=== | |||
Vaikka levy olisi vaurioitunut sen verran että esimerkiksi [[cp]] antaa virheilmoituksen levyltä kopioidessa, dd:llä voi onnistua pelastamaan ainakin joitain tiedostoja. Tiedoston tyypistä riippu paljon se, voiko sitä käyttää, jos siitä puuttuu pala tai palasia. | |||
Tiedostojen pelastamista voi kokeilla seuraavasti: Aloitetaan kopiointi dd:llä ja katsotaan, kuinka pitkälle se pääsee: | |||
dd if=/media/DVD/tiedosto of=tiedosto | |||
dd: luettaessa tiedostoa "/media/DVD/tiedosto": I/O-virhe | |||
608+0 tietuetta sisään | |||
608+0 tietuetta ulos | |||
311296 tavua (311 kB) kopioitu 6,06266 sekunnissa, 51,3 kB/s | |||
Jatketaan kopiointia toiseen tiedostoon virhekohdan toiselta puolelta. Kun etsit ehjää aloituskohtaa (parametri <tt>skip</tt>), kasvata sen arvoa niin vähän kerrallaan, kuin viitsit. Arvo ei kuitenkaan saa olla pienempi kuin datasolu, äänitiedostossa 2 x 16 bittiä = 4 tavua. | |||
dd if=/media/DVD/tiedosto of=tiedosto2 bs=4 skip=411296 | |||
Jatka samalla tavalla, jos virheitä on enemmänkin. | |||
Lopuksi voit yhdistää palaset komennolla | |||
[[cat]] tiedosto tiedosto2 tiedosto3 > lopullinen | |||
dd voi tehdä vastaavan itse kerralla valitsimella conv=noerror, joka pyytää ohjelman jatkamaan virheistä huolimatta. | |||
dd if=/media/DVD/tiedosto of=tiedosto2 bs=4 | |||
Esimerkiksi videot, äänitiedostot ja kuvat sietävät melko hyvin tällä tavalla tehtävää palautusta varsinkin, jos virheitä ei ole ihan tiedoston alussa. Jos joku mediasoitin ei osaa katkokohtaa näyttää, avaa tiedosto johonkin [[:Luokka:Videoeditointiohjelmat|videoeditoriin]] ja tallenna video uudelleen. Videon luominen voi kestää jonkin aikaa, mutta ulostulevassa videossa ei pitäisi olla enää virheitä. | |||
Jos virheellistä osaa tiedostosta ei pidä poistaa, vaan se pitää korvata nollilla (kuten monessa tiedostotyypissä, vastaavan voi tehdä käyttämällä sync-valitsinta (tässä bs=512, oletetaan että sektori on joko ehjä tai rikki kokonaisuudessaan): | |||
dd if=/media/mikälie/tiedosto conv=noerror,sync bs=512 of=lopullinen | |||
Vaurioituneen CD:n tai DVD:n kopioimiseen on myös erikoistunut ohjelma [[cdparanoia]], joka dd:stä poiketen yrittää rikkinäisen sektorin lukemista monta kertaa. Myös jotkut muut kopiointiohjelmat sisältävät saman toiminnon. | |||
== Katso myös == | |||
* [[ddrescue]] | |||
* [[Palautustyökalut]] | |||
== Aiheesta muualla == | |||
* [https://www.vidarholen.net/contents/blog/?p=479 Useless of dd] - dd:n tarpeettomasta käytöstä | |||
* [https://eklitzke.org/the-cult-of-dd Cult of DD] - Lisää dd:n tarpeettomasta käytöstä | |||
[[Luokka:Coreutils]] | [[Luokka:Coreutils]] | ||
[[Luokka:Komentorivin perustyökalut]] | [[Luokka:Komentorivin perustyökalut]] | ||
[[de:dd]] |