Pomocí příkazu dd

Příkaz dd (definice datové sady) je jednoduchý, užitečný a překvapivě snadno použitelný nástroj; S tímto nástrojem můžete dělat to samé na zařízeních: discích a diskových oddílech, jako u komerčních programů, jako je Norton Ghost, v systému Windows nebo bezplatných programech, jako je CloneZilla, v systému Linux, a to pomocí krátkého příkazového řádku.

Základní syntaxe:

Nejzákladnější syntaxe pro použití příkazu dd by byla tato:

sudo dd if=origen of=destino

kde pokud znamená „vstupní soubor = vstupní soubor„To znamená, co chcete kopírovat a prostředků "výstupní soubor = výstupní soubor„, To znamená, cílový soubor (kam budou data zkopírována);původ a Cíl může být zařízení (čtečka CD nebo DVD, pevný disk, disketa, pendrive, oddíl atd.), Záložní soubor nebo obraz disku atd., Ale ne složky nebo podsložky.

Pro bezproblémové použití tohoto příkazu je první věcí vždy jasné, jaké oddíly / pevné disky se v Linuxu nazývají (například / dev / sda1; / dev pochází z device = device, anglicky). abychom zjistili zdrojový a cílový disk / diskový oddíl, něco, co můžeme snadno zjistit pomocí příkazu sudo fdisk -lo s nějakým programem grafických oddílů, jako je gparted. Veškeré informace o příkazu dd lze konzultovat s příkazem man dd a info dd,

Tento příkaz je třeba používat opatrně a vždy kontrolovat pořadí a název disků / diskových oddílů, protože stejně jako je disk klonován, okamžitě jej vymaže.

Syntaxe s příkazem pv: Použití příkazu dd s předchozí syntaxí má malou nevýhodu, protože se jedná o velmi vyhrazený příkaz - neposkytuje informace - protože při jeho provádění zůstává terminál nehybný, takže nevíme, co je to, co se děje a kolik času zbývá na dokončení provádění. Tento malý problém lze vyřešit přidáním příkazu pv, (*) - který funguje jako terminál, který měří data, která jím procházejí - do syntaxe příkazu dd, takže nyní bude syntaxe:

dd if=origen |pv|dd of=destino

Ve výsledku bychom v terminálu získali jakýsi indikátor průběhu, informace o přenesených bajtech, době běhu a rychlosti přenosu, vše v reálném čase.

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

Po dokončení nám také zobrazí statistiky přenosové rychlosti, celkové přenesené bajty a celkovou dobu potřebnou k přenosu všech dat.

(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd = = / dev / mmcblk0p2 10530816 + 0 přečtených záznamů <=> 10530816 + 0 zapsaných záznamů 5391777792 bytů (5.4 GB) zkopírováno, 3873,48 s, 1,4 MB / s 5,02 GB 1:04:33 [1,33 MB / s] [<=> 10530816 + 0 přečtených záznamů <=> 10530816 + 0 zapsaných záznamů 5391777792 bajtů (5.4 GB) zkopírováno, 3873,48, 1,4 s, XNUMX MB / s (alf) - (~) └──┤

(*) Před provedením libovolného příkazového řádku s touto druhou syntaxí zkontrolujte, zda máme v systému nainstalovaný balíček pv, nebo jej nainstalujte, pokud jej nemáme: oba se Synapticem.

Podívejme se na několik praktických příkladů a možností tohoto příkazu (v jeho verzi s výše vysvětleným trikem pomocí příkazu pv):

A) O pevných discích a diskových oddílech:

= Klonovat pevný disk:

S tímto bychom naklonovali disk hda do hdb. (Disky IDE):

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

S tímto bychom naklonovali disk sda do sdb. (SATA disky):

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

U možnosti bs = 1M je dosaženo toho, že čtení i zápis jsou prováděny v 1 megabajtových blocích (méně, bylo by to pomalejší, ale bezpečnější a s více riskujeme ztrátu dat).

Mějte na paměti, že tímto způsobem se disk zaznamenává „tak, jak je“, MBR, tabulka oddílů, prázdné místo atd ..., takže můžete nahrávat pouze na disk stejné nebo větší velikosti.

= Na cílový disk (hdb) zapište pouze první oddíl (hda1) zdrojového disku:

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

= Vypálit celý disk (hda) na první oddíl (hdb1) cílového disku:

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

= Vytvořit obrázek - může být bin nebo iso - z pevného disku (hda), v adresáři / home:

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

= Úplně smažte informace na disku: za tímto účelem vyplňte disk náhodnými znaky pětkrát. Na disku nebude žádná stopa informací:

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

= Vymažte libovolný oddíl a celý disk z libovolného zařízení:

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (Vymazání celého disku)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (Disk partition erase)

kde: x je disk k vymazání, a je oddíl k vymazání

Tato operace je velmi užitečná k úplnému vymazání libovolného oddílu, navíc nelze obnovit data, která budou vymazána, proto se jedná o nízkoúrovňové a velmi bezpečné mazání, což je velmi užitečné například při infikování pendrive viry pomocí našeho drahá okna.

B) Na CD / DVD

= Vytvořit / připojit obrázek .iso z CD (nebo DVD)

Chcete-li vytvořit obraz .iso CD v adresáři / home, postupujte takto:

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

Připojení obrazu .iso z CD:

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

= Obnovit poškrábané DVD (Tím se neobnoví celé DVD, v tomto případě pouze čitelné sektory). Je také vhodný pro vadné pevné disky:

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

Možnost noerror slouží k zabránění chybám čtení v jakékoli situaci.

C) O MBR a VBS:

= Kopírovat / Obnovit hlavní spouštěcí záznam (MBR):

Kopírování MBR:

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

Obnovení MBR:

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

= Vyčistěte náš MBR a tabulku oddílů:

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

= Vymaže MBR, ale nedotkne se tabulky oddílů (velmi užitečné pro vymazání GRUBu bez ztráty dat na oddílech):

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

= Copy / Restore Volume Boot Sector (VBS):

Kopírování VBS:

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

Obnovení VBS:

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

D) Ostatní:

= Vypálit obraz disku v našem adresáři / home, přeskočit chyby disku (velmi užitečné pro umírající disky):

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

= Vytvořit prázdný 1 Mb soubor:

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

= Vytvořit 2Gb odkládací soubor:

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

= Převést všechna písmena na velká:

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

Použijte příkaz dd s programem grafického prostředí: Gdiskdump, je grafické prostředí pro tento příkaz dd, které usnadňuje úkol klonujte oddíly nebo disky, rychle a snadno. Lze jej stáhnout ze stránky https://launchpad.net/gdiskdump/ Jakmile jej otevřete, s oprávněním root - sudo gdiskdump -, vidíme, že program je velmi snadno použitelný, protože mu musíme říct pouze klonovaný oddíl nebo disk (vstupní formát) a jeho cíl (výstupní formát).


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   sieg84 řekl

    Při zneužití příkazu dd jsem se téměř stal diabetikem.
    mimochodem, jaký by byl rozdíl s dd_rescue?

    1.    vůbec řekl

      ddrescue se ve výchozím nastavení nezastaví při chybách čtení a pokusí se různými prostředky obnovit nečitelné informace.

    2.    Sheko řekl

      hahahha Také jsem použil příkaz dd velmi špatně, je mnohem silnější, než jsem si myslel.

  2.   hnije87 řekl

    Poznamenávám, že věřím, že každý uživatel archu v určitém okamžiku použil

  3.   Alf řekl

    @ sieg84, rozdíl je v tom, že dd bylo přerušeno nějakou chybou čtení nebo zařízení, v tomto případě se to nestane, protože poškozený blok to přečte určitý počet opakování a bude pokračovat dalším, poskytuje to také výhodu, že Můžeme jej spustit několikrát na stejném obrázku a nezačne to od nuly, ale pokusíme se ho dokončit.

    Za zmínku stojí, že dd_rescue jsem ho nikdy nepoužíval.

    1.    deblinit Merlin řekl

      Alf, existuje nějaké GUI vytvořené v qt pro KDE, které používá tento příkaz? nebo musím rezignovat?

      1.    Červenec řekl

        Gdiskdump je pro tento příkaz více než GUI (je na něm založen) a i když nevím, jestli to udělali v qt (myslím, že ne), téměř jistě to pro vás funguje v KDE

    2.    sieg84 řekl

      děkuji za vysvětlení.
      Použil jsem pouze dd_rescue ke kopírování ISO na USB (hlavně proto, že na openSUSE wiki to měli).
      dd_rescue tu.iso / dev / sdX
      to, co se mi líbí, je to, že ukazuje indikátor průběhu:
      http://box.jisko.net/i/110db781.png

  4.   krel řekl

    Alfa:
    Nedávno jsem viděl stejný příspěvek zveřejněný na blogu Hatteras. Je pravděpodobné, že to nebere špatně, ale já nevím, alespoň jako zdvořilost by bylo dobré se na to odvolat. Takže také vyhrává v umístění webu.

    Nechci s tím vytvořit dilema, ale na první pohled se článek zdá být na 95% identický, kromě screenshotů terminálu, které jste upravili. Dokonce se zmínil o svých zdrojích.

  5.   deblinit Merlin řekl

    Zajímavé Přiznávám, že | pv | neznal ho.

    Krel Myslím, že zdroj je v ubuntu wiki nebo arch pozdravy.

  6.   Alf řekl

    @krel, linuxová věc je tato:

    Po celou dobu své cesty na tomto světě jsem četl a sbíral věci, mám notebook s více než 400 příspěvky, které jsem vložil do Ubuntu Mexico, což byla komunita, do které jsem v mých počátcích nejvíce přispěl, bohužel se věci mohou opakovat, pokud zkontrolujete velké množství příspěvek na netu, jsou téměř ve stejném pořadí, věc je, že většina je kratších.

    Mohu zveřejnit dalších 5 příspěvků za týden a můžete najít další podobné nebo stejné, důvod? ubuntu má na internetu nejvíce fór / blogů.

    V žádném případě si nemyslím, že tu bude nějaké dilema, a pokud administrátoři uvažují o jeho smazání, vůbec by mě to neurazilo a neobtěžovalo, řídím se pravidly a co následuje, mezi mými poznámkami 8, že je nemám v pořádku) hledám něco přidat vyhnout se náhodě.

    pozdravy

    1.    krel řekl

      Není nikomu záhadou, že maximálně pouze 10% obsahu generovaného na webu je nových. U ostatních 90 je duplikovaný, obnovený nebo zachráněný obsah a já neříkám, že je to méně důležité, naopak je to forma šíření znalostí.

      Kde se však zastavím, je něco jiného. Pokud máte blog tohoto typu, existuje osobní motivace pomoci a možná dokonce získat uznání za něj. Zároveň jsem si jist, že většina těch, kteří píší obsah o svobodném softwaru, souhlasí s myšlenkou sdílení. Nezapomínejme však, že i ty nejušlechtilejší licence, jako je BSD, žádají o uznání.

      Reference je také způsob, kterým některé vyhledávače, jako je google, zlepšují umístění webových stránek. Jen říkám, protože materiál byl použit jako minimum vděčnosti, odkazoval bych na tuto práci.

      Myslím, že je skvělé, že sdílíte, ale co ztratíte tím, že uděláte referenci? Přemýšlejte, zda by z jiného blogu s lepší pozicí než je tento byl obsah tohoto duplikován. desdelinux Bez odkazování by nakonec tento blog pohřbili.

      Hatteras to publikoval před 10 dny, a pokud to nevyndal z vašeho zápisníku nebo nejste Luis Puente, nemohu vysvětlit, co říkáte, je to tak, že téměř všechno je textové. Nepravděpodobné, ale ne nemožné.

      Ale nic, že ​​by se takové věci staly. A já nevím, pro osobní etiku a pro spolupráci s jiným kolegou bych se na něj odvolal. To záleží na vás, nemyslím si, že Hatteras to bere špatně, právě naopak.

      1.    MSX řekl

        Je pravda, je to věrná kopie tohoto příspěvku: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/

  7.   Ten předtím řekl

    Hmm ... udělal jsem dd if = file.iso z = / media / hard disk ... omylem 😛
    jakýkoli způsob, jak obnovit soubory z pevného disku ???

    1.    živý řekl

      Můžete použít Testdisk

    2.    deblinit Merlin řekl

      Přítel se mi stal možná s testdiskem nebo se specializovaným živým distro na záchranu dat. Moje doporučení, abych si příště udělal zálohu, protože použití tohoto příkazu je v mých nováčkovských dobách něčím choulostivým na formátování celého pevného disku, aniž bych chtěl a nyní restartovat dobře ... Není třeba říkat, že ani grub nezačal.

  8.   Raul řekl

    Může mi někdo říct, jaký příkaz mám použít k zobrazení průběhu kopírování pomocí příkazu dd, mám na mysli zobrazení pruhu postupu s%, které bylo kopírováno.

    Slds

    1.    Červenec řekl

      Příteli! přidání příkazu pv. Ve stejném příspěvku to říká téměř na začátku a vysvětluje, jak jej používat. Přečtěte si to znovu

  9.   Pedro řekl

    pomocí tohoto příkazu:
    dd if = / dev / sdc | bzip2> /media/Elements/iso.gz
    Podařilo se mi vytvořit iso obraz 16Gb disku a uložit jej na 400Gb disk.
    Ale nevím, jaký by byl příkaz k obnovení tohoto obrazu na původní 16GB disk nebo na jiný se stejnou kapacitou

  10.   Luis Rodriguez řekl

    otázka

    použijte tento příkaz k
    pro n v {1..5}; do dd if = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc;
    pro 2TB disk
    pak zůstanu u konzoly něco takového
    >
    Mám spustit jiný příkaz nebo jak dlouho může proces trvat?

    děkuji a pokračuj

    1.    Jazz řekl

      Na konci řádku je překlep v… chybí «; hotovo »zůstalo« na n za {1..5}; do dd if = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc; Hotovo "

  11.   Henry Salazar řekl

    velmi dobrý článek ... .. Chystám se to uvést do praxe ... pozdravuji kámo

  12.   Marcos_tux řekl

    Velmi užitečné, moc mi to pomohlo díky

  13.   EDFR řekl

    Dobrý Alf. Děkuji za informaci.

    Otázka. Existuje způsob, jak zkopírovat pouze část zdrojového disku? Případ je, že pokud mám disk 120 GB, na kterém se používá pouze 25 GB, a chci vytvořit kopii na disk 40 GB, zajímalo by mě pouze kopírování použitého prostoru (25 GB), existuje způsob, jak s tímto příkazem?
    Díky předem.

    1.    yukiteru řekl

      Bylo by lepší použít rsync, pomocí příkazu rsync -av / path / to / origin / path / to / destiny byste již zálohovali všechna svá oprávnění s odpovídajícími oprávněními.

    2.    yukiteru řekl

      Myslel jsem: „všechny vaše soubory s odpovídajícími oprávněními“

  14.   FOXSPY řekl

    Vážení, ví někdo, proč při obsazení příkazu dd dosáhne pouze 4.2 GB a naznačuje, že soubor je velmi velký? Je to obraz 250GB disku a jde na 1TB externí disk.

    sudo dd if = / dev / sda | pv | dd of = / home / fox / backup.iso

    1.    Únosce řekl

      Chyba 4 Gb vám ji dává, protože se pokoušíte vytvořit zálohu v oddílu pomocí fs FAT16

  15.   Bern řekl

    Jak dobrý blog. Velmi užitečný vstup. Už jsem viděl použití tohoto příkazu jinde, ale nevysvětlily vůbec nic. Děkuji.

  16.   Carlos Torres řekl

    ahoj Mám injekční stroj, ve kterém byl program ztracen, protože nahradili bios stack, nemáme zálohu, ale máme jiný stejný stroj, má pouze disketový a sériový a paralelní port, jak mohu udělat zálohu tohoto stroje načíst do druhého, doufám, že mi můžete pomoci díky

  17.   Ernesto řekl

    Chci jen zkopírovat oddíl, aniž bych začal od LIVE CD. Například mám disk s / dev / sda1, / dev / sda5, / dev / sda6 a chci vytvořit kopii do / dev / sda5 z jiného disku / dev / sdb1

    příkaz je dd if = / dev / sdb1 of = / dev / sda5 bs = 1M ????

  18.   Petr Lobato řekl

    Ahoj, jak se máš. Také bydlím v Guadalajaře.
    Váš článek o příkazu DD je velmi zajímavý. Chci vyzkoušet některé linuxové distribuce, konkrétně Archlinux, ale nebyl jsem schopen použít příkaz DD a zkopírovat ISO Archilinux, které jsem si již stáhl, na USB flash disk. Nevím, jestli mi můžete dát klíště, abych s tím začal. Děkuji, Pedro lobato

  19.   vítěz řekl

    Protože když je iso zaznamenáno pomocí příkazu „dd“, je použito pouze ke spuštění na některých počítačích?
    Exp. Mám 2 notebooky a žádný z nich nespustí iso jakékoli linuxové distribuce; ale naopak, spouští se na starém stolním počítači s nečinným diskem

    1.    SEB řekl

      Nejlepší je hrát bezpečně pomocí unetbootinu, s dd mi také zůstala otázka, proč to někdy nefunguje.

      1.    živý řekl

        Nemyslím si, že to záleží na DD, ale na ISO. Stejná věc jako Unetbootin, nefunguje dobře se všemi distribucemi.

  20.   vítěz řekl

    Někdy to funguje na všech počítačích, ale musíte do procesu přidat mbr a syslinux na usb; ale je to dlouhé a zdlouhavé.
    Snadná část o unbootování

    Buďte opatrní: není to pro mě iso ani dd, je to způsob, jakým to nahráváte.

  21.   Danny řekl

    Pochybuji, že použiji tento příkaz:
    sudo dd if = / dev / zero of = / dev / diskdrive
    Místo toho je nízkoúrovňové formátování stejné nebo trvá déle:
    sudo dd if = / dev / zero of = / dev / diskdrive bs = 1M ..

  22.   arg0s řekl

    Lze příkaz dd použít k odstranění konkrétního souboru?

    například,

    dd if = / dev / urandom of = / home / myfile delete

  23.   arg0s řekl

    s bs = 1M se stává rychlejší

  24.   Alex řekl

    A pokud budu dělat přesnou kopii z jednoho disku na druhý, se všemi jeho oddíly (swap, sda ...) a oběma disky stejnými, ale jeden je na PC a druhý na NAS přes síť ????
    díky

  25.   Gerardo řekl

    Komentář, používám jej s status = progress na konci a nepotřebuji pv, takže debian funguje velmi dobře, abych viděl pokrok.
    A za druhé, existuje způsob, jak získat pouze data a ne celou jednotku, protože pokud se jedná o 2TB disk a používám pouze 100 GB, vyžaduji celý tento prostor. Existuje způsob, jak zálohovat těch 100 GB? A když to předám jinému médiu, mohl by to být menší disk, možná jeden z 500?

  26.   Alexander řekl

    Pomoc !!!
    Proveďte příkaz
    dd if = cbpp-9.0-amd64-20170621.iso of = / dev / sdb

    vše dobré ... ale teď chci použít USB jako paměťovou jednotku a ...

    USB není připojeno, neobjevuje se ani v GParted.

    Ví někdo, co mohu dělat.

    PS: což by byl nejlepší program pro obnovení informací z disků a CD DVD….

    1.    anonymní řekl

      musíte znovu testovat oddíl s fdisk