dd (Unix)

dd
Typ softwarustandardní UNIXová utilita či příkaz
Některá data mohou pocházet z datové položky.

dd (z anglického disk duplicator, případně disk destroyer) 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ší).[1]

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.[2] Název dd je narážka na příkaz DD v Job Control Language (JCL) od IBM,[3][4] podle iniciálů "Data Definition".[3][5]

Původně byl dd zamýšlen pro převod mezi ASCII a EBCDIC. Objevil se poprvé v Unix verze 5.[6] 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.[7]

Alternativou pro tento úkol je programy shred a wipe[8], 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

V tomto článku byl použit překlad textu z článku Dd (Unix) na anglické Wikipedii.

  1. Austin Group. POSIX standard: dd invocation [online]. [cit. 2016-09-29]. Dostupné online. 
  2. Archivovaná kopie [online]. [cit. 2016-12-05]. Dostupné v archivu pořízeném dne 2008-02-14. 
  3. a b Eric S. Raymond. dd [online]. [cit. 2008-02-19]. Dostupné online. 
  4. Šablona:Cite newsgroup
  5. Šablona:Cite newsgroup
  6. Šablona:Cite techreport
  7. WRIGHT, Craig; KLEIMAN, Dave; SUNDHAR R.S., Shyaam. Overwriting Hard Drive Data: The Great Wiping Controversy. Lecture Notes in Computer Science. 2008, s. 243–257. Dostupné v archivu pořízeném dne 2019-09-24. DOI 10.1007/978-3-540-89862-7_21.  Archivovaná kopie. www.springerlink.com [online]. [cit. 2016-12-05]. Dostupné v archivu pořízeném z originálu. 
  8. Wipe: Secure File Deletion [online]. Wipe.sf.net [cit. 2014-03-24]. Dostupné online. 

Externí odkazy