dd je počítačový program s rozhraním pro příkazový řádek, jehož hlavním účelem je převod a kopírování souborů. Používá se v Unix a operačních systémech unixového typu (například Linux, FreeBSD, Mac OS a další).

V Unixu ovladače zařízení pro hardware (například pevné disky) a speciální soubory (např. /dev/zero nebo /dev/urandom), jsou v systému souborů reprezentovány stejně jako normální soubory; dd může také číst anebo zapisovat z a do těchto souborů, za předpokladu, že funkce je implementována v jejich ovladačích. Proto může být dd použit pro úkoly, jako je zálohování boot sektoru pevného disku nebo získání náhodných dat o stanovené velikosti. Program dd může také provádět převody dat během jejich kopírování, a to včetně změny endianity a konverze do a z ASCII a EBCDIC kódování textu. Název dd je narážka na příkaz DD v Job Control Language (JCL) od IBM, podle iniciálů "Data Definition".

Původně byl dd zamýšlen pro převod mezi ASCII a EBCDIC. Objevil se poprvé v Unix verze 5. Příkaz dd je specifikován v IEEE Std 1003.1-2008, který je součástí Single UNIX Specification.

Použití Příkaz dd může být použit pro mnoho různých účelů. Ve výchozím nastavení dd čte ze standardního vstupu a zapisuje do standardního výstupu. Toto chování lze měnit pomocí parametrů if (vstupní soubor) a of (výstupní soubor).

Přenos dat dd může duplikovat data napříč soubory, zařízeními, diskovými oddíly a svazky. Data mohou být vstupem či výstupem do a z každého z nich. Během přenosu mohou být data měněna pomocí parametru conv.

+Formy dd pro přenos dat $ dd if=/dev/sr0 of=myCD.iso bs=2048 conv=noerror,sync Vytvoří ISO obraz disku z disku CD-ROM $ dd if=hdx.img of=/dev/hdx bs=2048 conv=noerror,sync Obnoví pevný disk (nebo třeba paměťovou kartu SD) z dříve vytvořeného obrazu.$ dd if=/dev/sda2 of=/dev/sdb2 bs=4096 conv=noerror Klonuje jeden oddíl do druhého. $ dd if=/dev/ad0 of=/dev/ad1 bs=1M conv=noerror Klonuje pevný disk "ad0" na "ad1". Parametr noerror programu sděluje, že uživatel chce pokračovat, pokud se objeví chyba.

Přepsání disku Z bezpečnostních důvodů je někdy nutné vyřazený disk kompletně přepsat.

Příkaz dd může být použit k přepisu disku zápisem nul takto: $ dd if=/dev/zero of=/dev/sda bs=4k

Jiný způsob je přepis disku pomocí zápisu náhodných dat:

$ dd if=/dev/urandom of=/dev/sda bs=4k

Parametr bs=4k znamená čtení a zápis 4 kb zároveň. Přepsání disku náhodnými daty bude vždy trvat déle, než přepis nulami, protože náhodné údaje musí být vygenerovány. Na většině moderních disků přepis nulami zamezí budoucí obnově dat.

Alternativou pro tento úkol je programy shred a wipe, které jsou přítomny v mnoha linuxových distribucích.

Benchmarking výkonu disku Benchmark test disku a sekvenční analýza systémového výkonu čtení a zápisu pro bloky o velikosti 1024 bajtů: $ dd if=/dev/zero bs=1024 count=1000000 of=file_1GB $ dd if=file_1GB of=/dev/null bs=1024

Generování souboru s náhodnými daty K vytvoření souboru ze 100 náhodných bajtů pomocí /dev/random: $ dd if=/dev/urandom of=myrandom bs=100 count=1

Reference

Externí odkazy dd : manuálová stránka GNU Core Utilities.

Kategorie:Standardní unixové příkazy