Jak vytvářet snímky pomocí BtrFS na Linuxu

Chcete si zabezpečit svá data v Linuxu pomocí snímků, pro případ nechtěného smazání? Souborový systém Btrfs vám to umožní. Než začnete, ujistěte se, že máte v systému Linux blokové zařízení s formátováním Btrfs. Pokud máte disk, který chcete převést na Btrfs, postupujte podle následujících instrukcí. Chcete použít Btrfs jako kořenový systém? Během instalace zvolte „vlastní instalaci“ a jako souborový systém vyberte Btrfs.

Kromě toho, že musíte mít blokové zařízení s naformátovaným systémem souborů Btrfs, potřebujete také nainstalovat balíček btrfs-progs.

Poznámka: Pro zjištění, které blokové zařízení chcete formátovat, můžete použít příkaz lsblk.

Btrfs v Linuxu

Před formátováním disku si zálohujte všechna data. Poté otevřete terminál a získejte přístup roota pomocí sudo -s. S právy roota použijte příkaz mkfs pro vytvoření nového souborového systému. V tomto příkladu použijeme /dev/sdd1:

mkfs.btrfs -f /dev/sdd1

Řešení problémů

Disk po naformátování na Btrfs nefunguje správně? Možná bude nutné vytvořit novou tabulku oddílů. Postup je následující:

parted /dev/sdd
mklabel gpt
mkpart primary btrfs 1MiB 100%

Ukončete nástroj parted:

quit

Poté spusťte znovu příkaz pro formátování:

mkfs.btrfs -f /dev/sdd1

Tvorba snímků s Btrfs

Před vytvořením snímků musíte vytvořit několik subsvazků. Používáte Btrfs jako svůj hlavní systém? Pak tento krok přeskočte a přejděte rovnou k nastavení subsvazků. Tento postup použijte jen v případě, že pracujete s sekundárním diskem s Btrfs, který musíte připojit. V tomto případě je disk /dev/sdd.

sudo -s
mkdir /btrfs
mount -t btrfs /dev/sdd1 /btrfs

Hlavní složka Btrfs je vytvořena, připojena a připravena k použití. Nyní je čas vytvořit subsvazek. Co to je? Jedná se o funkci Btrfs, která umožňuje vytvořeným svazkům chovat se podobně jako bloková zařízení (např. /dev/sda1).

Ve skutečnosti to nejsou bloková zařízení, ale speciální adresáře využívající technologii „name spaces“. Zjednodušeně řečeno, Btrfs tuto technologii využívá k vytváření mnoha jednotlivých připojitelných subsvazků, které fungují podobně jako bloková zařízení.

Chcete-li vytvořit subsvazek, postupujte takto. Ukážeme si základní strukturu subsvazku, začínající v hlavní složce /btrfs. Svazky můžete vytvářet kdekoli v systému souborů Btrfs.

Nejprve získejte roota. Tyto příkazy lze provádět s právy sudo, ale je lepší získat roota přímo (sudo -s nebo su). Poté proveďte:

btrfs subvolume create /btrfs/vol_a

První příkaz vytvoří subsvazek Btrfs pod /mnt/btrfs na disku /dev/sdd1. Můžete zde skončit a použít ho k ukládání dat. Případně můžete vytvořit i další subsvazky. Pro vytvoření subsvazku v jiném subsvazku použijte:

btrfs subvolume create /btrfs/vol_a/vol_b

Pro vytvoření snímku zkopírujte všechna data do subsvazku. Například:

cp -R ~/Documents /btrfs/vol_a/

a potom pomocí systému souborů vytvořte snímek.

btrfs subvolume snapshot /btrfs/vol_a/ /btrfs/vol_a/backup_1

Poznámka: Název „backup_1“ můžete nahradit libovolným názvem. Pojmenujte snímky jasně, abyste se v nich později vyznali.

Pro obnovu snímku použijte: mv /btrfs/vol_a/ /mnt/btrfs/vol_a/backup_1

Připojení subsvazků jako blokových zařízení

Subsvazky můžete připojovat jednotlivě jako nezávislá zařízení. Pro zobrazení všech známých svazků použijte:

btrfs subvolume list /btrfs

Projděte seznam, najděte ID subsvazku a připojte ho pomocí příkazu mount. Po získání ID ho odpojte.

mount -o subvolid=XXX /dev/sdX /btrfs

Nahraďte XXX ID a /dev/sdX jednotkou, kde se svazek nachází. Subsvazek nemůžete připojit ke stejnému oddílu jako oddíl nejvyšší úrovně, ale k jinému oddílu nebo disku s formátem Btrfs. Například:

mount -o subvolid=38 /dev/sdc1 /btrfs

Subsvazek s ID 38 je na /dev/sdd1, ale /dev/sdc1 je také Btrfs, takže je možné k němu připojovat snímky. Toto není nutné provádět na samostatných discích, můžete je připojit i do /dev/sdc2, atd.

Nastavení výchozího subsvazku

Nastavení výchozího subsvazku usnadňuje interakci s ním. Pro nalezení ID použijte subvolume list a poté ho použijte v příkazu set-default:

btrfs subvolume set-default XXX /btrfs

Pro zrušení výchozího nastavení použijte stejný příkaz, ale místo ID svazku použijte číslo 0. Tím se vrátíte do továrního nastavení a poté můžete libovolně používat ostatní subsvazky jako výchozí.

btrfs subvolume set-default 0 /btrfs

Smazání subsvazku

Pokud se budete chtít zbavit svazku, použijte nástroje souborového systému Btrfs, neodstraňujte ho ručně pomocí příkazů jako rmdir nebo rm -rf.

Pro smazání svazku použijte:

btrfs subvolume delete /btrfs/volume-name