Portál AbcLinuxu, 1. června 2024 08:00


Dotaz: záloha sd karty

17.6.2019 21:57 Dada
záloha sd karty
Přečteno: 520×
Odpovědět | Admin
Ahojky, jsem v podstatě nováček v Linuxu a začal jsem si hrát s Raspberry, kam jsem si nainstaloval Raspbian. Už jsem si pár věcí nastavil a teď bych rád zazálohoval jednoduše sd kartu. A to tak, že ji vyjmu a dám do PC, kde mám Ubuntu (smazal jsem windowsy a začal od nuly:). Dočetl jsem se většinou, že na offline zálohu mám použít dd, ale karta má 32GB, na které mám využito asi 5GB. Nechci mít zálohu, co má zbytečně 32GB a plýtvat místem. Poradíte mi, jak vytvořit image karty, který vytvoří kompletní image (vč boot) o velikosti zálohovaných dat? Mockrát děkuju:)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.6.2019 22:20 PetebLazar
Rozbalit Rozbalit vše Re: záloha sd karty
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jako osoba líná to řeším tak, že většinu volného prostoru filesystému karty zaplním následně smazaným souborem bigsht naplněným nulovými znaky (z /dev/zero) a ddckem ziskaný img celé SD přímo přes pipe gzipnu. Část zabraná bigsht se zkomprimuje velmi výrazně (samozřejmě tento trik asi nebude fungovat na šifrovaný oddíl, z pohledu komprimace s prakticky náhodným obsahem), takže velikost img.gz prakticky odpovídá kompresi užitečně zaplněného prostoru.
17.6.2019 22:32 debian+
Rozbalit Rozbalit vše Re: záloha sd karty
Nech ma viacej 500M nulovych suborov, aby priebezne mazal na uvolnovanie miesta.
18.6.2019 10:45 PetebLazar
Rozbalit Rozbalit vše Re: záloha sd karty
Tím mne před pár desetiletími proškolil služebně starší kolega když mi oznámil, že jde přidat prostor ext2 filesystému (načež smazal jeden z uměle vytvořených GB souborů bigshit, ignorovaných při zálohách tarem). ;-)
17.6.2019 22:42 debian+
Rozbalit Rozbalit vše Re: záloha sd karty
Odpovědět | | Sbalit | Link | Blokovat | Admin
dd sa pouziva kvoli rychlosti. Lebo mozes trebars aj cez tar zaarchiovat do jedneho suboru, ale nacitanie stromovej struktury bude pomalsie, ako skopirovanie cez dd. A to dd je setrnejsie na I/O.

Upozornenie: Nearchivuj priecinky /proc, /sys a pripadne aj /dev. Nie su to realne subory ulozene na disku. Su to pseudo subory. Je to user file rozhranie pre vymenu informacii s kernelom. Podobne je FUSE.
k3dAR avatar 17.6.2019 23:04 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: záloha sd karty
pokud by zalohoval bezici system(nechame stranou ze se muze neco zmenit(i kdyz databazi tam asi nema)), tak neni dobre vynechat /proc /sys /dev (proc a sys by pak schazeli i ty prazdne adresare, v /dev JSOU realne zakladni soubory i kdyz nepocitam pres to prekryte udev, takze vhodnejsi rootfs bind-mountout bokem a pak zalohuje realne co v nem je, bez tech virtualnich/prekrytejch...
sudo mkdir -p /mnt/prozalohu
sudo mount --bind / /mnt/prozalohu
a pak zalohovat pres tar nebo rsyncem na jinej stroj obcash /mnt/prozalohu/

nicmene pokud chce mit jistotu, tak zalohovat z jineho systemu aby ten zalohovany nebyl nastartovan a pak tohle cele resit nemusi a jednoduse zalohuje obsah 1 oddilu (boot v fat32) a 2 oddilu (rootfs v ext4), take je dobre poznamenat ze jak pri tar tak rsync zaloze zalohuje pouze obsah, nikoliv rozdeleni disku, takze jeste to:
# zaloha
sfdisk --dump /dev/sdX > zaloha-sdX.txt

# obnova
sfdisk /dev/sdX < zaloha-sdX.txt
za sdX je potreba uvest realne jmeno zarizeni pripojene karty, v USB stecte to bude sdX (kde X je pismeno a-z dle poctu aktualne pripojenych), v interni ctecce karet to bude mmcblkX (jde X je cislo 0-kdovikolikjemax)... jak pri zaloze (aby se zazalohovalo to spravne), tak (OBZVLAST) pri obnove (aby se NEprepsal jinej treba systemovej/datovej disk) je potreba POZORNE zvolit spravne jmeno, je videt ve vystupu prikazu "dmesg" po pripojeni ctecky/karty...

a kdyz uz sem popsal komplikovanejsi reseni, jeste je tu "naklikavaci/nacvakavaci" reseni v podobe Clonezilla, ktera dela automaticky jak zalohu/obnovu rozdeleni disku, tak komprimaci/dekomprimaci prave jen tech pouzitych dat...
porad nemam telo, ale uz mam hlavu... nobody
Josef Kufner avatar 18.6.2019 00:30 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: záloha sd karty
Odpovědět | | Sbalit | Link | Blokovat | Admin
dd má volbu sparse, která místo zápisu nulových bloků udělá děravý soubor (sparse file). Soubor sice bude mít těch 32 GB, ale na disku zabere jen 5 GB. Jen si musíš dát pozor při kopírování takového souboru, abys zachoval díry.

Pokud budeš experimentovat víc a dělat kopie sem a tam, doporučuju zmenšit oddíl na kartě, podívat se v GPT tabulce kolikátý je poslední použitý blok a prostě omezit množství kopírovaných dat (volby bs a count). Třeba si udělat z 32GB karty jen 8GB kartu s trochou nealokovaného místa a nemusíš řešit nuly a mezery. Pomocí gparted je to na pár kliknutí. Až se vyblbneš, tak to zas zvětšíš a je to.

Použít rouru a gzip je také možnost, ale trochu to komplikuje mountování přes loop.
Hello world ! Segmentation fault (core dumped)
Jendа avatar 18.6.2019 11:57 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: záloha sd karty
dd má volbu sparse, která místo zápisu nulových bloků udělá děravý soubor (sparse file). Soubor sice bude mít těch 32 GB, ale na disku zabere jen 5 GB.
Pokud bude kartu používat, postupně bude volné místo vyplněné zbytky starých souborů a tohle už fungovat nebude.
Jendа avatar 18.6.2019 12:01 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: záloha sd karty
Odpovědět | | Sbalit | Link | Blokovat | Admin
Doporučoval bych nekopírovat kartu jako blokové zařízení, ale kopírovat soubory, například rsyncem. Což navíc můžeš udělat i za běhu systému aniž bys musel Raspberry vypínat a kartu vyndavat (pozor na konzistenci pokud máš na Raspberry nějakou databázi, což nejspíš nemáš).

Obnova se pak udělá tak, že si stáhneš nový Raspbian, nahraješ na kartu a soubory zkopíruješ zpátky (přepíšeš). Nebo i bez toho mezikroku s Raspbianem, stačí vytvořit vfat a ext4 partition (nebo zkopírovat partition tabulku) a soubory na ně zkopírovat. Pokud jsi vytvářel partition tabulku od nuly, je potřeba jí ještě změnit UUID na staré (najdeš v /etc/fstab):
fdisk /dev/sdx
x
i
0xstaré_uuid
r
w
q
Já to s tou denacifikací Slovenska myslel vážně.
Pavel Čejka avatar 18.6.2019 12:33 Pavel Čejka | skóre: 28 | blog: tosinezaslouzijmeno
Rozbalit Rozbalit vše Re: záloha sd karty
Odpovědět | | Sbalit | Link | Blokovat | Admin

partimage?

Pokud vím, tak zálohuje celé oddíly tak, že podle filesystému zazálohuje jen prostor skutečně obsazený soubory. Volné bloky umí vynechat a při obnovování volitelně vyplnit nulami.

Ze zálohovaného oddílu se dá obnovit i MBR. Mám vyzkoušeno přinejmenším na NTFS a EXT2... nevzpomínám si, co používá v defaultu Raspbian - ext4, nebo btrfs?

Je součástí System Rescue pro x86.

http://www.partimage.org/manual/Basic-usage/

http://www.system-rescue-cd.org/

Prosté dd je na jistotu, ale zabere to místo stejné jako úložiště.

Nepředpokládám, že bys zálohoval přímo na tom Raspberry, ale nakonec i to jde, pokud nabootuješ z jiné SD karty a tu zálohovanou budeš mít offline nepřimountovanou ve čtečce.

18.6.2019 12:37 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: záloha sd karty
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejefektivnější z mého pohledu bude stáhnout si distribuci Clonezilla. dát ji na flash, nabootovat a zazálohovat kartu. zazálohuje boot a všechny oddíly, zazálohuje jen data z oddílů a provádí kompresi, takže výsledek je celkem efektivní.
18.6.2019 14:41 TechnikTom
Rozbalit Rozbalit vše Re: záloha sd karty
Odpovědět | | Sbalit | Link | Blokovat | Admin
Taky doporučuji Clonezillu. Ale normálně nainstalovat do Ubuntu.

Jako správce vytvořte adresář/home/partimag Nejdřív dát odpojit oddíly na sd kartě, které se většinou automaticky připojí po zasunutí čtečky s kartou. Spustit sudo clonezilla device-image skip Beginner.. Savedisk potvrďte název zálohy vyberte disk ( kartu ), který chcete zálohovat

a dál podle pokynů

V home/partimag pak naleznete adresář se zálohou vaší karty.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.