Ero sivun ”Dd” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Dd->dd; conv=noerror,sync; cdparanoia)
Rivi 1: Rivi 1:
{{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.
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.


Rivi 21: Rivi 22:
Luodaan tyhjä tiedosto, jota voi käyttää levykuvana. Levykuvan koko annetaan tässä [http://fi.wikipedia.org/wiki/Tavu_(tietotekniikka)#Tavun_monikerrat kibitavuina].
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===
===Naarmuisen DVD:n tai CD:n kopioiminen===
Rivi 34: Rivi 34:
  311296 tavua (311 kB) kopioitu 6,06266 sekunnissa, 51,3 kB/s
  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.
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=1 skip=411296
  dd if=/media/DVD/tiedosto of=tiedosto2 bs=4 skip=411296


Jatka samalla tavalla, jos virheitä on enemmänkin.
Jatka samalla tavalla, jos virheitä on enemmänkin.  


Lopuksi voit yhdistää palaset komennolla
Lopuksi voit yhdistää palaset komennolla
  [[cat]] tiedosto tiedosto2 tiedosto3 > lopullinen
  [[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ä.
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.


[[Luokka:Coreutils]]
[[Luokka:Coreutils]]
[[Luokka:Komentorivin perustyökalut]]
[[Luokka:Komentorivin perustyökalut]]

Versio 17. huhtikuuta 2010 kello 00.04

dd on komentorivityö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ö

Kopioidaan koko ykköskiintolevy (/dev/hda), 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 /dev/urandomin sijasta /dev/randomia, on satunnaisluvun taso korkeampi, mutta operaatio sujuu selvästi hitaammin.

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

Dd:tä voi käyttää myös 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'

Levykuvien luominen

Tehdään sisälläolevasta levykkeestä (laitetiedosto /dev/fd0) levykuva (image) tiedostoon korppu.img. Vastaavasti voi luoda myös iso-imagen optisesta levystä.

dd if=/dev/fd0 of=korppu.img

Luodaan tyhjä tiedosto, jota voi käyttää levykuvana. Levykuvan koko annetaan tässä kibitavuina.

dd if=/dev/zero of=/polku/<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 siittää 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 skip), 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 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.