Zálohování na optická média otevřenými nástroji: uložení dat na dlouhá desetiletí

23. 9. 2026
Doba čtení: 7 minut

Sdílet

Optická média
Autor: Shutterstock
Kromě zálohy dat na externí disk není špatné mít ještě nějaký další typ zálohy pro případ, že by externí disk selhal nebo byl poškozen. Dnes je tím dalším typem zálohy obvykle cloudové úložiště.

Zálohovat je možné na mnoho médií: flash disky, pevné disky, pásky nebo třeba veřejný cloud. Já jsem si v rámci výstavby domácího serveru s Debianem vyzkoušel, jak by to mohlo vypadat v případě zálohy na DVD.

Optická média totiž mají výhodu oproti SSD a flash diskům, která, jak jsem zjistil, není každému známa – je jí životnost uložených dat. Je obtížné sehnat přesné údaje o životnosti různých typů optických médií a různých výrobců, natož pak zohlednit případnou vadnou „várku“ prázdných médií naší oblíbené značky. Podle celkem pěkně napsaného shrnutí kanadské vlády se však životnost dat u kvalitních optických disků má pohybovat v rozsahu 20–50 let, u disků se zlatou vrstvou by to mohlo být 50–100 let.

Bohužel u dvouvrstvých DVD DL, která mají kapacitu 8,5 GB, je odhadovaná životnost notně kratší – asi jen 5–10 let. Vysvětluje se to tím, že zapisovací vrstva musí být tenčí, aby se laser diskové mechaniky mohl po změně zaostření dostat na druhou zapisovací vrstvu.

Největší kapacitu má samozřejmě Blu-ray, který nabízí i média o kapacitě 100 GB, ale protože se z mé strany jedná spíše o zálohovací experiment, odrazují mě vysoké ceny Blu-ray mechanik. Navíc mám k zálohování asi jen 30 GB komprimovaných dat, vše se mi tedy vejde na několik DVD a budu to dělat jednou za dlouhou dobu.

Manuální zápis dat na několik DVD

Data se samozřejmě musejí rozprostřít na několik DVD. Protože budou uschována mimo můj domov, měla by být data na nich zašifrována. V komprimovaném stavu mají 30 GB, DVD tedy bude celkem sedm kusů.

Triviální způsob, jak to udělat, je ručně přetahovat adresáře a soubory myší třeba do předpřipravených sedmi zašifrovaných a komprimovaných balíků, přičemž se bude hlídat, aby jejich velikost nepřesáhla 4,65 GB. Pozor, zde je 1 kB roven 1000 bajtům, nikoliv 1024 bajtům.

Protože po letech uskladnění někde na chatě mohou být některá DVD nečitelná, chci-li mít jistotu, vypálím dvě duplicitní sady, ideálně ze dvou různých šarží prázdných médií.

Velká výhoda tohoto způsobu spočívá v jeho triviálnosti, pokud jde o odborné znalosti.

Avšak podle pořekadla „kdo nemá v hlavě, musí mít v nohách“ je nevýhodou to, že vypaluji dvojnásobný počet DVD, což je nepříjemné zejména s dnešními externími DVD mechanikami, které prakticky nejdou koupit s rychlostí zápisu vyšší než 8×. V neposlední řadě mi rovněž přijde nepříjemné, že musím ručně přetahovat adresáře, případně jejich dílčí části, pokud se celé nevejdou na médium, a hlídat, aby se mi soubory nepřekrývaly.

Příprava dat s použitím skriptu

Při experimentování s vypáleným DVD jsem zjistil, že moje externí mechanika „Hitachi-LG GP57“ si umí mnou úmyslně mechanicky poškozovaný disk přečíst a opravit sama takovým způsobem, že MD5 suma 4,69GB datových souborů je vždy správně.

Od určitého stupně mechanického poškození disku bych čekal, že mi mechanika přečte poškozený komprimovaný soubor s daty – jenže bohužel nepřečetla. Přišlo mi, že funguje v režimu „buď, anebo“ – buď si velký soubor sama opraví a přečte ho neporušený, nebo ho odmítne přečíst úplně. Nepomohlo ani čtení pomocí příkazu dd nebo  ddrescue.

To považuji za nevýhodu, protože i ze souboru s „dírami“ jsem schopen alespoň nějaká data získat zpět.

Mám-li sedm souborů o velikosti přibližně 4,65 GB vypálených na sedmi DVD, můžu přidat osmé DVD, na které vygeneruji opravné soubory pomocí příkazu par2. Vyzkoušel jsem si, že zvolím-li pro takovou sadu dat velikost opravných PAR2 souborů o něco větší než 4,65 GB, můžu klidně přijít o celé jedno DVD a par2 ho přesto umí znovu ve zcela původním stavu zrekonstruovat!

Jenže co když po mnoha letech nebude možné přečíst dvě DVD naráz? Vzpomněl jsem si na 20 let starou zkušenost s notně poškrábaným a špatně čitelným cédčkem se dvěma sty MP3 skladbami. Mechanika se sice trápila, ale nakonec dokázala vrátit 180 skladeb. To není špatný výsledek.

Proto ve skriptu kromě toho, že si vytvořím opravné soubory PAR2, které umístím na poslední DVD, rozdělím původní velký 30GB soubor nikoliv po 4,65 GB, ale po 46,5 MB. Tímto způsobem se, budu-li mít štěstí, v budoucnu podaří z poškozených DVD přečíst alespoň nějaká část dat a ta půjde opravit pomocí  par2.

Skript

Finální verze skriptu vypadá jednoduše, ale je za ní mnoho hodin zkoušení, promýšlení a „minimalizace“ postupu a kódu. Vypadá následovně:

gtar -czf - ${@} \
    | openssl enc -aes-256-cbc \
    | split -d -a 4 -b 46500000 - backup.gtar.gz.ossl-aes-256-cbc.split_

par2 create -r20 \
    backup.gtar.gz.ossl-aes-256-cbc.split_xxxx \
    backup.gtar.gz.ossl-aes-256-cbc.split_*

1. GNU Tar

Jak můžeme vidět, roura nejprve spustí GNU Tar, aby vytvořila proud „zatarovaných“ a následně „gzipovaných“ dat. Rozpis jednotlivých přepínačů  gtar:

  • -c  – vytvoří tar archiv.
  • -z  – tar bude komprimovaný gzipem.
  • -f -  – přesměruje výstup do roury.
  • ${@}  – vloží veškeré vstupní parametry skriptu, tedy seznam zálohovaných složek.

2. OpenSSL

Poté se proud zašifruje pomocí openssl:

  • enc  – zapne režim šifrování.
  • -aes-256-cbc  – název použitého šifrovacího algoritmu.

3. Split

Nakonec se proud dat přesměruje do několika souborů s předepsanou maximální velikostí pomocí příkazu  split:

  • -d  – použije čísla pro označení výstupních souborů; výchozí jsou písmena abecedy.
  • -a 4  – pro označení výstupních souborů se použije sekvence čtyřciferných čísel; výchozí jsou dvouciferná čísla.
  • -b 46500000  – nastaví maximální velikost výstupních souborů na 46,5 MB. Hodnota je pro jistotu a zřetelnost zadána v bajtech.
  • Posledním parametrem je prefix pro výstupní soubory. Je zvolen dostatečně deskriptivní název, abych po letech věděl, jak mám původní vstupní soubor znovu zrekonstruovat.

4. PAR2

Posledním příkazem je par2, který k vygenerovaným souborům vytvoří opravné PAR2 soubory:

  • create  – zapne režim vytváření PAR2 souborů.
  • -r20  – PAR2 soubory budou mít velikost 20 % z celkové velikosti vstupních souborů, tedy pro 30 GB dat to bude přibližně 6 GB připadajících na PAR2 soubory. Na jedno DVD se nevejdou, a proto část z nich bude na 7. DVD, které je zaplněno daty jen z malé části, a zbytek bude na 8. DVD určeném pouze pro PAR2 soubory.
  • backup.gtar.gz.ossl-aes-256-cbc.split_xxxx  – prefix pro vygenerované opravné soubory.
  • backup.gtar.gz.ossl-aes-256-cbc.split_*  – seznam vstupních souborů, pro které se bude vytvářet spřažený PAR2 výstup.

Spuštění skriptu

Skript spustím takto:

./run_prepare_dvd.sh /Users/jiri/projekty /Users/jiri/Documents/ /Users/jiri/Pictures/

Po pár minutách se nashromáždí výstupní soubory:

46500000   Sep 17 12:52 backup.gtar.gz.ossl-aes-256-cbc.split_0000
46500000   Sep 17 12:52 backup.gtar.gz.ossl-aes-256-cbc.split_0001
…
11035152   Sep 17 12:57 backup.gtar.gz.ossl-aes-256-cbc.split_0621

    211600 Sep 17 13:26 backup.gtar.gz.ossl-aes-256-cbc.split_xxxx.par2
  14810028 Sep 17 13:26 backup.gtar.gz.ossl-aes-256-cbc.split_xxxx.vol000+001.par2
…
2439629548 Sep 17 13:26 backup.gtar.gz.ossl-aes-256-cbc.split_xxxx.vol255+167.par2

Jak z nastavení skriptu vyplývá, prvních 100 souborů, tedy těch začínajících jako split_00*, vypálím na 1. DVD,split_01* na 2. DVD,split_02* na 3. DVD atd.

PAR2 soubory rozložím mezi částečně zaplněné sedmé DVD a zbytek na osmé DVD.

Simulace poškození dat a následné opravy pomocí PAR2

Pro demonstraci opravy pomocí PAR2 smažu prvních 100 souborů, což je ekvivalent ztráty celého prvního DVD s daty:

rm -f backup.gtar.gz.ossl-aes-256-cbc.split_00*

Následně spustím příkaz par2 a jako vstup mu dám jeho hlavní soubor PAR2:

par2 repair backup.gtar.gz.ossl-aes-256-cbc.split_xxxx

Po několika minutách běhu a vytěžování CPU je proces hotový a všech 100 smazaných souborů je znovu vytvořeno, včetně jejich původních metadat.

Jiné možnosti přípravy dat

Výše uvedený postup a skript jsem nevymyslel hned a trvalo to. Zajímal jsem se proto rovněž o to, zda neexistuje nějaké hotové řešení, ke kterému bych jako uživatel přišel a byl naveden ke správnému postupu.

Nejprve jsem zkoumal, zda ve své sbírce „biblí“ o Linuxu najdu zmínku o par2  – bohužel se v nich nevyskytuje. To je škoda, protože zejména v komunitě GNU je více cloudových skeptiků, takže právě zde bych čekal, že nějaký ucelený postup najdu.

Známý software 7-Zip umí vše z výše uvedeného až na soubory pro obnovu. Jediný nástroj, který se mi podařilo najít a obsahuje „vše v jednom“, je známý WinRAR, který umí šifrování, rozdělení do více souborů i tzv. „recovery records“, u nichž si může uživatel obdobně jako u par2  zvolit, kolik procent z velikosti originálních archivů mají zabírat. WinRAR má sice GUI jen pro Windows, ale je dodáván i s terminálovým příkazem rar. Je sice placený, ale postup je standardní a osoba, která by obnovovala data z mých DVD, by nemusela umět pracovat v terminálu.

Optická média jsou tu stále

Před 10 a více lety jsem byl rád, že jsem optická média opustil a mohl používat externí disky a cloud jako úložiště pro svoje data. Blu-ray mě historicky zcela minul kvůli vysokým pořizovacím nákladům, které se překvapivě, možná kvůli nízké poptávce, drží vysoko i dnes.

Historickou zkušenost s CD a DVD mám kategorizovanou jako „smíšenou“, ačkoliv s jistotou už nevím, zda tehdy byla na vině nekvalitní zapisovací média, nebo špatná péče o vypálené disky – nejspíše však kombinace obojího. Největší roli v opuštění optických disků však u sebe vidím v tom, že zatímco rostly kapacity pevných disků, kapacita a „pohodlí“ práce s DVD přestaly dostačovat. Technologie Blu-ray, která měla být další generací optických médií po DVD, pro mě kvůli vysoké ceně nebyla dostatečně zajímavou náhradou.

webcast HP

Jak se však ukazuje, optická média mohou při vhodném skladování uchovat data po celá desetiletí.

Výše uvedený postup je open-source náhradou za komerční software – jeho nevýhodou však je, že je hodně technický a člověk si jej musí v podstatě sestavit sám.

Autor článku

Vystudoval informatiku na VŠB v Ostravě a od roku 2015 pracuje jako softwarový vývojář podnikových informačních systémů.