DD

Disk Destroyer ;-)

Over de betekenis van de naam van het programma dd is men het in de Linux gemeenschap niet allemaal eens, het is gebaseerd op een Unix® tool waarvan de naam Data Description betekend. Maar volgens anderen betekend het Disk Dumper of nog iets anders.

Omdat dit een zeer gevaarlijk commando is (bij foutief gebruikt) wordt het ook vaak Disk Destroyer (of Data Destroyer of iets dergelijks genoemd).

Je vraagt je nu misschien af, als dit zo’n gevaarlijk programma is, waarom gebruikt men het dan ? De reden is vrij eenvoudig, met dd kun je een exacte één-op-één kopie maken van een harde-schijf, CD/DVD/USB, etc. en je kunt het gebruiken om data te wissen (mocht je dat ooit willen doen).

De reden waarom ik zelf dd regelmatig gebruik is om mijn Debian (en andere) ISO bestanden naar een USB-Stick te “branden” om zo een Live/Install medium te maken. Dus zonder gebruik te maken van een GUI applicatie (zoals Unetbootin bijvoorbeeld).

Omdat een kleine fout in het gebruik van dit commando desastreus kan zijn ga ik in mijn voorbeelden niet de echte devicenames (/dev/sda of /dev/sdb) gebruiken, maar /dev/sdX. Om te voorkomen dat mensen via Copy & Paste het verkeerde commando ingeven op hun systeem. Je moet dus de /dev/sdX of dev/sdY vervangen door het device wat in jouw geval het correcte is. Merk ook op dat we het volledige device benaderen en niet individuele partities, dus /dev/sda en niet /dev/sda1.

De basis syntaxis van dd is: dd if=[bestand/device] of=[bestand/device] [parameters]
  • if = Input
  • of = Output
Voorbeeld: ik wil het bestand debian-9.3.0-amd64-netinst.iso “branden” naar een USB-Stick op /dev/sdX het simpelste commando is dan:

$ sudo dd if=debian-9.3.0-amd64-netinst.iso of=/dev/sdX

Mits we ons in de directory bevinden waar het bestand debian-9.3.0-amd64-netinst.iso zich bevindt.

Om ervoor te zorgen dat alle gegevens effectief naar de stick worden geschreven gebruik ik hierna alijd het commando :

$ sudo sync dus dan wordt het commando in dit geval :

$ sudo dd=if=debian-9.3.0-amd64-netinst.iso of=/dev/sdX ; sudo sync

Als je op het internet kijkt zal je bij sommige instructies om ISO bestanden te branden met dd ook de parameter BS= zien staan. Dit bepaalt het aantal bytes dat per keer geschreven wordt. Meestal zullen de instructies BS=1M of BS=4M aangeven.

Passen we dit toe op ons commando dan krijgen we het volgende: $ sudo dd=if=/debian-9.3.0-amd64-netinst.iso of=/dev/sdX BS=4M ; sudo sync

Willen we een CD/DVD naar ISO kopieren draaiën we de input en output gewoon om:

$ sudo dd if=/dev/sdX of=/home/patrick/ISO/debian-9.3.0-amd64-netinst.iso

Een schijf volledig wissen doen we met:

$ sudo dd if=/dev/null of=/dev/sdX ; sudo sync

of een schijf vullen met willekeurige (random) data:

$ sudo dd if=/dev/random of=/dev/sdX ; sudo syn

Nogmaals, LET OP bij het gebruik van dd, vooral bij de laatste 2 commando’s want de gegevens kunnen onherroepelijk verwijderd worden 1

Met dd kun je natuurlijk nog veel meer doen, maar aangezien dit een tool is voor de meer ervaren gebruikers (of zij die graag op het scherp van de snee leven) stel ik voor om de ddmanpages en/of infopages te raadplegen voor andere mogelijkheden. En als je niet weet hoe dit te doen (het raadplegen van de manpages of infopage voor dd) is het waarschijnlijk nog te vroeg om verder te experimenteren met dd ;-)

1 Of je moet een goede vriend hebben bij de C.I.A. ;-)