Kontrolu celého systému souborů můžete zahájit spuštěním úlohy čištění systému souborů. Úloha čištění běží ve výchozím nastavení na pozadí a kontroluje integritu celého systému souborů. Automaticky se pokusí nahlásit a opravit všechny špatné bloky, které na cestě najde. Namísto procházení celé diskové jednotky se čistící úloha zabývá pouze daty, která jsou skutečně přidělena. V závislosti na přiděleném prostoru na disku je to mnohem rychlejší než provádění skenování celého povrchu disku.
Čištění zahrnuje čtení všech dat ze všech disků a ověřování kontrolních součtů. Pokud některé hodnoty nejsou správné, lze data opravit načtením dobré kopie bloku z jiné jednotky. Čistící kód se také skenuje při čtení automaticky. Doporučuje se, abyste vysoce využívané souborové systémy promazávali jednou týdně a všechny ostatní systémy souborů jednou měsíčně.
Následuje seznam dostupných příkazů scrub btrfs:
# btrfs scrub usage: btrfs scrub [command] [options] [path]|[device] btrfs scrub start [-BdqrRf] [-c ioprio_class -n ioprio_classdata] [path]|[device] Start a new scrub. If a scrub is already running, the new one fails. btrfs scrub cancel [path]|[device] Cancel a running scrub btrfs scrub resume [-BdqrR] [-c ioprio_class -n ioprio_classdata] [path]|[device] Resume previously canceled or interrupted scrub btrfs scrub status [-dR] [path]|[device] Show status of running or finished scrub verify checksums of data and metadata
Btrfs scrub Utility:Příklady
Pomocí příkazu btrfs scrub start spustíte scrub na všech zařízeních systému souborů nebo na jednom zařízení. Syntaxe je následující:
# btrfs scrub start [-BdqrR] [-c ioprio_class ...
Popis možností:
Možnost | Popis |
---|---|
-B | Nespouštět na pozadí a po dokončení tisknout statistiky. |
-d | Vytisknout samostatné statistiky pro každé zařízení systému souborů. Tato volba se používá ve spojení s volbou -B. |
-q | Spouštět v tichém režimu, vynechávat chybové zprávy a statistiky. |
-r | Spustit v režimu pouze pro čtení, neopravovat žádné chyby. |
-R | Režim tisku Raw. Místo souhrnu vytiskněte úplná data. |
-c ioprio_class | Nastavte třídu priority IO (viz manuálová stránka ionice). |
-n ioprio_classdata | Nastavte data třídy priority IO (viz manuálová stránka ionice). |
Spouštění btrfs scrub
Následující příklad spustí scrubu na souborovém systému Btrfs, který je připojen k /btrfs.
# btrfs scrub start /btrfs scrub started on /btrfs, fsid ba60ac96-1628-4656-b68b-c7327ff49179 (pid=11164)
Pomocí příkazu btrfs scrub status získáte stav úlohy čištění. K dispozici je jedna možnost:
- -d – Tisk samostatných statistik pro každé zařízení systému souborů.
Níže je uveden příklad příkazu btrfs scrub status na zdravém souborovém systému. V případě poškozeného souborového systému uvidíte ve výstupu opravené chyby.
# btrfs scrub status /btrfs scrub status for ba60ac96-1628-4656-b68b-c7327ff49179 scrub started at Fri Mar 30 14:29:47 2018 and finished after 00:00:02 total bytes scrubbed: 325.29MiB with 0 errors
S volbou „-d“ ve výše uvedeném příkazu můžete získat stav na úrovni zařízení, jak je znázorněno v příkladu níže.
# btrfs scrub status /btrfs -d scrub status for ba60ac96-1628-4656-b68b-c7327ff49179 scrub device /dev/sda (id 1) history scrub started at Fri Mar 30 14:29:47 2018 and finished after 00:00:02 total bytes scrubbed: 325.29MiB with 0 errors
Zrušení/obnovení úlohy čištění btrfs
Můžete také zrušit běžící úlohu čištění. Postup se ukládá do souboru postupu čištění a můžete v něm pokračovat později. Zrušení čištění:
# btrfs scrub cancel /btrfs
Chcete-li obnovit zrušenou nebo přerušenou úlohu čištění:
# btrfs scrub resume /btrfs
Příkaz obnovení při čištění má stejné možnosti jako příkaz spuštění čištění. Btrfs ukládá poslední dvě minuty, ve 30sekundových intervalech, generování root ID. Btrfs pokračuje v používání těchto generací, i když v souborovém systému nejsou žádné změny.
Pokud scrub neopraví chyby, můžete použít následující možnost připojení k návratu ke známému dobrému B-stromu, protože zbytek stromu je dostupný díky kopírování při zápisu:
# mount –o recovery /dev/sda /btrfs