Btrfs pro začátečníky: co to je, jak funguje a kdy ho zvolit
NÁVODY > KATEGORIE > Linux Distro + programy
01.09.2025
Co je Btrfs- Btrfs je moderní souborový systém pro Linux s funkcemi, které ext4 nemá: snapshoty, copy-on-write (COW), kontrolní součty dat i metadat a nativní kompresi. Díky tomu se umí rychle vracet v čase, brání tichému poškození dat a šetří místo.
Klíčové vlastnosti Btrfs
- COW (Copy-on-Write): při změně se zapisuje nová kopie bloků, původní zůstává beze změny.
- Snapshoty: okamžité „zmražení“ stavu, zabírají minimum místa, dokud se data nemění.
- Subvolumy: logické části uvnitř jednoho Btrfs oddílu, každou lze připojit (mountnout) zvlášť s vlastními volbami.
- Checksummy: kontrolní součty dat i metadat chrání proti tichému poškození.
- Komprese (např. zstd): ušetří 10–30 % místa, často zrychlí čtení na SSD.
Jak funguje Copy-on-Write (COW)
- Způsob zápisu: Btrfs při úpravě souboru nepřepisuje původní bloky.
- Vytvoří novou kopii změněných bloků: modifikovaná data zapíše na nové místo.
- Aktualizuje metadata: ta začnou ukazovat na nové bloky.
- Původní data zůstávají nedotčena: dokud není vše úspěšně zapsáno, stará verze je bezpečně k dispozici.
Výhody Copy-on-write v Btrfs:
- Integrita dat: Zajišťuje, že původní data nejsou poškozena, protože jsou zachována, dokud není nová kopie dat úspěšně zapsána.
- Efektivní snapshoty: Umožňuje vytvářet snapshoty souborového systému, které zabírají minimum místa, protože sdílejí stejné datové bloky s původním systémem, dokud nejsou modifikovány.
- Deduplikace: Při klonování nebo při úpravách dat se díky COW mechanismu vytvářejí pouze kopie modifikovaných bloků, což přispívá k efektivní deduplikaci dat.
Jak funguje snapshot v Btrfs
- Snapshot = nový seznam ukazatelů na stejné bloky dat.
- Nic se nekopíruje, snapshot je hotový prakticky okamžitě a zabírá jen pár MB metadat.
- Při pozdější změně se vytvoří nové bloky, takže starý snapshot zůstává nezměněný.
- Díky tomu je obnova do předchozího stavu otázka sekund.
Subvolumy a „možnost mountu“
Subvolume je logická jednotka uvnitř Btrfs (není to zvláštní oddíl ani image). Lze ho připojit samostatně (mountnout) pod jiný adresář a s vlastními volbami (compress=zstd, noatime, ro…). To u obyčejné složky nejde.
Proč je to praktické:
- / a /home můžete mít na jednom Btrfs oddílu, ale připojené odděleně s jinými volbami.
- Můžete připojit snapshot jen pro čtení a vytáhnout z něj soubory.
- Rollback a údržba jsou rychlé a čisté.
Jednovětá definice: „Subvolume s možností mountu“ = logická část Btrfs, kterou připojíte jako samostatný filesystém s vlastními volbami a mountpointem.
Doporučená struktura subvolumů (domácí PC)
- @ → / (root)
- @home → /home
- @var → /var
- @timeshift → /.snapshots (Timeshift)
Ukázkový /etc/fstab
# <device> <mountpoint> <fstype> <options> <dump> <pass>UUID=xxxx-xxxx / btrfs subvol=@,compress=zstd,ssd,noatime 0 0UUID=xxxx-xxxx /home btrfs subvol=@home,compress=zstd,ssd,noatime 0 0UUID=xxxx-xxxx /var btrfs subvol=@var,compress=zstd,ssd,noatime 0 0UUID=xxxx-xxxx /.snapshots btrfs subvol=@timeshift,compress=zstd,ssd,noatime 0 0# /boot a swap dle potřeby# UUID=yyyy-yyyy /boot ext4 defaults 0 2# UUID=zzzz-zzzz none swap sw 0 0
dump – historicky pro nástroj dump (zálohy).
- 0 = nezahrnovat do dump záloh (běžné nastavení)
- 1 = zahrnout (dnes se téměř nepoužívá)
pass – pořadí kontroly fsck při bootu.
- 0 = Nekontrolovat při startu.
- 1 = Zkontrolovat jako první (obvykle pouze /).
- 2 = Zkontrolovat po rootu (paralelně u více oddílů).
Chybná hodnota pass (např. více oddílů s 1) může při bootu způsobit dlouhé čekání na fsck.
Poznámka:
ssd mount volbu použijte na SSD; na HDD můžete vynechat.
- ssd je mount volba Btrfs, která zapne optimalizace pro disky typu SSD/NVMe (jiné rozvržení alokace, počítá se s nulovým seekem ap.).
- Na SSD/NVMe: můžete ji uvést (ssd), ale Btrfs dnes SSD většinou rozpozná automaticky, takže je to spíš „pro jistotu“ – neuškodí.
- Na HDD: tuhle volbu nedávejte (nemá přínos; na klasický rotační disk se nehodí).
Pro TRIM preferujte periodický fstrim.timer před discard on-line (nižší režie).sudo systemctl enable --now fstrim.timer
Má nízkou režii a běží 1× týdně, dobrý kompromis mezi výkonem a údržbou. (OnCalendar je „weekly“.).
- Efekt: jednorázově odešle seznam „uvolněných“ bloků na SSD. Disk si je pak smaže v klidu na pozadí.
- Mount volba discard dělá TRIM průběžně při mazání – dříve měla vyšší režii. Novější discard=async je šetrnější, ale pro desktop je fstrim.timer pořád rozumná volba.
Co je TRIMTRIM = příkaz, kterým OS oznámí SSD/NVMe, které bloky už nepotřebuje (byly smazané/přepsané).
- Řadič SSD si je pak může na pozadí vymazat (nutné kvůli „erase-before-write“) a zařadit do over-provisioningu - (rezervovaný „skrytý“ prostor na SSD/NVMe, který není dostupný uživateli).
- Přínosy: stabilnější rychlost zápisu, menší write-amplification, delší životnost.
Poznámky podle typu FS
- ext4 / btrfs / xfs: TRIM podporují; s fstrim.timer není třeba mount discard.
- HDD: TRIM nedává smysl (není flash).
- Šifrování LUKS/dm-crypt: TRIM je ve výchozím stavu blokovaný. Pokud ho chceš propouštět (doporučeno pro SSD na desktopu), přidej do /etc/crypttab volbu discard (u novějších LUKS „allow-discards“). Poté znovu načti konfiguraci/boot.
- Bez toho fstrim přes šifrovaný svazek neprojde.
- Bezpečnostní nuance: prozradí, které bloky jsou prázdné; pro domácí PC obvykle akceptovatelné.
Timeshift / Snapper (rychlá obnova)
- Timeshift (Btrfs mód): vytváří nativní snapshoty, přidá položku „Timeshift Snapshots“ do GRUB. Rollback je dostupný i když systém nenaběhne.
- Snapper: pokročilejší správa (snapshot před/po aktualizaci, porovnávání změn).
Základní údržba
# Kontrola využití a přehled subvolumů/snapshotů
sudo btrfs filesystem usage /sudo btrfs subvolume list /
# Pravidelná kontrola dat (doporučeno 1× měsíčně)
sudo btrfs scrub start -Bd /
# Rebalancování (jen pokud dlouhodobě varuje „balance recommended“)
sudo btrfs balance start -dlimit=1 -mlimit=1 /
# (Volitelné) Defragmentace – používejte opatrně, zvyšuje využití místa# sudo btrfs filesystem defragment -r -czstd /home/uživatel
Vždy mějte zálohu mimo Btrfs, snapshot není záloha.
Omezení a na co si dát pozor
- Vyšší režie než ext4 (typicky +10–20 % RAM, +5–10 % CPU při I/O zátěži).
- Správa je složitější (subvolumy, snapshot politika, scrub/balance).
- Snapshoty nenahrazují zálohu na jiný disk/úložiště.
- Při agresivní defragmentaci/nevhodné konfiguraci může růst využití místa.
Kdy zvolit Btrfs
- Chceš okamžité snapshoty a rychlý rollback (např. po aktualizaci).
- Chceš kompresi a kontrolní součty proti tichému poškození dat.
- Máš SSD a aspoň 8 GB RAM; nevadí ti naučit se základní správu.
Kdy raději ext4/XFS
- Potřebuješ úplně nejjednodušší řešení (ext4).
- Pracuješ hlavně s obřími soubory (video, render, databáze) a snapshoty nechceš (XFS).
Mini-FAQ
- Poznám rozdíl ve výkonu proti ext4? Na běžném desktopu s SSD a 8+ GB RAM obvykle ne; při dlouhé I/O zátěži může být Btrfs o něco náročnější.
- Je snapshot záloha? Ne. Je to rychlý návrat v čase na stejném disku. Zálohujte mimo něj.
- Musím mít /boot na ext4? Není to nutnost, ale je to nejjednodušší a univerzálně kompatibilní.
- Co když dojde místo? Smažte staré snapshoty, spusťte btrfs balance (s limity), zvažte zvětšení oddílu nebo úpravu politiky snapshotů.
Poznámka: GRUB menu se snapshoty
- Položka „Timeshift Snapshots“ v GRUBu není funkcí Timeshiftu ani Btrfs. Zajišťuje ji nástroj grub-btrfs, který do konfigurace GRUBu doplní seznam snapshotů (z Timeshiftu/Snapperu).
Debian 12 / Zorin (Ubuntu-based):
sudo apt updatesudo apt install grub-btrfs
# zapnout sledování snapshotů (pokud je v systému dostupné)
systemctl enable --now grub-btrfsd.service 2>/dev/null || truesystemctl enable --now grub-btrfs.path 2>/dev/null || true
# přegenerovat menu
sudo update-grub
# ověření, že se položka objevila:
grep -q 'Timeshift Snapshots' /boot/grub/grub.cfg && echo "OK: položka v GRUBu je" || echo "Zatím není – zkontroluj nastavení"
Timeshift musí běžet v Btrfs režimu (nikoli rsync) a snapshoty musí být na Btrfs subvolume.
Další čtení (Btrfs)
- Manuálové stránky v Linuxu: man btrfs, man btrfs-subvolume, man btrfs-scrub, man btrfs-balance
- „Btrfs features / Wiki (kernel.org)“
- „Timeshift (Linux Mint) – dokumentace“
- „Snapper User Guide (openSUSE)“
- „grub-btrfs – README (GitHub)“
Odkaz na hlavní článek: Jaký souborový systém zvolit pro Linux? (EXT4 vs. BTRFS vs. XFS).
PODPOŘTE OTEVŘENÉ NÁVODY A DALŠÍ ROZVOJ WEBU LINUX PRO DOMÁCNOST:
Věřím v otevřené znalosti. Každý návod = rešerše, testování na reálném nebo virtuálním počítači a různých Linux distribucích (např.: Rocky / Debian / Zorin / a další), psaní krok za krokem a finální kontrola — typicky několik hodin až několik dnů práce. Web držím bez reklam i trackingu a chci, aby tak zůstal.
Pokud vám jakýkoli článek ušetří čas nebo nervy, budu rád za dobrovolnou podporu (částku si určíte sami). Prosím, do zprávy pro příjemce napište: NA KAFE / Linux-doma.cz, pomůže mi to přehledně zaúčtovat měsíční souhrn. Děkuji!
A pokud se Vám web líbí a chcete se stát pravidelným sponzorem, podívejte se prosím na stránku "SPONZOŘI".
BITLIFI / QR PLATBA (bez částky)

- Uživatel: +420607271333@bitlifi.com
- Poznámka: NA KAFE / Linux-doma.cz
BANKOVNÍ PŘEVOD /
QR PLATBA (bez částky)

- Číslo účtu (CZK): 2000197842 / 2010
- IBAN: CZ41 2010 0000 0020 0019 7842
- BIC/SWIFT: FIOBCZPPXXX
- Zpráva pro příjemce: NA KAFE / Linux-doma.cz