Muokataan sivua Dd

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
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.
'''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  
Kopioi koko ykköskiintolevyn (/dev/hda), mukaanlukien esimerkiksi osiotaulukon, täyteen satunnaista dataa, mikä tuhoaa kaiken tällä kiintolevyllä ja sen eri osioilla sijaitsevan tiedon. Mikäli lähdetiedostona käytetään /dev/random:ia, on satunnaisluvun taso korkeampi, mutta operaatio sujuu selvästi hitaammin.


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
dd if=/dev/zero of=/dev/hdb bs=512 count=2
Kirjoittaa kiintolevyn /dev/hdb osiotaulukon ja pääkäynnistyslohkon 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.
{{HEL}}
Dd:tä voi käyttää myös [[komentorivin perusteet|putkissa]], if- ja of-parametrit eivät ole pakollisia:
fortune | dd | less
toimii tarkalleen samoin kuin
fortune | less
Tällöin dd:n käyttö vaikuttaa tyhmältä, mutta jos välissä on vaikkapa [[ssh]]-yhteys, dd:stä saattaa olla enemmän hyötyä:
fortune | ssh kayttaja@kone 'dd | less'


===[[levykuva|Levykuvien]] luominen===
===[[levykuva|levykuvien]] luonti===
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
Tekee sisälläolevasta levykkeestä (laitetiedosto /dev/fd0) [[levykuva]]n (imagen) tiedostoon 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
Luo tyhjän tiedoston, jota voi käyttää levykuvana, levykuvan koko kibitavuina.


===Naarmuisen DVD:n tai CD:n kopioiminen===
===yleistä===
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:tä voi käyttä myös putkissa, if- ja of-parametrit eivät ole pakollisia:
dd if=/media/DVD/tiedosto of=tiedosto
  fortune | dd | less
 
toimii tarkalleen samoin kuin  
  dd: luettaessa tiedostoa "/media/DVD/tiedosto": I/O-virhe
  fortune | less
608+0 tietuetta sisään
Tällöin dd:n käyttö vaikuttaa tyhmältä, mutta jos välissä on vaikkapa [[ssh]]-yhteys, dd:stä saattaa olla enemmän hyötyä:
608+0 tietuetta ulos
fortune | ssh kayttaja@kone 'dd | less'
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:Komentorivin perustyökalut]]


[[de:dd]]
[[Luokka:Coreutils]][[Luokka:Komentorivin perustyökalut]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tällä sivulla käytetyt mallineet:

Noudettu kohteesta ”https://www.linux.fi/wiki/Dd