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).
Při zneužití příkazu dd jsem se téměř stal diabetikem.
mimochodem, jaký by byl rozdíl s dd_rescue?
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.
hahahha Také jsem použil příkaz dd velmi špatně, je mnohem silnější, než jsem si myslel.
Poznamenávám, že věřím, že každý uživatel archu v určitém okamžiku použil
@ 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.
Alf, existuje nějaké GUI vytvořené v qt pro KDE, které používá tento příkaz? nebo musím rezignovat?
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
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
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.
Zajímavé Přiznávám, že | pv | neznal ho.
Krel Myslím, že zdroj je v ubuntu wiki nebo arch pozdravy.
@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
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.
Je pravda, je to věrná kopie tohoto příspěvku: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/
Hmm ... udělal jsem dd if = file.iso z = / media / hard disk ... omylem 😛
jakýkoli způsob, jak obnovit soubory z pevného disku ???
Můžete použít Testdisk
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.
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
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
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
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
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 "
velmi dobrý článek ... .. Chystám se to uvést do praxe ... pozdravuji kámo
Velmi užitečné, moc mi to pomohlo díky
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.
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.
Myslel jsem: „všechny vaše soubory s odpovídajícími oprávněními“
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
Chyba 4 Gb vám ji dává, protože se pokoušíte vytvořit zálohu v oddílu pomocí fs FAT16
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.
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
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 ????
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
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
Nejlepší je hrát bezpečně pomocí unetbootinu, s dd mi také zůstala otázka, proč to někdy nefunguje.
Nemyslím si, že to záleží na DD, ale na ISO. Stejná věc jako Unetbootin, nefunguje dobře se všemi distribucemi.
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.
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 ..
Lze příkaz dd použít k odstranění konkrétního souboru?
například,
dd if = / dev / urandom of = / home / myfile delete
s bs = 1M se stává rychlejší
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
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?
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….
musíte znovu testovat oddíl s fdisk