Korištenje naredbe dd

Naredba dd (Definicija skupa podataka) jednostavan je, koristan i iznenađujuće jednostavan alat; Ovim alatom možete učiniti samo na uređajima: diskovima i particijama, kao i kod komercijalnih programa poput Norton Ghost, na Windowsima ili besplatnim programima poput CloneZille na Linuxu, i to samo kratkim naredbenim retkom.

Osnovna sintaksa:

Najosnovnija sintaksa za upotrebu naredbe dd bila bi sljedeća:

sudo dd if=origen of=destino

gdje ako znači "ulazna datoteka = ulazna datoteka“, Odnosno ono što želite kopirati i sredstava "izlazna datoteka = izlazna datoteka“, Odnosno odredišna datoteka (gdje će se podaci kopirati);podrijetlo i Odredište mogu biti uređaji (CD ili DVD čitač, tvrdi disk, disketa, pendrive, particija itd.), Sigurnosna kopija datoteke ili slike diska itd., Ali ne i mape ili podmape.

Za nesmetanu upotrebu ove naredbe, prvo je uvijek jasno kako se particije / tvrdi diskovi nazivaju u Linuxu (na primjer / dev / sda1; / dev potječe od device = device, na engleskom). kako bismo saznali izvorni i odredišni disk / particiju, nešto što lako možemo saznati naredbom sudo fdisk -lo s nekim grafičkim particijskim programom poput gparted. Sve informacije o naredbi dd potražite kod naredbe man dd i info dd,

Ovu naredbu treba koristiti s oprezom i uvijek provjeravati redoslijed i naziv diskova / particija, jer kao što je disk kloniran, on ga u trenu briše.

Sintaksa s naredbom pv: Korištenje naredbe dd s prethodnom sintaksom ima mali nedostatak, jer je vrlo rezervirana naredba - ne daje informacije - jer kada se izvrši, terminalski upit ostaje nepomičan, pa ne znamo što se događa i koliko je vremena ostalo da se izvrši. Ovu manju neugodnost moguće je riješiti dodavanjem naredbe pv, (*) - koja djeluje kao terminalna cijev koja mjeri podatke koji kroz nju prolaze - u sintaksu naredbe dd, tako da bi sada sintaksa bila:

dd if=origen |pv|dd of=destino

Kao rezultat, dobili bismo neku vrstu trake napretka na terminalu, podatke o bajtovima koji se prenose, vremenu provedenom i brzini prijenosa, sve u stvarnom vremenu.

(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd od = / dev / mmcblk0p2 1,630 GB 0:21:30 [1,12 MB / s] [

Također po završetku prikazuje nam statistiku brzine prijenosa, ukupnog broja prenesenih bajtova i ukupnog vremena potrebnog za prijenos svih podataka.

(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd od = / dev / mmcblk0p2 10530816 + 0 pročitanih zapisa <=> 10530816 + 0 zapisanih zapisa 5391777792 bajta (5.4 GB) kopirano, 3873,48 s, 1,4 MB / s 5,02 GB 1:04:33 [1,33 MB / s] [<=> 10530816 + 0 pročitanih zapisa <=> 10530816 + 0 zapisanih zapisa 5391777792 bajta (5.4 GB) kopirano, 3873,48, 1,4 s, XNUMX MB / s (alf) - (~) └──┤

(*) Prije izvođenja bilo kojeg naredbenog retka s ovom drugom sintaksom provjerite je li na sustav instaliran pv paket ili ga instalirajte ako ga nemamo: oboje sa Synapticom.

Pogledajmo nekoliko praktičnih primjera i opcija ove naredbe (u njenoj verziji s trikom koji je gore objašnjen s naredbom pv):

A) O tvrdim diskovima i particijama:

= Kloniranje tvrdog diska:

Ovim bismo klonirali hda disk u hdb. (IDE diskovi):

sudo dd if=/dev/hda |pv|dd of=/dev/hdb bs=1M

Ovim bismo klonirali sda disk u sdb. (SATA diskovi):

sudo dd if=/dev/sda |pv|dd of=/dev/sdb bs=1M

Opcijom bs = 1M postiže se da se i čitanje i pisanje obavljaju u blokovima od 1 megabajta, (manje, bilo bi sporije, ali sigurnije, a s više riskiramo gubitak podataka na putu).

Imajte na umu da se na taj način disk snima "kakav jest", MBR, tablica particija, prazan prostor itd., Tako da možete snimati samo na disk iste ili veće veličine.

= Napišite samo prvu particiju (hda1) izvornog diska na odredišni disk (hdb):

sudo dd if=/dev/hda1 |pv|dd of=/dev/hdb bs=1M

= Snimite cijeli disk (hda) na prvu particiju (hdb1) odredišnog diska:

sudo dd if=/dev/hda |pv|dd of=/dev/hdb1 bs=1M

= Stvorite sliku - može biti bin ili iso - s tvrdog diska (hda), u / home direktoriju:

sudo dd if=/dev/hda |pv|dd of=/home/hda.bin

= Potpuno izbrišite podatke s diska: da biste to učinili, napunite disk slučajnim znakovima pet puta. Na disku neće biti traga informacijama:

for n in {1..5}; do dd if=/dev/urandom |pv|dd of=/dev/hda bs=8b conv=notrunc;

= Izbrišite bilo koju particiju i cijeli disk s bilo kojeg uređaja:

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (Potpuno brisanje diska)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (Brisanje particije diska)

gdje je: x disk za brisanje, a particija za brisanje

Ova je operacija vrlo korisna za potpuno brisanje bilo koje particije, osim toga podaci koji će se izbrisati ne mogu se povratiti, stoga je to vrlo nisko i vrlo sigurno brisanje, vrlo korisno, na primjer kada se pendrive zaraze virusima s našim dragim prozorima .

B) Na CD-u / DVD-u

= Stvori / montiraj .iso sliku s CD-a (ili DVD-a)

Da biste stvorili .iso sliku CD-a u direktoriju / home:

sudo dd if=/dev/cdrom |pv|dd of=/home/imagendeCD.iso

Da biste montirali .iso sliku s CD-a:

sudo mount -o loop imagedeCD.iso /mnt/home

= Oporavak ogrebotina DVD-a (Ovo neće oporaviti cijeli DVD, u ovom slučaju samo čitave sektore). Također je pogodan za neispravne tvrde diskove:

sudo dd if=/dev/cdrom |pv|dd of=/home/dvd_recuperado.iso conv=noerror,sync

Opcija noerror koristi se za izbjegavanje pogrešaka u čitanju u bilo kojoj situaciji.

C) O MBR i VBS:

= Kopiraj / vrati glavni zapis pokretanja (MBR):

Da biste kopirali MBR:

sudo dd if=/dev/hda |pv|dd of=mbr count=1 bs=512

Da biste vratili MBR:

sudo dd if=mbr |pv|dd of=/dev/hda

= Očistite našu MBR i tablicu particija:

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=512 count=1

= Očistite MBR, ali ne dodirujte tablicu particija, (vrlo korisno izbrisati GRUB bez gubitka podataka na particijama):

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=446 count=1

= Kopiraj / obnovi sektor za podizanje glasnoće (VBS):

Da biste kopirali VBS:

sudo dd if=/dev/hda |pv|dd of=/home/sector_arranque_hda count=1 bs=512

Da biste vratili VBS:

sudo dd if=/home/sector_arranque_hda |pv|dd of=/dev/hda

D) Ostalo:

= Snimite sliku diska u naš / home direktorij, preskačući pogreške na disku (vrlo korisno za diskove koji umiru):

sudo dd conv=noerror if=/dev/hda |pv|dd of=~/home/imagen_disco_con_errores.iso

= Stvorite praznu datoteku od 1 Mb:

sudo dd if=/dev/zero |pv|dd of=archivo_nuevo_vacio bs=1024 count=1024

= Stvorite swap datoteku od 2Gb:

sudo dd if=/dev/zero |pv|dd of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace

= Pretvori sva slova u velika slova:

sudo dd if=miarchivo |pv|dd of=miarchivo conv=ucase

Koristite naredbu dd s programom za grafičko okruženje: Gdiskdump, je grafičko okruženje za ovu naredbu dd koje olakšava zadatak klonirati particije ili diskove, brzo i jednostavno. Može se preuzeti sa stranice https://launchpad.net/gdiskdump/ Jednom kad ga otvorimo, s root dopuštenjima - sudo gdiskdump -, vidimo da je program vrlo jednostavan za upotrebu, jer mu samo moramo reći particiju ili disk da ga kloniraju (Input Format) i njegovo odredište (Output Format).