Moje Raspberry Pi - záloha systému na SD kartu (jak připravit image)

Pro bezstarostné používání Raspberry Pi je vhodné mít připravenou zálohu své SD karty s veškerým nastavením. V případě závady SD karty, stačí nahrát připravený image na novou SD kartu a ušetřit si tak spousty starostí...

Při častém ukládání a přepisu dat (například při logování) dochází k opotřebování buněk SD karty. Nebo pokud systém vypínáme stylem "drb ze zásuvky". Obojí vede k poškození SD karty a jednou systém nenastartuje jak má. Provozuji několik Raspberry Pi jako časový automat pro zalévání rostlin https://opensprinkler.cz/ a uvedený postup používám pro zálohování systému (komplet celé karty). Možná tento postup bude odborníkům přes IT připadat krkolomný, ale já nejsem IT odborník :-) . Je mi jasné, že to jde elegantněji. Pokud má někdo lepší postup, rád ho zde uvedu.

1) Vypnutí systému

Po kompletním nastavení systému (Linux + naše nastavení) systém na Raspberry Pi vypneme, vložíme SD kartu do čtečky karet a zapojíme do PC (kde budeme upravovat velikost).

2) Spuštění PC v Linuxu - změna velikosti SD karty (obsazená celá SD karta -> obsazené a nevyužité místo)

Do PC vložíme CD/USB se systémem "Gparted Live" a restartujeme počítač. V Biosu máme nastaveno bootování z CD (DVD/USB). Nebudeme tedy spouštět Windows. GParted Live je malá bootovatelná distribuce GNU/Linux pro počítače založené na x86. Umožňuje vám využívat všechny funkce nejnovějších verzí aplikace GParted. GParted Live lze nainstalovat na CD, USB, PXE server a pevný disk a poté spustit na počítači x86. Šlo by nainstalovat GParted jako balíček i do jiného Raspberry Pi a v něm potom zmenšit velikost načteného obrazu.

Stáhnul jsem poslední dostupnou verzi 1.4.0.1 a vypálil na DVD médium. Použil jsem program "CDBurnerXP"

Vypálení na DVD trvalo cca 3 minuty. V Biosu nastavím boot z DVD mechaniky...

Po odklikání pár dotazů mám spuštěný GPARTED a můžu spravovat velikost oddílů (SD kartu Raspberry Pi).

Zde je vidět, že na kartě 32GB je použit celý oddíl 32GB. Obsazeno je ale pouze cca 4GB.

Označíme oblast směrem doleva na požadovanou velikost (zmenšení).

Tímto způsobem jsem zmenšil oblast dat na SD kartě z celého prostoru 32GB na cca 4GB. Zbytek je neobsazený volný prostor.

3) načtení SD karty do PC (vytvoření image)

Vložíme SD kartu do čtečky karet a přes program "Win32 Disk Imager" (v tuto chvíli je dostupná verze 1.0) načteme obsah SD karty (tlačítko "Read") - soubor si pojmenujeme například "zaloha652022.img".

Načtený image má velikost cca 4GB. Tento načtený image již můžeme použít pro další vložení na SD kartu (klon), nebo uděláme další krok a u image provedeme ještě stačení velikosti.

4) Komprese (snížení velikosti obrazu 7-zip)

Pro stlačení velikosti obrazu použijeme program "7-zip" (7-Zip je bezplatný software s otevřeným zdrojovým kódem. Většina kódu je pod licencí GNU LGPL. Některé části kódu jsou pod licencí BSD 3-klauzule. Pro některé části kódu existuje také omezení licence unRAR), který nám výslednou velikost obrazu (4GB) sníží na cca 1,6GB.

Označíme soubor "zaloha652022.img" a dle obrázku níže provedeme přidání do archivu jako gzip.

Výsledný soubor se bude jmenovat "zaloha652022.img.gz" a bude velký cca 1,6GB.

Toto je výsledek našeho snažení (jak z 32GB karty udělat komplet zálohu o velikosti pouze 1,6GB).

5) Vložení zálohy na čistou SD kartu (klon ze zálohy)

Pro vložení zálohy na SD kartu použijeme oficiální nástroj "Raspberry Pi Imager".

6) Rozšíření velikosti systému na celou SD kartu

Po nahrání zálohy na SD kartu by systém stále používal pouze cca 4GB prostoru. Pro lepší stabilitu systému i samotné využití prostoru karty provedeme opětovné rozšíření na celou velikost karty. Použijeme nástroj v Raspberry Pi (sudo raspi-config).