Tento návod vám ukáže snadný způsob jak zazálohovat a posléze obnovit celý svůj systém.
Mnoho z vás pravděpodobně používalo Windows před Ubuntu. Během té doby jste možná narazili na potřebu zazálohovat si celý systém před nějakými důležitými změnami, abyste jej později mohli kdyžtak obnovit. Ve Windows na to potřebujete speciální a drahé nástroje, jako např. Norton Ghost. Na Linuxu je vše jednodušší (a levnější). Bude vám stačit obyčejný příkaz tar
, který najdete v každém Linuxovém systému. Nástroje jako Norton Ghost nejsou na linuxové disky vůbec ani doporučené používat.
Záloha systému vám může značně usnadnit situaci například při upgradování systému na novější verzi, ale když si chcete nechat pro jistotu i možnost návratu k verzi staré.
Tento návod není určen k pravidelnému zálohování uživatelských dat! K tomu použijte například program Déjà Dup nebo SBackup. Taktéž, k přesunu systému na jiný disk je mnohem jednodušší využít nástroj GParted.
Ke klonování/záloze oddílu/disku lokálně nebo po síti lze také dobře využít program Clonezilla.
Linux, na rozdíl od Windows, neomezuje přístup superuživatele k žádným souborům. Proto můžete všechny soubory prostě jednoduše zabalit do archívu, a máte zálohu vytvořenou. Než začnete, ujistěte se, že máte dostatek místa na disku, kde hodláte zálohu vytvořit.
Odhlaste se z grafického prostředí a přepněte se na první konzoli (Ctrl+Alt+F1). Přihlaste se a staňte se rootem:
sudo -i
Toto je nyní plný příkaz, kterým je možné zazálohovat celý systém:
tar czf /backup.tgz --one-file-system --ignore-failed-read --sparse --exclude=/backup.tgz /
Pojďme si to nyní vysvětlit:
tar
je samozřejmě program, který používáme pro vytvoření archívu.czf
jsou volby předané taru, znamenají postupně 'vytvoř archiv', 'použij kompresi gzip' a 'ulož výsledek do souboru'./backup.tgz
je jméno výsledného archivu, je tedy umístěn v kořenovém adresáři. Můžete si jej samozřejmě pojmenovat jinak a umístit jinam.–one-file-system
zajistí, že se do zálohy nezahrnou jiné souborové systémy (například připojená CD/USB media, apod).–ignore-failed-read
znamená, že návratový kód taru nebude záviset na tom, zda se některé soubory nepodaří přečíst. To se stává poměrně často, například u různých socketů. Samozřejmě je nutno ručně prohlédnout výstup.–sparse
zajistí efektivní archivaci tzv. sparse souborů, které se občas na disku nacházejí–exclude=/backup.tgz
vynechává ze zálohy náš výsledný soubor (jelikož výsledek ukládáme do stejného adresáře, jako zálohujeme, tak je to nutné explicitně uvést)./
je adresář, který chceme zálohovat. Protože zálohujeme celý systém, tak dáváme '/' jako kořenový adresář.Pokud jste spokojeni s příkazem, tak ho spusťte a připravte se, že to bude chvíli trvat. V průběhu sledujte případné vypsané chybové hlášky. Některé soubory nemusí jít přečíst a může to být v pořádku (různé sockety), ale je nutné vše prohlédnout, aby vám neutekla nějaká důležitá chyba.
Po skončení vám vznikne soubor backup.tgz
v kořenovém adresáři, který bude pravděpodobně dost velký. Můžete ho teď vypálit na DVD, přesunout po síti na jiný pc, cokoli chcete. Zpět do grafického prostředí se přepnete pomocí Ctrl+Alt+F7.
Pokud máte adresář /home
na jiném oddílu, než kořen souborového systému, tak /home
nebyl do zálohy zahrnut (díky volbě –one-file-system
). Zda to pro vás platí poznáte snadno například z výstupu příkazu mount
. V tomto případě je tedy nutné zazálohovat ještě adresář /home
, tímto příkazem:
tar czf /backup-home.tgz --one-file-system --ignore-failed-read --sparse /home
(není nutné používat –exclude
, protože zálohujeme mimo zálohovanou složku)
Varování: Buďte maximálně opatrní! Pokud přesně nevíte, co děláte, můžete si přepsat některé důležité soubory, takže si dávejte pozor!
Předpokládejme tedy, že máme soubor backup.tgz
se zálohou. Nyní potřebujeme nabootovat z jiného systému a obnovit původní systém. Takže si spusťte například Ubuntu LiveCD, nabootujte z něho a spusťte si terminál.
Nejprve se staňte rootem:
sudo -i
Teď si připojte svůj oddíl se systémem, například do /mnt/ubuntu
:
mkdir /mnt/ubuntu mount /dev/sda2 /mnt/ubuntu
Samozřejmě nahraďte /dev/sda2
pravým názvem vašeho oddílu (zjistíte například z fdisk -l
nebo pomocí GParted).
Přepněte se do kořene vašeho připojeného disku:
cd /mnt/ubuntu
Nyní můžete pomocí rm -rf
nebo mc
vymazat adresáře, které máte zazálohované a chcete je přepsat původními soubory. Je to z toho důvodu, že obnovením souborů ze zálohy sice přepíšete stávající soubory, ale můžete tam mít i další soubory, které v záloze nejsou. Zbytečně by vám tak vznikalo na disku smetí.
Až budete hotovi, tak spusťte příkaz pro obnovu:
tar xzf backup.tgz
Samozřejmě za předpokladu, že jste backup.tgz
měli v kořeni vašeho obnovovaného systému, jinak musíte uvést k němu cestu. Soubory se obnovují do aktuálního adresáře, což nám vyhovuje.
Pokud máte /home
na jiném oddílu, tak je třeba opět analogicky připojit tento oddíl do jiného adresáře, promazat staré soubory a obnovit tam původní soubory ze zálohy.
Hotovo. Pokud jste obnovovali systém na jiný disk, možná budete ještě potřebovat nainstalovat na tento disk GRUB - zavaděč systému.
Pokud budete mít problémy se zavedením systému z obnoveného disku (a GRUB vám nabíhá), zkuste editovat soubor /boot/grub/menu.lst
a pokud tam máte UUID cestu k disku, opravte ji podle výstupu z příkazu blkid
nebo ji změňte na klasickou (např. /dev/sda2
).