Tento článek je výňatek z kapitoly 4 Linuxu v akci, vydaného společností Manning.
Ať už se snažíte zachránit data z umírajícího úložného disku, zálohovat archivy na vzdálené úložiště nebo vytvořit dokonalou kopii aktivního oddílu někde jinde, budete potřebovat vědět, jak bezpečně a spolehlivě kopírovat disky a souborové systémy. Naštěstí dd
je jednoduchý a výkonný nástroj pro kopírování obrázků, který existuje, no, skoro odjakživa. A za celou tu dobu nepřišlo nic, co by dělalo práci lépe.
Vytváření dokonalých kopií jednotek a diskových oddílů
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
S dd
můžete dělat nejrůznější věci pokud budete dostatečně usilovně zkoumat, ale to, co svítí, je způsob, jakým vám umožňuje hrát si s oddíly. Můžete samozřejmě použít tar
nebo dokonce scp
replikovat celé souborové systémy zkopírováním souborů z jednoho počítače a jejich vložením tak, jak jsou, na novou instalaci Linuxu na jiném počítači. Ale protože tyto archivy souborového systému nejsou kompletní obrazy, budou vyžadovat běžící hostitelský OS na obou koncích, aby sloužil jako základ.
Pomocí dd
, na druhou stranu, dokáže vytvořit dokonalé obrázky po jednotlivých bajtech téměř čehokoli digitálního. Ale než začnete přehazovat oddíly z jednoho konce Země na druhý, měl bych zmínit, že na tom starém unixovém administrátorském vtipu je něco pravdy:"dd znamená ničitel disku ." Pokud do dd
zadáte byť jen jeden špatný znak můžete okamžitě a trvale vymazat celou jednotku cenných dat. A ano, pravopis se počítá.
Pamatujte: Před stisknutím klávesy Enter proveďte vyvolat dd
, zastavte se a velmi pečlivě přemýšlejte!
Základní operace dd
Nyní, když jste byli náležitě varováni, začneme s něčím přímočarým. Předpokládejme, že chcete vytvořit přesný obraz celého disku s daty, který byl označen jako /dev/
sda
. Připojili jste prázdný disk (ideálně se stejnou kapacitou jako váš /dev/
sda
Systém). Syntaxe je jednoduchá:if=
definuje zdrojovou jednotku a of=
definuje soubor nebo umístění, kam chcete uložit data:
# dd if=/dev/sda of=/dev/sdb
Další příklad vytvoří archiv .img z /dev/
sda
disk a uložte jej do domovského adresáře svého uživatelského účtu:
# dd if=/dev/sda of=/home/username/sdadisk.img
Tyto příkazy vytvořily obrazy celých jednotek. Můžete se také zaměřit na jeden oddíl z disku. Následující příklad to dělá a také používá bs
pro nastavení počtu bajtů ke kopírování najednou (v tomto případě 4 096). Hraní s bs
hodnota může mít vliv na celkovou rychlost dd
provozu, i když ideální nastavení bude záviset na vašem hardwarovém profilu a dalších aspektech.
# dd if=/dev/sda2 of=/home/username/partition2.img bs=4096
Obnovení je jednoduché:Efektivně změníte hodnoty if
a of
. V tomto případě if=
vezme obraz, který chcete obnovit, a of=
vezme cílovou jednotku, na kterou chcete zapsat obrázek:
# dd if=sdadisk.img of=/dev/sdb
Můžete také provádět operace vytvoření a kopírování v jednom příkazu. Tento příklad například vytvoří komprimovaný obraz vzdáleného disku pomocí SSH a výsledný archiv uloží na váš místní počítač:
# ssh [email protected] "dd if=/dev/sda | gzip -1 -" | dd of=backup.gz
Vždy byste měli otestovat své archivy, abyste se ujistili, že fungují. Pokud je to spouštěcí jednotka, kterou jste vytvořili, vložte ji do počítače a zjistěte, zda se spouští podle očekávání. Pokud se jedná o normální datový oddíl, připojte jej, abyste se ujistili, že soubory existují a jsou správně přístupné.
Vymazání disků pomocí dd
Před lety jsem měl přítele, který byl zodpovědný za bezpečnost na zámořských ambasádách své vlády. Jednou mi řekl, že každé velvyslanectví pod jeho dohledem bylo vybaveno oficiálním vládním kladivem. Proč? Pro případ, že by zařízení někdy hrozilo přepadení nepřáteli, mělo být kladivo použito ke zničení všech jejich pevných disků.
co to je Proč data prostě nesmazat? To nemyslíš vážně, že ne? Každý ví, že smazáním souborů obsahujících citlivá data z úložných zařízení data ve skutečnosti neodstraníte. S dostatkem času a motivace lze prakticky z jakéhokoli digitálního média získat téměř cokoli, snad s výjimkou těch, která byla dobře a správně zatlučena.
Můžete však použít dd
aby bylo pro padouchy mnohem obtížnější dostat se k vašim starým datům. Tento příkaz stráví nějaký čas psaním milionů a milionů nul přes každý kout a skulinu /dev/sda1
oddíl:
# dd if=/dev/zero of=/dev/sda1
Ale je to lepší. Pomocí /dev/
urandom
soubor jako zdroj, můžete zapisovat přes disk s náhodnými znaky:
# dd if=/dev/urandom of=/dev/sda1
Monitorování operací dd
Protože archivace disku nebo diskového oddílu může trvat velmi dlouho, možná budete chtít do příkazu přidat monitor průběhu. Nainstalujte Pipe Viewer (sudo apt install pv
na Ubuntu) a vložte jej do dd
. Pomocí pv
, ten poslední příkaz může vypadat nějak takto:
# dd if=/dev/urandom | pv | dd of=/dev/sda1
4,14MB 0:00:05 [ 98kB/s] [ <=> ]
Odkládáte zálohování a správu disků? Díky dd vám nezbude příliš mnoho výmluv. Opravdu to není těžké, ale buďte opatrní. Hodně štěstí!