Ero sivun ”Dd” versioiden välillä

Siirry navigaatioon Siirry hakuun
3 047 merkkiä lisätty ,  13. lokakuuta 2021
p
ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa
pEi muokkausyhteenvetoa
 
(23 välissä olevaa versiota 12 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  
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.


dd if=dev/zero of=/dev/hdb bs=512 count=2
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.
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.
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:
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===
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


  dd if=/root/tiedosto.txt of=/dev/null count=3
Luodaan tyhjä tiedosto, jota voi käyttää levykuvana. Levykuvan koko annetaan tässä [http://fi.wikipedia.org/wiki/Tavu_(tietotekniikka)#Tavun_monikerrat kibitavuina].
Kopioi tiedoston /root/tiedosto.txt kolme kertaa bitti bitiltä nollalaitteeseen /dev/null.
  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


Dd:voi käyttä myös putkissa, if- ja of-parametrit eivät ole pakollisia:
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ä.
  fortune | dd | less
 
toimii tarkalleen samoin kuin
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):
fortune | less
  dd if=/media/mikälie/tiedosto conv=noerror,sync bs=512 of=lopullinen
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ä.
 
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]]


[[Luokka:Coreutils]][[Luokka:Komentorivin perustyökalut]]
[[de:dd]]
3 173

muokkausta

Navigointivalikko