Obraz disku samozřejmě jde udělat do jakéhokoliv souboru, jedno jestli existuje nebo ne, protože se přepíše novým obsahem. Stejně tak soubor s obrazem lze zapsat na jakýkoliv disk s dostatečnou kapacitou, stejnou nebo libovolně větší. Jenom ten soubor musíš vytvářet v místě kde to lze udělat, což určitě není /dev/sda2

Takže jako první věc musíš pochopit rozdíl mezi diskem a oddílem. Fyzický disk má označení například
sda, a na něm může být libovolný počet očíslovaných fyzických a logických oddílů (partition). Skutečné operační systémy dokáží z kteréhokoliv z nich kdykoliv nabootovat, Widle ne. Když použiješ příkaz
lsblk, uvidíš třeba něco takového:
Kód: Vybrat vše
faraon@tucnak:~/zalohy $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 7,3T 0 disk
├─sda1 8:1 0 300G 0 part /
├─sda2 8:2 0 8G 0 part [SWAP]
└─sda3 8:3 0 7T 0 part /media/pi/DATA
sdb 8:16 0 18,2T 0 disk
sdc 8:32 1 14,9G 0 disk
└─sdc1 8:33 1 14,9G 0 part
Protože v *nixových systémech je soubor vše, nejenom soubory, ale i adresáře, disky, klávesnice, RAM, CPU, zvuková karta, síťové rozhraní, prostě úplně všechny věci v počítači a dokonce i jednotlivé právě běžící procesy, všechno to je viditelné jako soubory, které najdeš
v jednom adresářovém stromě (který je vlastně také soubor, zkus příkaz
tree /). Nejsou tu žádné jednotky popsané písmeny, což je pozůstatek ukradený z primitivního osmibitového systému
CP/M z roku
1974!
Dostupná hardwarová zařízení uvidíš v adresáři
/dev, neboli devices, to ostatní zase jinde.
Nejdřív se podívej do sloupce TYPE, kde právě vidíš rozdíl mezi diskem a oddílem. Můžeš samozřejmě udělat obraz celého disku se všemi oddíly naráz, nebo jen konkrétního oddílu. Tak si to rozebereme:
- sda: první harddisk, obsahuje tři oddíly, u kterých tě zajímají sloupce NAME a MOUNTPOINT:
- sda1: je připojený jako /, neboli kořen adresářového stromu, do kterého se na určená místa připojuje všechno ostatní, tam mám také systém a domovské adresáře všech uživatelů, ten by se powidlácku jmenoval C:.
- sda2: swapovací oddíl, kam se odkládá právě nepoužívaná část paměti,
- sda3: oddíl s daty, připojený v adresáři /media/pi/DATA, viděl bys ho jako D:.
- sdb: druhý harddisk, prozatím neobsahuje nic, je v záběhu.
- sdc: zasunutá flashka, obsahuje jen jeden oddíl, protože Widle jich na výměnných médiích víc nezvládnou:
- sdc1: v tuto chvíli nikam nepřipojený, to by bylo E:.
Pokud budu v tuto chvíli chtít udělat zálohu té flashky, v promptu vidíš že se nacházím ve svém domovském adresáři (
~) v podadresáři
zálohy a podle znaku
$ poznáš že jsem obyčejný uživatel (který na tuhle činnost nemá oprávnění), musím přikázat něco takového:
Kód: Vybrat vše
sudo dd if=/dev/sdc1 of=Maxell16GB.img
Tím říkám:
- sudo - spustím jako správce (pokud jsem ve skupině root) příkaz
- dd - kopírování blokového zařízení, znamená to disk duplicator, nebo také disk destroyer!!!
- if - input file - odkud se má kopírovat, tedy první oddíl na flashce,
- of - output file - kam se data zkopírují, což bude soubor v tomto pracovním adresáři.
Teď v tom adresáři zálohy mám zapsaný soubor s obrazem té flashky. Program dd má spoustu zajímavých parametrů a nastavení, ale takhle by to mělo stačit abys provedl co potřebuješ, jen to třeba bude trvat delší dobu.
Mohl bych také vynechat tu jedničku a udělat obraz celé flashky
sdc, ale jde mi jen o oddíl. S jeho obrazem mohu potom libovolně pracovat, například ho příkazem
mount připojit do adresářového stromu a používat ho jako jakýkoliv jiný oddíl ze skutečného disku, kopírovat z něj soubory nebo naopak do něj.
Mezitím se mohlo cokolív dít s tou původní flashkou a já budu chtít obraz zase vrátit na ní, přikážu:
Kód: Vybrat vše
sudo dd if=Maxell16GB.img of=/dev/sdc1
V tuto chvíli je dobré mít na paměti to
"disk destroyer", protože veškerá data na flashce budou přepsána obrazem a neexistuje způsob jak je dostat zpátky!!! No a protože *nixové systémy předpokládají že uživatel není debil a víc co dělá, neptají se a udělají to, okamžitě a nevratně. Potom debil začně kvičet že Linux je na hovno, protože mu zničil všechna data

Kdybys chtěl kopírovat přímo obsah flashky na jinou, samozřejmě to jde:
Tady jsem se nezabýval oddíly a přebouchnul to natvrdo i s tabulkou. Samozřejmě musí ta cílová flashka být dostatečně velká, aby se na ní vešel celý obsah zdroje.
DŮLEŽITÉ: všimni si, že pracuji s flashkou
nepřipojenou do souborového systému. To proto, že se její obsah během kopírování
nemůže a nesmí měnit! Z toho důvodu nelze udělat zálohu běžícího systému, který mám na
sda1, protože si za chodu přepisuje pracovní data. Lze to udělat pouze jiným systémem, například nabootovaným z jiného oddílu nebo z jiné flashky.
Kdybych potom ten oddíl sda1 ze zálohy obnovil, zmizely by všechny změny v mém domovském adresáři provedené od okamžiku vytvoření té zálohy. Proto se adresář /home u velkých systémů umístuje na samostatný oddíl, aby se mohl samostatně zálohovat nezávisle na systému a naopak aby se při obnově systému nezměnil jeho obsah. Ale na doma mi to takhle stačí.
A něco navrch, až budu připravovat ten disk sdb na instalaci nového systému, udělám to příkazem
protože tohle opět smí udělat jenom root (správce). Proto tam máš napsáno
"Operace zamítnuta".
Jo, a pokud ho ještě nemáš, nainstaluj si a nauč se používat Midnight Commander. Pracuje se s ním mnohem pohodlněji než s holým příkazovým řádkem, a pokud ho spustíš jako správce:
což poznáš podle # v promptu místo $, můžeš snadno provádět správcování bez toho opakovaného psaní sudo. Ale bacha, root je bůh který smí úplně všechno a kdekoliv, takže pokud v tu chvíli uděláš něco špatně, máš po datech! Takže roota používej jenom v případě nejvyšší nutnosti a co nejobezřetněji. Jak se říká:
Windows problems: reboot!
Linux problems: be root!