Souborové systémy
Souborový systém je základní komponenta operačního systému, která umožňuje organizaci, ukládání, správu a přístup k datům na různých úložných médiích, jako jsou pevné disky, SSD, USB disky nebo optické disky. V kontextu Linuxu je souborový systém nezbytný pro správu dat, což zahrnuje jejich bezpečné uložení, snadnou dostupnost a rychlý přístup.
V Linuxu jsou všechny informace a data uloženy ve formě souborů. Soubor může být textový dokument, binární soubor, spustitelný program atd…
Adresáře slouží k organizaci souborů do struktury, která je odlišná od systému Windows, zato snadno pochopitelná.
V Linuxu se souborové systémy připojují pomocí příkazu mount a odpojují pomocí příkazu umount (nikoliv unmount) . Montování připojí souborový systém k určitému adresáři, což umožňuje přístup k datům uloženým na disku.
Struktura souborového systému
Souborové systémy v Linuxu používají hierarchickou strukturu, která je organizována jako stromová struktura s kořenovým adresářem (/). Tato struktura usnadňuje organizaci, přístup a správu souborů a adresářů.
Kořenový adresář /
Kořenový adresář je nejvyšší úroveň hierarchie souborového systému. Všechny ostatní soubory a adresáře se nacházejí pod tímto adresářem. Je to výchozí bod pro navigaci v souborovém systému.
Podadresáře v kořenovém adresáři

Zdroj obrázku: https://linuxhandbook.com/linux-directory-structure
/bin – obsahuje základní spustitelné programy, které jsou nezbytné pro minimální fungování systému, například příkazy jako ls, cp, mv a rm.
/boot – obsahuje soubory zaváděcího zavaděče (bootloader), které jsou potřebné k zavedení operačního systému. Patří sem soubor jádra (vmlinuz), obraz initramfs a konfigurační soubory zavaděče (například GRUB).
/dev – obsahuje soubory zařízení, které představují hardwarové komponenty systému, jako jsou disky, terminály a další periferní zařízení. Například /dev/sda představuje první pevný disk.
/etc -tento adresář obsahuje konfigurační soubory systému. Sem patří konfigurační soubory pro jednotlivé programy a služby, jako jsou síťová nastavení, konfigurační soubory pro ssh, fstab a další.
/home – obsahuje domovské adresáře jednotlivých uživatelů. Každý uživatel má svůj vlastní adresář, například /home/jmeno_uzivatele, kde může ukládat své osobní soubory, nastavení a data.
/lib – tento adresář obsahuje sdílené knihovny, které jsou nezbytné pro běh programů uložených v adresáři /bin a /sbin. Obsahuje také jádrové moduly.
/media a /mnt – tyto adresáře slouží jako přípojné body pro vyměnitelná média a dočasně připojené souborové systémy. /media je často používán pro automatické připojování zařízení, jako jsou USB disky, zatímco /mnt je obecně používán pro manuální připojování.
/opt – obsahuje volitelné softwarové balíky, které nejsou součástí základní instalace systému. Tento adresář se často používá pro komerční software nebo softwarové balíky třetích stran.
/proc -tento virtuální souborový systém obsahuje informace o běžících procesech a systému. Je dynamicky generován jádrem a poskytuje rozhraní pro získání informací o systému a jeho konfiguraci.
/root – domovský adresář uživatele root (administrátora systému). Tento adresář je oddělen od /home pro běžné uživatele a je přístupný pouze s administrátorskými právy.
/run – tento adresář obsahuje informace o běžícím systému, které jsou platné pouze od posledního spuštění. Sem patří například PID soubory (process identifier) a další runtime data.
/sbin – obsahuje systémové binární soubory, které jsou nezbytné pro správu a údržbu systému. Tyto programy jsou obvykle určeny pro administrátory systému a zahrnují příkazy jako ifconfig, reboot a shutdown.
/srv – tento adresář obsahuje data, která jsou poskytována službami systému. Například může obsahovat data webového serveru nebo datové soubory databáze.
/tmp – dočasné soubory, které mohou být vytvořeny různými programy. Tento adresář je obvykle vyčištěn při každém restartu systému.
/usr – tento adresář obsahuje většinu uživatelsky nainstalovaného softwaru a nástrojů. Obsahuje podadresáře jako /usr/bin pro uživatelské binární soubory, /usr/lib pro knihovny, a /usr/share pro sdílená data.
/var – tento adresář obsahuje proměnné soubory, které se často mění, jako jsou logy (/var/log), spool soubory pro tiskárny (/var/spool), dočasné e-maily a další.
Pro jednodušší pochopení níže obrázek (v angličtině) shrnující účel jednotlivých podadresářů:

Zdroj obrázku: https://linuxhandbook.com/linux-directory-structure
Žurnálování
Žurnálování je technologie vyvinuta s cílem minimalizovat riziko ztráty dat a zrychlit kontrolu disků po případné havárii systému. Žurnálovací systémy (ext3, ext4, XFS, ReiserFS, Btrfs) využívají žurnál k zaznamenávání změn před jejich skutečným zápisem na disk. Tento proces zajišťuje vyšší úroveň datové integrity a rychlejší obnovu po výpadku.
Jak žurnálování funguje
Žurnálování funguje tak, že předtím, než se změny provedené na souborovém systému skutečně zapíší na disk, jsou nejprve zapsány do speciálního souboru nazývaného žurnál. Tento žurnál funguje jako dočasné úložiště pro všechny změny, které se mají na souborovém systému provést.
Kroky žurnálování:
- Zápis do žurnálu – když se provede operace, například vytvoření nebo úprava souboru, tato změna je nejprve zapsána do žurnálu. Tento zápis zahrnuje všechny potřebné informace pro dokončení operace.
- Potvrzení zápisu – jakmile je zápis v žurnálu dokončen, operace je považována za zahájenou, ale ne ještě dokončenou.
- Aplikace změn – po zápisu do žurnálu se změny aplikují na skutečný souborový systém.
- Odstranění ze žurnálu – po úspěšném dokončení změn na souborovém systému se příslušné záznamy ze žurnálu odstraní nebo označí jako dokončené.

Zdroj obrázku: https://foxutech.com/how-to-disable-enable-journaling/
Výhody a nevýhody
Výhody žurnálování
- Zvýšená spolehlivost – zajišťuje, že systém může rychle obnovit konzistentní stav po výpadku, což minimalizuje riziko ztráty dat.
- Rychlejší obnovení – po havárii systému může být proces obnovení mnohem rychlejší, protože systém pouze prochází žurnál a znovu provede nebo vrátí zpět změny, které nebyly dokončeny.
- Datová integrita – zajišťuje, že struktura souborového systému zůstane konzistentní.
Neýhody žurnálování
- Výkon – přestože žurnálování zvyšuje spolehlivost, může také snížit výkon, protože každá operace zahrnuje dodatečný krok zápisu do žurnálu.
- Spotřeba místa – žurnálovací souborové systémy vyžadují dodatečné místo pro uložení žurnálu, což může být nevýhodné na systémech s omezeným úložným prostorem.
Příkazy pro práci se žurnálem
Žurnálování je implementováno pomocí daemona journald. Ten zpracovává všechny zprávy vytvářené jádrem, initrd, službami atd.
My si ukážeme používání nástroje journalctl, který slouží k přístupu k datům uloženým v žurnálu a k manipulaci s nimi.
Zobrazení logu od poslední spuštění systému
Po restartu systému je často potřeba zkontrolovat události, které se staly během jeho startu. Příkaz journalctl -b umožňuje zobrazit logy od posledního bootu, čímž můžeme identifikovat problémy nebo chyby, které mohly nastat při startu systému.
journalctl -b
Zobrazení logu podle časového intervalu
Logy lze filtrovat podle časového intervalu, což usnadňuje vyhledávání specifických událostí nebo chyb v konkrétním časovém rámci. Pomocí příkazu journalctl --since a --until můžeme zadat počáteční a koncový čas, kdy chceme logy zobrazit. Příkaz podporuje formát YYYY-MM-DD HH:MM:SS, nebo jednodušší klíčová slova jako yesterday (včera), today (dnes) a now (teď).
Například od včerejšího dne
journalctl --since "yesterday"
Specifičtější časový interval
journalctl --since "2024-10-26 14:00:00" --until "2024-10-27 16:00:00"
Zobrazení logu pro konkrétní službu
Pro diagnostiku specifických služeb je možné zobrazit logy pouze pro určitou službu pomocí parametru -u následovaného názvem služby. Tento příkaz je užitečný, pokud například potřebujeme zkontrolovat logy služby SSH nebo Apache serveru, protože se zobrazí pouze záznamy týkající se této konkrétní služby.
journalctl -u sshd
Zobrazení logu pro konkrétního uživatele
Pokud potřebujeme zobrazit logy vztahující se k aktivitám určitého uživatele, lze použít parametr _UID společně s číslem UID uživatele. Tento příkaz zobrazí pouze záznamy, které se vztahují k aktivitám zadaného uživatele, což využijeme např. při řešení problémů s právy nebo sledováním uživatelských operací.
journalctl _UID=1001
Zobrazení logu v reálném čase
Když chceme sledovat logy systému v reálném čase, použijeme příkaz journalctl -f. Tento příkaz umožňuje sledovat události, jakmile se objeví, a je zvláště užitečný při monitorování aktuálních operací nebo při hledání problému, který právě probíhá.
journalctl -f
Zobrazení velikosti žurnálu
Žurnálovací systém může zabírat určité množství místa na disku, a proto je vhodné občas zkontrolovat jeho velikost. Příkaz journalctl --disk-usage ukáže, kolik prostoru aktuálně žurnál zabírá. Tato informace je užitečná pro udržení dostatečné kapacity úložiště, zejména pokud je prostor omezený.
journalctl --disk-usage
Nastavení maximální velikosti žurnálu
Pro udržení dostatečného místa na disku můžeme nastavit maximální velikost žurnálu. Příkaz journalctl --vacuum-size=500M například omezí velikost žurnálu na 500 MB. Pokud žurnál dosáhne této velikosti, automaticky se odstraní nejstarší záznamy, aby uvolnily místo pro nové.
journalctl --vacuum-size=500M
Pokročilá konfigurace žurnálu
Chování žurnálu lze nastavit v konfiguračním souboru /etc/systemd/journald.conf.
Můžeme zde nastavit například:
- Storage – určuje, kde se logy ukládají:
volatile– logy jsou ukládány pouze do RAM, a proto jsou ztraceny po restartu,persistent– logy jsou ukládány na disk, takže přežijí restart systému,auto– systém sám rozhodne o vhodném místě pro uložení logů.
- SystemMaxUse – tento parametr nastavuje maximální velikost místa, které mohou logy zabírat. Pokud logy dosáhnou této velikosti, systém automaticky začne odstraňovat starší záznamy.
- Compress – určuje, zda se logy budou komprimovat. Možnost
yeszapne kompresi, což šetří místo, zatímconoznamená, že logy budou ukládány bez komprese.
Po provedení změn v tomto konfiguračním souboru je nutné restartovat službu systemd-journald příkazem:
systemctl restart systemd-journald
Typy souborových systémů
V Linuxu existuje mnoho různých souborových systémů, z nichž každý má své specifické vlastnosti a výhody. My se zaměříme na ty nejpoužívanější.
ext2 (Second Extended File System)
Historie a použití
- ext2 byl vyvinut v roce 1993 jako vylepšení původního ext souborového systému.
- Byl široce používán v 90. letech a počátkem 21. století, než ho nahradily novější verze ext.
Vlastnosti
- ext2 je známý svou jednoduchostí a nízkou režijní náročností.
- Nepodporuje žurnálování, což znamená, že po neočekávaném vypnutí systému může dojít k poškození dat.
Výhody a nevýhody
- Výhody – rychlost a nízké nároky na systémové prostředky. Vhodný pro použití na menších discích nebo v prostředích, kde není kladen důraz na robustnost.
- Nevýhody – absence žurnálování, což zvyšuje riziko poškození dat při nečekaném výpadku napájení nebo systému.
Současné použití
- Dnes používá jen zřídka, především v situacích, kde je žurnálování zbytečné nebo kde jsou požadovány nízké režijní náklady.
ext3 (Third Extended File System)
Historie a použití
- ext3 byl představen v roce 2001 jako vylepšení ext2, které přidalo podporu žurnálování.
Vlastnosti:
- ext3 poskytuje žurnálování – zvyšuje spolehlivost a umožňuje rychlé obnovení po havárii systému.
- Je zpětně kompatibilní s ext2 – usnadňuje migraci mezi těmito souborovými systémy.
Výhody a nevýhody:
- Výhody – žurnálování a snadná migrace z ext2. Zvýšená spolehlivost a rychlejší obnovení systému po pádu.
- Nevýhody – nižší výkon ve srovnání s modernějšími souborovými systémy, omezená velikost souborů a diskových oddílů.
Současné použití:
- ext3 je stále používán v některých starších systémech a v situacích, kde je důležitá zpětná kompatibilita. Nicméně většina novějších systémů přešla na ext4 nebo jiné moderní souborové systémy.
ext4 (Fourth Extended File System)
Historie a použití
- ext4 byl vydán v roce 2008 a je zpětně kompatibilní s ext3 a ext2.
Vlastnosti
- ext4 podporuje větší objemy dat a soubory (až 1 exabajt pro disk a 16 terabajtů pro soubor).
- Zavádí funkce jako extenty, které zlepšují alokaci diskového prostoru a výkon.
- Podporuje žurnálování, zpožděnou alokaci a multiblokovou alokaci, čímž zvyšuje výkon a snižuje fragmentaci.
- Rychlejší kontrola systému souborů a lepší správa prostoru díky novým alokačním technikám.
Výhody a nevýhody
- Výhody – vysoký výkon, podpora velkých souborů a disků, vylepšené žurnálování, robustnost a spolehlivost. Moderní funkce pro správu diskového prostoru a výkonu.
- Nevýhody – vyšší komplexita ve srovnání s ext2 a ext3, což může znamenat vyšší nároky na správu a konfiguraci.
Současné použití
- ext4 je v současnosti nejpoužívanějším souborovým systémem pro Linux díky své stabilitě, výkonu a podpoře velkých souborů a disků. Je vhodný pro široké spektrum aplikací od osobních počítačů až po servery.
Btrfs (B-tree File System)
Historie a použití
- Btrfs byl vyvinut firmou Oracle a představen v roce 2007 jako moderní souborový systém s pokročilými funkcemi.
Vlastnosti
- Podpora snapshotů – umožňuje vytváření okamžitých kopií souborového systému pro zálohování a obnovu.
- Vestavěná deduplikace a komprese dat – zvýšení efektivity využití diskového prostoru.
- Integrované správa více zařízení a podpora RAID
- Samoopravné schopnosti díky kontrolním součtům a detekci poškození dat.
Výhody a nevýhody
- Výhody – pokročilé funkce jako snapshoty, deduplikace a komprese, vysoká úroveň datové integrity a spolehlivosti.
- Nevýhody – relativně nová technologie, která může mít problémy s kompatibilitou a stabilitou v některých aplikacích.
Současné použití
- Btrfs je stále více adoptován pro pokročilé aplikace a servery díky svým moderním funkcím. Jeho použití se doporučuje pro systémy, kde jsou důležité funkce jako snapshoty a deduplikace.
XFS
Historie a použití
- XFS byl vyvinut firmou Silicon Graphics (SGI) v roce 1994 a je známý svou vysokou výkonností a schopností pracovat s velmi velkými soubory a diskovými oddíly.
Vlastnosti
- Vysoce škálovatelný souborový systém, který může pracovat s velmi velkými soubory a disky.
- Pokročilé žurnálování, které zajišťuje rychlé obnovení po havárii.
- Podpora pro alokaci v reálném čase, což je výhodné pro aplikace náročné na vstup/výstup, jako jsou databáze a multimediální aplikace.
Výhody a nevýhody
- Výhody – vysoký výkon, podpora velmi velkých souborů a disků, robustní žurnálování.
- Nevýhody – vyšší složitost a náročnost na správu, omezená podpora některých funkcí ve srovnání s Btrfs nebo ZFS.
Současné použití
- XFS je často používán na serverech a v podnikových prostředích, kde je vyžadována vysoká výkonnost a spolehlivost.
ZFS (Zettabyte File System)
Historie a použití
- ZFS byl vyvinut firmou Sun Microsystems a představen v roce 2005. Je známý svou vysokou úrovní datové integrity a pokročilými funkcemi.
Vlastnosti
- Podpora pro velké objemy dat, až zettabajty (2^70 bajtů).
- Integrované funkce pro správu úložišť, jako je správa disků a RAID.
- Pokročilé funkce jako snapshoty, klonování, deduplikace a komprese.
- Samoopravné schopnosti a vysoká úroveň datové integrity díky kontrolním součtům.
Výhody a nevýhody
- Výhody – vysoká úroveň datové integrity, pokročilé funkce pro správu dat, robustní výkon.
- Nevýhody – vyšší složitost a náročnost na správu, licenční omezení mohou komplikovat integraci do některých Linuxových distribucí.
Současné použití
- ZFS je často používán v datových centrech a pro zálohování díky svým pokročilým funkcím a vysoké úrovni spolehlivosti.
ReiserFS
Historie a použití
- Moderní souborový systém, který byl vyvinut Hansem Reiserem a jeho týmem v Namesys v roce 2001.
- Byl navržen s důrazem na výkon a efektivitu ukládání
Vlastnosti:
- Používá pokročilé techniky dynamické alokace pro zlepšení výkonu a minimalizaci fragmentace.
- Podporuje žurnálování
- Využívá B+ stromy pro organizaci dat (rychlé vyhledávání a přístup k souborům)
- Optimalizace pro ukládání malých souborů zvyšuje výkon v systémech, kde je mnoho malých souborů.
Výhody a nevýhody
- Výhody – vysoký výkon díky dynamické alokaci a efektivnímu ukládání malých souborů, flexibilita díky efektivní správě malých i velkých souborů, zvýšená spolehlivost a integrita dat díky žurnálování.
- Nevýhody -Komplexita a složitost správy ve srovnání s jednoduššími souborovými systémy, omezená podpora v některých Linuxových distribucích, potenciální problémy s kompatibilitou a stabilitou v některých aplikacích.
Současné použití:
- Reiser není široce používán jako ext4 nebo XFS, ale nachází uplatnění v některých specializovaných aplikacích, kde jsou jeho vlastnosti výhodné. Jeho použití může být vhodné tam, kde je kladen důraz na výkon. Nicméně, s příchodem novějších souborových systémů, jako je Btrfs a ZFS, se jeho použití postupně snižuje
Prezentace
3-Souborove-systemyZdroje
Seznam zdrojů
ŠEDIVÝ, Libor. Operační systémy IV. ročník: Učební text. Městská střední odborná škola Klobouky u Brna, 2023.
ŠEDIVÝ, Libor. Operační systémy IV. ročník: Prezentace. Městská střední odborná škola Klobouky u Brna, 2023.
POMYKACZ, Ivan. Digitální učební materiály: Operační systémy – Linux. Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace, 2013.
ABARIS, Augustine. Introduction to Linux. BOSTON UNIVERSITY, 2018.
Linux Journey. Online. 2024. Dostupné z: https://linuxjourney.com/.
Ibiblio catalog. The Linux Users‘ Guide. Dostupné z: https://www.ibiblio.org/
Učebnice ABC/Linuxu. Online. Abclinuxu, 2006. Dostupné také z: https://www.abclinuxu.cz/download/ucebnice_abc_linuxu-20061019.pdf.
