Vytvoření iso obrazu microsd pomocí příkazu dd. Vytvoření obrazu pevného disku pomocí nástroje dd

jak je známo, „uživatelé počítačů se dělí na ty, kteří zálohují, a ty, kteří je budou dělat“. V tomto článku se podíváme na různé cesty Rezervovat kopii(záloha) celého systému a podle toho obnova z záložní kopie.

Okamžitě stojí za zmínku, že všechny operace by neměly být prováděny „naživo“, tj. nikoli na běžícím systému, ale z živého disku CD nebo nainstalovaného na sousedním oddílu/flash disku/usb-hdd systému. V případech, kdy je pro systém kritický prostoj v délce několika minut, je možné systém zkopírovat zespodu, ale musíte počítat s dodatečné podmínky, o kterých se v tomto článku zatím neuvažuje

Dále v textu bude pro akce prováděné jako superuživatel použit příkaz sudo, který je standardem pro Ubuntu. Na jiných systémech je možné získat oprávnění superuživatele pomocí su , některé systémy liveCD běží ve výchozím nastavení v režimu superuživatele

dehet

Jedním z nejoblíbenějších způsobů vytvoření jednoduché zálohy je archivace dat pomocí tar. Výhodou této metody je možnost inkrementálního zálohování (přidávání souborů do existujícího archivu, jejich mazání nebo změna), možnost extrahovat jednotlivé soubory z archivu a také přítomnost taru v téměř každém linuxovém systému.

Vytvoření archivu

Nejprve vytvořte přípojné body pro kořenový oddíl a pro oddíl, na kterém budete vytvářet zálohu, například takto

Namontujte obě přepážky. Pro větší spolehlivost můžete připojit kořenový oddíl v režimu pouze pro čtení, abyste eliminovali možnost náhodných změn dat

Sudo mount /dev/sdXY /mnt/root -o ro sudo mount /dev/sdXY /mnt/backup

(Namísto "sdXY" použijte své hodnoty pro požadované oddíly. Můžete je určit pomocí sudo fdisk -l nebo sudo blkid)

Pokud používáte samostatné oddíly pro /boot, /usr, /home atd. a chcete jejich obsah zahrnout do zálohy, připojte je do příslušných složek

Sudo mount /dev/sdXY /mnt/root/usr -o ro sudo mount /dev/sdXY /mnt/root/home -o ro

V případě potřeby vytvořte na zálohovacím oddílu složku, do které chcete archiv například umístit

Sudo mkdir -p /mnt/backup/ubuntu/root

Nyní můžete začít vytvářet archiv. Chcete-li vytvořit archiv komprimovaný gzip, spusťte

Sudo tar -cvzpf -C /mnt/root /mnt/backup/ubuntu-sda1.tar.gz .

(Přepínač -p umožňuje uložit vlastníky a oprávnění k souborům)

Pro použití komprese bzip2

Sudo tar -cvjpf /mnt/backup/ubuntu-sda1.tar.bz2 /mnt/root

Pro kompresi lzma

Sudo tar --lzma -cvpf /mnt/backup/ubuntu-sda1.tar.lzma /mnt/root

Podobně pro kompresi lzo - přepněte --lzop místo --lzma

Různé kompresní algoritmy vytvářejí různé velikosti archivů a liší se také výkonem

Po dokončení procesu odpojte všechny připojené oddíly

Sudo umount /mnt/root(/boot,/var,/home,) /mnt/backup

Obnovení z archivu

Vytvořte přípojné body pro kořenový oddíl a oddíl, kde je uložen váš archiv

Sudo mkdir /mnt/(kořen, záloha)

Připojte oddíl se zálohou

Sudo mount /dev/sdXY /mnt/backup -o ro

Naformátujte kořenový oddíl na stejný (nebo jiný) systém souborů. Pokud používáte samostatné oddíly pro /usr, /boot atd. a archivujete je, naformátujte je také

(pokud obnovujete systém na nový HDD, rozdělte jej pomocí fdisk/gparted a naformátujte oddíly)

Některé systémy souborů podporují nastavení UUID při formátování. To umožňuje vytvořit souborový systém se stejným UUID jako ten starý, čímž se vyhnete nutnosti upravovat fstab.

U ext2/3/4 se UUID nastavuje pomocí přepínače -U a úlohu můžete ještě dále zjednodušit příkazem jako

Sudo mkfs.ext4 -L "label" -U "$(sudo blkid -o hodnota -s UUID /dev/sda1)" /dev/sda1

Pokud jste při vytváření souboru obrázku použili archivaci, nejprve jej rozbalte například pomocí stejného archivátoru

Bzip2 -dv /media/backup/sda5.dd.bz

Nyní můžete obrázek připojit

Sudo mount /media/backup/sda5.dd -o loop /mnt

(S volbou smyčky připojovací program automaticky „vyzvedne“ soubor s obrazem do volného zařízení smyčky a poté připojí systém souborů)

Nyní můžete s obsahem obrázku pracovat jako s běžným souborovým systémem, všechny vaše změny se zapíší do obrázku. Po dokončení připojte obraz jako běžný souborový systém

Sudo umount /mnt

dd - zkopírujte celý pevný disk

V tomto případě opět použijeme dd, pouze tentokrát uložíme veškerý obsah pevný disk- s tabulkou oddílů, samotnými oddíly a všemi daty. Výhoda tato metoda skutečnost, že můžete uložit všechny systémy nainstalované na tomto pevném disku v jednom kroku, aniž byste museli zálohovat každý oddíl zvlášť. Navíc s takovou zálohou budou uložena všechna data související s bootloaderem - takže po obnovení ze zálohy nebudete potřebovat další manipulace, můžete okamžitě zavést systém z tohoto pevného disku.

Vytvoření obrázku

Obecně je postup podobný výše popsanému pro zálohování jednotlivých oddílů. V tomto případě platí také rada pro čištění. volný prostor„nuly“ - pokud máte volný čas, udělejte to se všemi sekcemi.

Před zahájením operace se ujistěte, že žádná ze sekcí tohle těžké disk není připojen. To lze provést spuštěním příkazu mount bez parametrů.

Vyberte oddíl, na který chcete umístit soubor klipu. Samozřejmě to musí být oddíl z jiného pevného disku. Také se ujistěte, že je na tomto oddílu dostatek volného místa (například pomocí nástroje df) - množství volného místa by mělo odpovídat objemu kopírovaného pevného disku (při komprimaci bude obraz menší, ale záleží na na typu uložených dat).

Připojte záložní oddíl

Sudo mount /dev/sdXY /mnt

Nyní můžete začít

Sudo dd if=/dev/sdX bs=1M conv=noerror,sync | lzma -cv > /mnt/hdd.dd.lzma

(zde „sdX“ je disk, nikoli oddíl! pro kopírování bez komprese je příkaz podobný výše uvedenému pro zálohování oddílu)

V závislosti na velikosti pevného disku a výkonu počítače může tento postup trvat dlouho(až několik hodin). Po dokončení připojte záložní oddíl

Sudo umount /mnt

Obnova z obrazu

Pozornost! Tato metoda zahrnuje kompletní návrat do stavu v době vytvoření archivu s nahrazením všech dat!

Před zahájením práce se ujistěte, že napájení je spolehlivé. Připojit síťový adaptér, pokud máte notebook, a pokud možno použijte UPS nebo stabilizátor. Vysoké rychlosti zápisu zvyšují riziko poškození disku v případě výpadku napájení

Ujistěte se, že není používán žádný oddíl obnovovaného disku. Připojte záložní oddíl

Sudo mount /dev/sdXY /mnt

Můžete zahájit proceduru

Bzip2 -dc /mnt/hdd.dd.bz | sudo dd of=/dev/sdX bs=1M conv=sync,noerror

Nebo pro nekomprimovaný obrázek

Sudo dd if=/mnt/hdd.dd.bz of=/dev/sdX bs=1M conv=sync,noerror

Po dokončení připojte záložní oddíl

Sudo umount /mnt

Pokud chcete obrázek extrahovat na jiný pevný disk, musí být alespoň tak velký jako původní. Pokud je nový disk větší, můžete rozšířit oddíly nebo vytvořit nový oddíl na volném místě pomocí parted/fdisk/gparted/etc

Nepoužívejte obojí pevné disky(„duplikát“ a „originál“) zároveň! Pokud jsou oba disky připojeny, systém bude mít dva oddíly pro každý UUID, což povede k provozním problémům nebo nemožnosti zavést systém.

Montáž obrazu

Analogicky s obrazem diskového oddílu můžete pracovat s obrazem pevného disku jako a obvykle těžké disk. V tomto případě je postup poněkud komplikovanější, protože obrázek obsahuje několik sekcí.

Pokud je obrázek komprimovaný, rozbalte jej. Nyní „vyzvedněte“ obraz do smyčkového zařízení

Sudo losetup -fv /media/backup/sda.dd

(S přepínačem -f program automaticky najde volné smyčkové zařízení, jinak jej musíte výslovně zadat)

Lostup zobrazí název použitého zařízení - pokud nepracujete s jinými soubory obrázků (iso, šifrované kontejnery atd.), bude to s největší pravděpodobností /dev/loop0

Nyní máme zařízení, které je pro systém pevný disk, ale do jeho sekcí nemáme přístup. Program kpartx vám pomůže dostat se k oddílům (možná budete muset nainstalovat stejnojmenný balíček)

Sudo kpartx -av /dev/loop0

(Klíč -a - přidat oddíly pro dané zařízení; -v - informativní výstup)

Program zobrazí názvy vytvořených zařízení pro diskové oddíly: loop0p1 pro první oddíl, loop0p2 pro druhý, podobně jako oddíly běžný disk. Soubory zařízení budou umístěny ve složce /dev/mapper

Nyní můžete pracovat s oddíly a FS na nich. Například připojte bývalý sda5 a zapište do něj soubory

Sudo mount /dev/mapper/loop0p5 /mnt

Po dokončení odpojte oddíl

Sudo umount /mnt

Odstraňte oddílová zařízení pomocí kpartx

Sudo kpartx -dv /dev/loop0

a uvolněte smyčkové zařízení

Sudo losetup -v -d /dev/loop0

Všechno! Změny se zaznamenají a váš obrázek se opět stane běžným souborem

cp

Zde se podíváme na zálohování pomocí utility cp, tzn. pomocí jednoduchého kopírování. Ve skutečnosti to není nejoptimálnější metoda a je vhodnější pro kopírování systému na jiný pevný disk / diskový oddíl / počítač, spíše než pro vytváření záložní kopie.

Na druhou stranu má tato metoda řadu výhod:

    Všestrannost – cp najdete v každém linuxovém systému

    Nízké požadavky na zdroje (kvůli nedostatku komprese a jednoduchosti mechanismu)

    Usnadnění další práce se zálohou (přidávání/změna/mazání souborů, vytěžování potřebných dat atd.)

Vytvoření kopie

Vytvořte přípojné body pro kořenový a záložní oddíl

Sudo mkdir /mnt/(kořen, záloha)

Namontujte obě přepážky

Sudo mount /dev/sdXY -o ro /mnt/root sudo mount /dev/sdXY /mnt/backup

Připojte oddíly pro /usr, /boot atd., pokud existují

Sudo mount /dev/sdXY -o ro /mnt/root/home

Vytvořte složku pro zálohování na zálohovacím oddílu

Sudo mkdir /mnt/backup/ubuntu

Můžeme začít

Sudo cp -av /mnt/root/* /mnt/backup/ubuntu

(přepínač -a umožňuje kopírování odkazů „tak jak jsou“, ukládání všech možných atributů souboru a rekurzivní režim. Přepínač -v - zobrazení informací o tom, co se děje)

Po dokončení procesu odpojte všechny oddíly

V budoucnu můžete svá data archivovat jakýmkoli pohodlným způsobem.

Obnovení z kopie

Pozornost! Tato metoda zahrnuje kompletní návrat do stavu v době vytvoření archivu, přičemž nahradí všechna data!

Vytvořte přípojné body pro oddíly

Sudo mkdir /mnt/(kořen, záloha)

Připojte záložní oddíl

Sudo mount /dev/sdXY -o ro /mnt/backup

Naformátujte kořenový oddíl a oddíly /usr, /boot atd., pokud existují. (Formátování oddílů při zachování UUID viz část o)

Sudo mkfs.reiserfs -l "root" /dev/sdXY sudo mkfs.ext2 -L "boot" /dev/sdXY sudo mkfs.ext4 -L "home" /dev/sdXY

Připojte nově vytvořené systémy souborů

Proces kopírování je podobný, jen v opačném směru.

Sudo cp /mnt/backup/ubuntu/* -av /mnt/root

Po dokončení kopírování upravte fstab a opravte UUID oddílu

Odpojte oddíly

Sudo umount /mnt/backup /mnt/root/(usr,home,)

squashfs

sudo mkfs.reiserfs -l "root" /dev/sdXY sudo mkfs.ext2 -L "boot" /dev/sdXY sudo mkfs.ext4 -L "home" /dev/sdXY

Připojte nově vytvořené systémy souborů

Sudo mount /dev/sdXY /mnt/root sudo mount /dev/sdXY /mnt/root/usr sudo mount /dev/sdXY /mnt/root/var

Jsme připraveni začít! K rozbalení obrázku použijte nástroj unsquashfs

Sudo unsquashfs -d /mnt/root -f /mnt/backup/ubuntu-root.sqfs

(Přepínač -d určuje cestu pro rozbalení, s přepínačem -f program použije existující složky místo toho, aby se snažil vytvářet nové)

Stejně jako při vytváření obrázku se vám zobrazí ukazatel průběhu a spousta dalších užitečných informací.

Po dokončení upravte fstab a nahraďte UUID oddílů novými (pokud jste oddíly naformátovali se stejnými UUID, tento krok přeskočte)

Sudo nano /mnt/root/etc/fstab

Uložte soubor a odpojte všechny oddíly

Sudo umount /mnt/backup /mnt/root(/usr,/var,)

Montáž obrazu

squashfs se připojuje jako každý jiný obraz – přes smyčkové zařízení. Podpora jádra pro squashfs je součástí mnoha distribucí, včetně Ubuntu, takže můžete jednoduše použít příkaz mount s možností loop

Sudo mount /media/backup/ubuntu-root.sqfs -o ro,loop /mnt

(Volba ro není vyžadována, protože tam stejně nic psát nebude fungovat)

Nyní můžete zkopírovat libovolné potřebné soubory. Přidání něčeho tímto způsobem nebude fungovat, budete muset znovu použít mksquashfs

Po dokončení připojte obraz jako běžný souborový systém

Sudo umount /mnt

rsync

Stejně jako cp funguje rsync spíše na souborech než na blokování zařízení. Věc o rsync je, že nekopíruje soubory, které jsou již v cíli. Ve výchozím nastavení kontroluje velikost a čas úprav souborů, ale můžete také zkontrolovat hash (obvykle se to dělá, když je potřeba zvýšené zabezpečení).

Snadné použití

Syntaxe rsync je podobná cp:

Rsync -a /mnt/root /mnt/backup

Často postačuje parametr -a, který poskytuje to, co je nejvíce potřeba: rekurzivní kopírování adresářů, ukládání informací o vlastníkovi a skupině atd. Zobrazit detailní informace Pro kopírování se používá přepínač -v, buďte s ním opatrní, může vám uniknout chybová hláška v datovém toku. Přepínač -x zajišťuje, že rsync nepřekročí zadaný souborový systém.

Dokumentace rsync popisuje spoustu možností. Existují například takové, které vám umožňují kopírovat přes SSH nebo smazat soubor z cíle, pokud byl smazán ve zdrojovém adresáři.

Inteligentní kopírování snižuje prostoje systému. Rsync spouštíme přímo na běžícím systému, data ve kterém se neustále mění, rsync kopíruje data řekněme během pár hodin. Poté přepneme systém do režimu jen pro čtení, spustíme znovu rsync, nyní zkopíruje pouze ty soubory, které se za těch pár hodin změnily. Za pár minut máme kompletní kopii původního souborového systému. Prostoje se oproti offline kopírování řádově zkrátily. A v některých případech bude stačit jedna online kopie bez převodu systému na pouze pro čtení.

Ukládání předchozích kopií

Přísně vzato, rsync není zálohovací nástroj - je to synchronizační nástroj. To je důležité při vytváření běžných kopií, protože pokud byl nějaký důležitý soubor smazán ve zdrojovém pracovním adresáři, rsync ho smaže i v záložní kopii. Pro zlepšení zabezpečení dat je vhodné ukládat staré záložní kopie. Pouhé uložení více kopií však bude vyžadovat hodně místa na pevném disku. Pokud existuje mnoho kopií identické soubory, pak to vede ke zbytečné redundanci. Tento problém lze vyřešit pomocí pevných odkazů.

Jde o to, že v modern souborové systémy(včetně Ext4) se adresování souboru provádí ve dvou fázích: název souboru označuje jedinečné číslo souboru (indexový deskriptor nebo i-uzel) a k tomuto číslu jsou přidružena samotná data. Jakýkoli název souboru je ve skutečnosti pevným odkazem na toto číslo. V důsledku toho může mít soubor (datová sada) několik jmen a být v různých adresářích, což eliminuje nadbytečnost v případě potřeby duplikace souborů (pevný odkaz zabírá málo paměti). Samotná data nejsou smazána, dokud není požádáno o smazání posledního pevného odkazu.

Významným omezením je, že pevné odkazy jsou možné pouze v rámci stejného systému souborů.

Synchronizace obsahu adresáře pro aktuální zálohu se zdrojovým adresářem:

Rsync \ --archive \ --delete --delete-excluded \ # odstranění souborů, které ve zdroji neexistují, a vyloučených souborů ze zálohy--pokrok\ # zobrazit informace o průběhu přenosu"/home/user/Files/" \ # zdroj adresáře"/backup/latest/" \ # adresář pro aktuální zálohu--exclude = "/Veřejné/" # vyloučit nepotřebné adresáře

V adresáři /backup/latest/ se vytvoří kopie všech souborů. potřebné soubory a adresáře ze zdroje a vše nepotřebné bylo odstraněno.

Vytvoření další aktuální zálohy bez redundance:

cp\--archiv\ # uložit všechny další informace o souborech--odkaz\ # použití pevných odkazů pro soubory - odstranění redundance"/backup/latest/" \ # zdroj je aktuální záloha získaná výše "/backup/$(datum +%Y-%m-%d_%H-%M-%S) /" # destination - adresář s datem v názvu pro usnadnění (viz man date)

Při příštím vytvoření zálohy rsync smaže soubory v adresáři „ /backup/latest/ “, které byly smazány/vyloučeny/změněny ve zdrojovém adresáři (změněné soubory jsou nejprve smazány a poté zapsány novou verzi). Budou však odstraněny pouze názvy souborů (stejné pevné odkazy); samotné soubory (data) budou uloženy, protože pevné odkazy na ně byly vytvořeny v sousedním adresáři příkazem „cp“.

Jiné nástroje

V Linuxu existuje mnoho aplikací pro vytváření záloh. Můžete vyhledat „záloha“ v centru aplikací Ubuntu a najít ty, které jsou k dispozici Programy Ubuntu pro práci se zálohami.

Pro podnikové prostředí a jednoduše pro poměrně rozsáhlé a kritické úlohy zálohování můžeme doporučit pochopení jednoho z nejpopulárnějších a nejvýkonnějších zálohovacích systémů pro Linux, zvaný Bacula

Mimochodem, na internetu najdete i manuály v ruském jazyce.

Rozloučená magie

Parted Magic je další skvělý, ale zaplaceno distribuční sada obsahující celou kolekci nástrojů pro zálohování a obnovu informací, práci s disky a diskovými oddíly a také obnovu ztracených dat. Podporuje mnoho souborových systémů, LVM2 a RAID (hardwarové i softwarové) a obsahuje nástroje jako fsarchiver, GParted, zmíněná Clonezilla a vše, co je pro metody popsané v tomto článku potřeba. Distribuce navíc obsahuje webový prohlížeč a nějaký další doplňkový software. Distribuce je přeložena do několika jazyků včetně ruštiny a má plnohodnotné grafické rozhraní.

LParted

LParted je plnohodnotné LiveCD určené především pro práci s oddíly pevné disky(HDD), trvalé vymazání nebo obnovení dat a testování zařízení. LiveCD založené na Linuxu Lubuntu. LParted je funkční obdobou Parted Magic.

Rád bych zde přidal něco o SystemRescueCD a dalších

Trochu více o ukládání dat

    Pro důležitá data můžete vytvořit zrcadlový oddíl na dvou discích. K tomu není vůbec nutné mít stejně velký RAID řadič a disky – zrcadlo si můžete sestavit například z 80 GB starého disku a 80 GB oddílu na novém. Zrcadlení lze implementovat pomocí LVM nebo softwarového RAID. Tato metoda je však k ničemu, pokud například na sběrnici +5V zasáhne napětí ~220V nebo na ni dopadne meteorit. systémová jednotka počítač.

    IT geekové, kteří mají doma svůj vlastní server, mohou rozšířit myšlenku zrcadlení a používat DRBD. Stejný RAID-1, ale pevné disky se nacházejí v různé počítače, což zvyšuje spolehlivost.

    Moderním pohodlným řešením je zálohování dat do cloudu například pomocí Ubuntu One, Dropbox, http://www.adrive.com/ a dalších.

    Ani zrcadlení, ani replikace na Ubuntu One vás nezachrání před náhodným stisknutím Delete, takže v každém případě provádějte „klasické“ zálohy. A jednoho dne bude všechna vaše tvrdá práce a úsilí odměněna.

Pomocí nástroje dd vytvoříme obraz flash disku s archivací volného místa. Záložní obraz se bude hodit, pokud originál náhle přestane fungovat. důležitá informace. Například flash disk s soukromé klíče elektronické podpisy vedení organizace. Máme tedy 4GB flash disk /dev/sdd, na kterém informace zabírají asi 90 MB.
du - sh / run / media / aleksey / Transcend

89M /run/media/aleksey/Transcend

Všechny příkazy jsou prováděny jménem uživatele vykořenit. Nebo v odpovídajících distribucích přidejte před příkazy sudo.
fdisk - l /dev/sdd

Disk /dev/sdd: 3,7 GiB, 3904897024 bajtů, 7626752 sektorů Jednotky: sektory 1 * 512 = 512 bajtů Velikost sektoru (logický/fyzický): 512 bajtů / 512 bajtů Velikost I/O (minimum/optimální 12 bajtů / 5 512 bajtů Typ štítku disku: dos Identifikátor disku: 0xc653eaa4 Spouštění zařízení Začátek Konec Sektory Velikost ID Typ /dev/sdd1 2048 7628543 7626496 3.7G b W95 FAT32

Disk /dev/sdd: 3,7 GiB, 3904897024 bajtů, 7626752 sektorů

Jednotky: sektory 1 * 512 = 512 bajtů

Velikost sektoru (logický/fyzický): 512 bajtů / 512 bajtů

Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů

Typ disklabelu: dos

Identifikátor disku: 0xc653eaa4

Spouštění zařízení Počátek Konec Sektory Velikost ID Typ

/dev/sdd1 2048 7628543 7626496 3,7Gb W95 FAT32

Vytvořením jednoduchého obrázku pomocí příkazu
dd if = /dev/sdd of = sdd . iso bs = 4M konv. = žádná chyba,
odsuzujeme se k ukládání 4GB souboru. Co když má flash disk kapacitu 64GB? A ne sám? Tento problém nám pomůže vyřešit běžný archivátor, vezměme si standardní gzip.
dd if=/dev/sdd bs=4M conv=noerror | gzip - c > sdd . iso. zip
kde je klíč -C umožňuje pracovat se standardním výstupem.
Po dokončení práce se podívejme na výsledný soubor. ls - al sdd*

Výsledný soubor má velikost přibližně 25 MB. Skutečná úspora místa na disku i ve srovnání se 4GB souborem!
Chcete-li obnovit flash disk z bitové kopie, použijte opačné pořadí příkazů.
gunzip - c sdd . iso. zip | dd of = /dev/sdd conv = noerror bs = 4M

Můžete také archivovat obrazy pevného disku, kde jsou svazky řádově větší.

Mimochodem! Aby byl proces jasnější, vzhledem k tomu, že dd nemá svůj vlastní ukazatel průběhu, doporučuji použít malou utilitu pokrok- Coreutils Progress Viewer. Instalace na Fedoru není obtížná.
Průběh instalace dnf
Pro ostatní distribuce lze požadované úložiště nalézt na https://pkgs.org/download/progress.
Instalací a spuštěním utility s příkazem sledovat pokrok ve druhém terminálu (v prvním máme spuštěný archivátor a dd) jménem stejného uživatele, uvidíme něco takového.

člověk pokrok vám ukáže různé užitečné klávesy tohoto nástroje.

dd je jednoduchý nástroj, který je součástí většiny unixových systémů operační systémy- Linux, FreeBSD, Solaris atd.
Jeho účelem je číst data z jednoho zařízení nebo souboru a zapisovat do jiného.

dd lze efektivně použít k vytvoření obrazu pevného disku, aniž by bylo zapotřebí komerčních nástrojů, jako je např Acronis True Obrázek nebo Norton Ghost.

Předpokládejme, že máme dva disky:

  • /dev/sda - disk, jehož obraz je třeba vytvořit;
  • /dev/sdb - disk, na který bude obraz zapsán.

Pokud je to nutné, musíte nahradit své vlastní hodnoty.

Prvním krokem je nabootování z libovolného dostupného disku Live-CD, který má nástroj dd, a enter příkazový řádek jako superuživatel. Vytvořte přípojný bod pro zálohování.

mkdir /mnt/backup

Připojíme pevný disk, na který chcete uložit obrázek.

Vytvoření obrazu pevného disku

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror

  • if=/dev/sda - zkopírujte celý pevný disk sda;
  • of=/mnt/backup/sda.img - zkopírujte do /mnt/backup/sda.img;
  • bs=8M — nastavte velikost tvrdá mezipaměť disk pro urychlení postupu kopírování (jinak budou data resetována po malých částech 512 bajtů);
  • conv=sync,noerror - naznačujeme, že je potřeba dd kopírovat bit po bitu a ignorovat chyby čtení.

Chcete-li zmenšit velikost obrazu pevného disku, můžete jej komprimovat pomocí libovolného archivátoru.

dd if=/dev/sda bs=8M conv=sync,noerror | gzip -c > /mnt/backup/sda.img

Obnovení obrazu pevného disku

Chcete-li obnovit bitovou kopii pevného disku, musíte postupovat opačně, než je postup pro vytvoření této bitové kopie.

dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

Při použití komprese musíte obrázek rozbalit paralelně.

gunzip -c /mnt/backup/sda.img | dd of=/dev/sda conv=sync,noerror bs=8M

Migrace systému na jiný pevný disk

Chcete-li migrovat celý systém na jiný pevný disk, musíte jako cíl nastavit umístění nového disku.

dd if=/dev/sda of=/dev/sdb bs=8M conv=sync,noerror

V případě potřeby pak nainstalujte bootování z tohoto pevného disku. Pokud nový tvrdý disk je větší než starý, bude na něm nepřidělená oblast. Měl by být označen a naformátován podle stávajících požadavků.

Kopírovat statistiky v dd

Hlavní nevýhodou dd je chybějící vizuální znázornění statistik kopírovacího postupu. Tato nevýhoda se však dá snadno obejít. Vše, co musíte udělat, je připojit se k jinému terminálu.

Určete číslo procesu, pod kterým běží dd.

Tomuto procesu pravidelně posílejte příkaz kill -USR1 číslo_procesu_dd.

watch -n 5 kill -USR1 číslo_procesu_dd

  • watch -n 5 - vykoná příkaz každých 5 sekund;
  • kill -USR1 process_number_dd — zobrazí statistiku kopírování.

Nevýhody použití dd k vytvoření diskových obrazů

Všechno má pro a proti. dd je bezplatný a velmi flexibilní nástroj, ale dokáže vytvořit pouze úplnou kopii svazku. Speciální programy Mohou kopírovat pouze data, která jsou uložena na disku.

Objem obrazu disku vytvořeného pomocí dd se tedy bude rovnat objemu samotného disku – bez ohledu na to, kolik dat je na disku.

Poměrně často potřebují správci systému kopírovat různá binární data. Někdy můžete například potřebovat zálohovat pevný disk, vytvořit prázdný soubor plný nul pro uspořádání odkládacího prostoru nebo jiný virtuální souborový systém.

K vyřešení všech těchto problémů se používá linuxová utilita dd, která jednoduše zkopíruje data z jednoho místa na druhé na binární úrovni. Dokáže zkopírovat disk CD/DVD, část na disku nebo dokonce celý pevný disk. V tomto článku se podíváme na to, co je příkaz linux dd, jeho hlavní možnosti a parametry a jak jej používat.

Nejprve musíte pochopit, jak příkaz dd funguje a co dělá. Ve skutečnosti se jedná o analog obslužného programu pouze pro bloková data. Nástroj jednoduše přenese jeden blok dat zadané velikosti z jednoho místa na druhé. Vzhledem k tomu, že vše je v Linuxu považováno za soubor, včetně zařízení, můžete zařízení přenášet do souborů a naopak.

Pomocí různých možností obslužných programů můžete ovlivnit velikost bloku, a to již ovlivňuje rychlost programu. Dále se podíváme na hlavní možnosti nástroje a jeho možnosti.

příkaz dd

Syntaxe nástroje je poměrně neobvyklá, ale zároveň velmi jednoduchá, jakmile si ji zapamatujete a zvyknete si na ni:

$dd if= copy_source of= destinace možnosti

Pomocí parametru if musíte určit zdroj, ze kterého budou bloky zkopírovány, může to být zařízení, například /dev/sda nebo soubor - disk.img. Dále pomocí parametru of musíte určit cílové zařízení nebo soubor. Ostatní parametry mají stejnou syntaxi jako if a of.

Nyní se podívejme na další možnosti:

  • bs- udává, kolik bajtů se má číst a zapisovat najednou;
  • CBS- kolik bajtů je třeba zapsat najednou;
  • počet- zkopírujte zadaný počet bloků, velikost jednoho bloku je uvedena v parametru b;
  • konv- aplikovat filtry na datový tok;
  • ibs- číst zadaný počet bajtů najednou;
  • obs- zapsat zadaný počet bajtů najednou;
  • hledat- přeskočit zadaný počet bajtů na začátku čtecího zařízení;
  • přeskočit- přeskočit zadaný počet bajtů na začátku výstupního zařízení;
  • postavení- uvádí, jak podrobný by měl být závěr;
  • iflag, oflag- umožňuje nastavit další provozní příznaky pro vstupní a výstupní zařízení, hlavní: nocache, nofollow.

To byly všechny základní možnosti, které byste mohli potřebovat. Nyní pojďme blíže k praxi a podívejme se na několik příkladů použití linuxové utility dd.

Jak používat dd?

Běžní uživatelé používají k vytváření obrázků nejčastěji příkaz dd DVD nebo CD. Chcete-li například uložit obraz disku do souboru, můžete použít následující příkaz:

sudo dd if=/dev/sr0 of=~/CD.iso bs=2048 conv=noerror

Filtr noerror umožňuje zakázat reakci na chyby. Dále můžete vytvořit obraz pevného disku nebo oddílu na něm a uložit tento obraz na disk. Dejte si pozor, abyste neukládali na stejný pevný disk nebo oddíl, abyste nezpůsobili rekurzi:

dd if=/dev/sda of=~/disk.img

Ve vaší domovské složce bude vytvořen soubor s názvem disk1.img, který lze v budoucnu nasadit a obnovit do poškozeného systému. Chcete-li zapsat obraz na pevný disk nebo oddíl, stačí prohodit adresy zařízení:

dd if=~/disk.img of=/dev/sda

Velmi důležité a užitečná možnost- to je bs. Umožňuje výrazně ovlivnit rychlost utility. Tento parametr umožňuje nastavit velikost jednoho bloku při přenosu dat. Zde musíte zadat digitální hodnotu pomocí jednoho z těchto modifikátorů formátu:

  • S- jeden znak;
  • b- 512 bajtů;
  • kB- 1000 bajtů;
  • K- 1024 bajtů;
  • M.B.- 1000 kilobajtů;
  • M- 1024 kilobajtů;
  • G.B.- 1000 megabajtů;
  • G- 1024 megabajtů.

Příkaz dd linux používá právě takový systém, je složitý, ale není z něj úniku. Bude to muset být pochopeno a zapamatováno. Například 2b je 1 kilobajt a 1k je také 1 kilobajt, 1M je 1 megabajt. Ve výchozím nastavení nástroj používá velikost bloku 512 bajtů. Chcete-li například urychlit kopírování disku, můžete si vzít bloky o velikosti 5 megabajtů. Chcete-li to provést, použijte následující příkaz:

dd if=/dev/sda of=~/disk.img bs=5M

Dalším parametrem je počet. Pomocí něj můžete určit, kolik bloků je třeba zkopírovat. Například můžeme vytvořit 512 megabajtový soubor vyplněním nul z /dev/nula nebo náhodných čísel z /dev/random:

sudo dd if=/dev/zero of=file.img bs=1M počet=512

Upozorňujeme, že tento parametr neudává velikost v megabajtech, ale pouze počet bloků. Pokud tedy zadáte velikost bloku 1b, pak k vytvoření souboru o velikosti 1 kB stačí vzít dva bloky. Tuto možnost lze také použít k zálohování tabulky oddílů MBR. Chcete-li to provést, zkopírujte prvních 512 bajtů pevného disku do souboru:

sudo dd if=/dev/sda of=mbr.img bs=1b počet=1

Chcete-li obnovit, použijte obvyklý příkaz k nasazení bitové kopie na disk.

Pokud je obraz disku příliš velký, můžete přesměrovat veškerý výstup do nestandardního výstupního proudu obslužného programu gzip:

dd if =/dev/sda2 | bzip2 disk.img.bz2

Ke kopírování souborů můžete také použít nástroj dd linux, i když to není jeho zamýšlený účel:

dd if=/home/sergiy/test.txt of=/home/sergiy/test1.txt

Jak víte, příkaz linux dd zapisuje data na disk přímo v binární podobě, což znamená, že se zapisují nuly a jedničky. Přepisují to, co bylo dříve umístěno na záznamovém zařízení. Chcete-li tedy disk vymazat, můžete jej jednoduše vyplnit nulami z /dev/zero.

sudo dd if=/dev/zero of=/dev/sdb

Použití dd tímto způsobem vede k úplnému vymazání celého disku.

závěry

V tomto článku jsme se podívali na to, jak používat dd linux, k čemu lze tento nástroj použít a jak může být užitečný. Je to skoro nepostradatelný nástroj správce systému, protože jej lze použít k vytváření záložních kopií celého systému. A teď už víte jak. Pokud máte nějaké dotazy, zeptejte se v komentářích!

Příkaz dd dělá jen jednu jednoduchou věc: kopíruje data ze souboru do jiného souboru. Ale protože v Linuxu je mnoho entit reprezentováno přesně jako soubory, dd má mnoho použití. Pojďme se podívat na ty nejužitečnější z nich.

Co znamená dd?

dd je zkratka pro datový duplikátor. Ale protože ve špatných rukou může příkaz dd vést k úplná ztráta všechna data, program se často vtipně nazývá ničitel disků. Zkusme přijít na to, jak nejen nezničit svá data, ale dokonce mít z používání dd prospěch.

Obecný případ použití pro dd

Syntaxe příkazu je následující:

Dd if=$input_data of=$output_data

Příkaz zkopíruje data ze souboru $input_data do souboru $output_data, přičemž vezme v úvahu možnosti. Zdálo by se, že vše je jednoduché. Nyní se podívejme, jaké příležitosti toto jednoduché kopírování otevírá.

Příklady použití dd

1. Zničení všech dat na disku bez možnosti obnovy:

Dd if=/dev/urandom of=/dev/sda bs=4k

2. Dokončete kopírování bajtu po bajtu z jednoho disku na druhý (klonování):

Dd if=/dev/sda of=/dev/sdb bs=4096

3. Kopírování jednoho oddílu do druhého:

Dd if=/dev/sda3 of=/dev/sdb3 bs=4096 conv=notrunc,noerror

4. Zobrazte seznam dostupných systémů souborů:

Dd if=/proc/filesystems | hexdump -C | méně

5. Kopírování dat na zařízení s různou velikostí bloků (1 KB u zdroje a 2 KB u cíle):

Dd if=/dev/st0 ibs=1024 obs=2048 of=/dev/st1

6. Vytvořte spouštěcí USB flash disk:

Dd if=/home/$user/bootimage.img of=/dev/sdc

7. Zkontrolujte, zda na disku nejsou chybné sektory:

Dd if=/dev/sda of=/dev/null bs=1m

8. Vytvořte zálohu Disk MBR a uložení na disketu

Dd if=/dev/sda of=/dev/fd0 bs=512 počet=1

9. Odstranění obrazu ISO z disku CD:

Dd if=/dev/sr0 of=/home/$user/mycdimage.iso bs=2048 conv=nosync

10. Kontrola souboru na přítomnost virů (samozřejmě je vyžadován ClamAV):

Dd if=/home/$user/suspicious.doc | clamscan -

11. Uložení obsahu paměti RAM do souboru:

Dd if=/dev/mem of=/home/$user/mem.bin bs=1024

12. Převod obrazu z formátu Nero NRG na standardní obraz ISO:

Dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300k

13. Zobrazení obsahu MBR:

Dd if=/dev/sda count=1 | hexdump -C

Kde je slíbený milion aplikací?

Pozorný čtenář si pravděpodobně všimne, že v článku není uveden milion užitečných aplikací, ale několik méně. Síla programu dd ale spočívá v tom, že uživatel může najít další aplikace samostatně, kombinovat je různé soubory jako parametry if, of a výběr potřebných možností. Pamatujte, že práce s dd vyžaduje zvláštní pozornost. Pokud přesně nevíte, jaké akce budou provedeny, je lepší se zdržet experimentů. Snažte se nedávat dd superuživatelská práva, když se bez těchto práv obejdete.

Vaše vlastní příklady použití tohoto skvělého programu jsou vítány v komentářích.