Dd: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 25: Line 25:


conv=noerror - võrdusmärgi ümber ei tohi tühikuid olla
conv=noerror - võrdusmärgi ümber ei tohi tühikuid olla
<pre>
dd if=<source> of=<target> bs=<byte size>(usually some power of 2, not less than 512 bytes(ie, 512, 1024, 2048, 4096, 8192, 16384, but can be any number.) skip= seek= conv=<conversion>.
</pre>


= Lihtne kopeerimine =
= Lihtne kopeerimine =

Revision as of 13:30, 6 January 2011

Teema võttis: Peep Binsol, AK31

Teema on pooleli.

Sissejuhatus

DD - disk duplicate Kasutatakse madala taseme kopeerimiseks, ei kopeeri faile, vaid konkreetseid baite. DD ei hooli ka sellest, millised partitsioonid on kettal. Sellega saab kopeerida mistahes partitsioonide ja failisüsteemidega kettaid.

Mingi jutt sissejuhatuseks

DD kasutamiseks pead olema root õigustega.

Süntaks

veidi teistmoodi if input file of output file

bs - byte size (default 512) -> üldiselt kasutatakse kahe astmeid aga ei pea. suurema numbriga käivad asjad kiiremini? ploki suurus, võib olla ka 1M, 1G

count=x mitu plokki

hoiatus äravahetamise kohta

conv=noerror - võrdusmärgi ümber ei tohi tühikuid olla

dd if=<source> of=<target> bs=<byte size>(usually some power of 2, not less than 512 bytes(ie, 512, 1024, 2048, 4096, 8192, 16384, but can be any number.) skip= seek= conv=<conversion>.

Lihtne kopeerimine

Operatsioonid HDD'ga

Kõige lihtsam näide on see, et kopeerida ühe kõvaketta sisu täpselt samasugusele teisele kettale.

dd if=/dev/sda of=/dev/sdb conv=noerror

if on ketas mida kopeeritakse.
of on ketas kuhu kopeeritakse.
Noerror argument kindlustab ketta kopeerimise isegi siis, kui lähtekettal on loetamatuid sektoreid.
Sihtketas võib olla suurem kui lähteketas, sellisel juhul jääb sihtketta lõpus olev ruum lihtsalt kasutamata. Uue ketta partitsioonid saab peale kasutusele võtmist parted või gparted programmiga suuremaks venitada. Kui sihtketas on väiksem kui lähteketas, siis jääb ketta lõpus olev info lihtsalt kirjutamata ja saadud koopia ei ole kasutatav. Kui on siiski vajadus kopeerida suurel kettal olev info väiksemale, siis tuleks suure ketta partitsioon eelnevalt väiksemaks teha. Eeldusel muidugi, et kettal oleva info maht seda võimaldab. Enne partitsiooni suuruse muutmist on soovitatav andmetest kuskile mujale varukoopia teha.


DD võimaldab ketta kopeerimist ka nn. image failiks. See on igapäevaseks kasutamiseks hulka kasulikum kui ühe ketta kopeerimine teisele.

dd if=/dev/sda of=/home/user/varukoopia.img

Sellisel varukoopia tegemisel pole aga erilist mõtet, kuna tulemuseks saadav fail on väga suur. Saadava faili suurus võrdub kopeeritava ketta suurusega. Näiteks 200GB ketta image fail on 200GB suur, olgugi et suurem osa sellest ruumist võis tühi olla. Mõistlik oleks image fail kohe alguses gzip'i sisendisse suunata.

dd if=/dev/sda | gzip > /home/user/varukoopia.img.gz

Alati ei ole vajalik terve ketta kopeerimine vaid piisab ka mingi kindla partitsiooni kopeerimisest.

CD/DVD

CD/DVD tõmmise tegemiseks

dd if=/dev/cdrom of=/home/user/CD_image.iso

Tekkinud tõmmist saab kasutada nagu tavalist CD/DVD seadet. Selleks tuleks iso-fail failisüsteemi ühendada

mkdir /mnt/imageCD
mount -o loop /home/user/CD_image.iso /mnt/imageCD

Floppy

floppy hdd -> gzip,partitsioon mbr

Backup ja restore

suuruste probleem, jupitamine

üle võrgu: ssh & netcat

Kopeerida saab ka osa mingist andmekandjast. Näiteks kõvaketta esimesel 512 baidil asub ketta master boot record. Sellest on kasulik eraldi varukoopia teha.

dd if=/dev/sda of=/home/user/MBR_koopia.img bs=512 count=1 

Kuna tõmmise tegemisel kirjutatakse faili kogu kõvakettal olev info. Kui tühi ruum on nullidega üle kirjutatud, siis pakitud tõmmis tuleb oluliselt väiksem, kuna nullid pakkuvad hästi kokku.

dd if=/dev/sda1 | ssh user@192.168.0.1 "sudo dd of=/home/user/sda1.img"

Kõvaketta puhastamine

Nullidega ülekirjutamine

Mõnikord võib tekkida vajadus andmekandja puhastamiseks kogu eelnevalt talletatud infost. Näiteks arvuti või kõvaketta müümisel, peale kasutusest mahavõttu vms. Selleks on võimalik dd-käsku kasutades ketas nullidega üle kirjutada ja muuta kogu kõvakettal olnud info mittetaastatavaks. Paranoilised isikud võivad seda isegi mitu korda teha :-) Süsteemiketta puhastamiseks tuleb arvuti live-CD pealt üles bootida.

dd if=/dev/zero of=/dev/sda

Peale ketta puhastamist oleks hea ka kontrollida, kas ketas on ikka tõepoolest puhas.

dd if=/dev/sda bs=1M count=10 | hexdump -C

Aja kokkuhoiu mõttes võib piirduda näiteks ketta ühe osa ülevaatamisega. Bs=1M ja count=10 argumentidega vaatame läbi andmekandja esimesed 10MB

Vaba ruumi puhastamine

Teine variant on see, et kogu vaba ruum suvaliste andmetega üle kirjutada. Kogu senine info jääb kettale alles. Vaba ruum kirjutatakse suvaliste andmetega üle, nii et kettalt juba kustutatud asjad pole enam kättesaadavad.

dd if=/dev/urandom of=/home/user/suurfail.tmp

Selle käsuga hakatakse genereerima suvalistest andmetest faili ja see protsess kestab niikaua kuni kettal veel vaba ruumi on. Vaba ruumi lõppemisel protsess katkestatakse. Peale seda tuleb kindlasti see fail ära kustutada, et kettale taas ruumi tekiks.

rm /home/user/suurfail.tmp

hdd analüüs/testimine

kiirused noorendamine hexdump

märkused

DD ei näita enne töö lõpetamist ekraanil mingit väljundit asjad võtavad palju aega