XFS

Oprava systému XFS

Oprava systému XFS
Systémy souborů jsou postaveny na úložných zařízeních. Existují řadiče RAID a řadiče disků, z nichž každý provozuje svůj vlastní malý kousek firmwaru. Existují mezipaměti ke zlepšení výkonu. Existují disky s různými velikostmi sektoru a existují disky, které by hlásily jinou velikost sektoru v závislosti na tom, jak položíte otázku.

S tolika různými částmi, které tvoří typický zásobník, je zázrak, že vůbec něco funguje. Věci však většinou fungují dobře. Několikrát, když se něco pokazí, potřebujeme nástroje, jako je xfs_repair, které nás dostanou z nepořádku.

Věci se mohou pokazit, když píšete soubor a dojde k výpadku napájení nebo dojde k panice jádra. I data, která jsou na disku nečinná, se mohou časem rozpadat, protože se může změnit fyzická struktura paměťových prvků, což se označuje jako bit rot. Ve všech případech potřebujeme mechanismus pro:

  1. Kontrola dat, která jsou čtena, jsou stejná data, která byla naposledy zapsána. To je implementováno tak, že máte kontrolní součet pro každý blok dat a porovnáním kontrolního součtu pro tento blok při čtení dat. Pokud se kontrolní součet shoduje, data nebyla změněna
  2. Způsob rekonstrukce poškozených nebo ztracených dat, ať už ze zrcadlového bloku, nebo z paritního bloku.

Nastavení karantény

Pojďme nastavit testbench pro spuštění rutiny opravy xfs namísto použití skutečných disků s cennými daty. Pokud již máte poškozený souborový systém, můžete tuto část přeskočit a přeskočit přímo do další. Tento testbench je tvořen virtuálním počítačem Ubuntu, ke kterému je připojen virtuální disk poskytující surové úložiště. Můžete použít VirtualBox k vytvoření virtuálního počítače a poté vytvořit další disk pro připojení k virtuálnímu počítači.

Stačí přejít do nastavení vašeho virtuálního počítače a pod Nastavení → Úložiště v sekci můžete přidat nový disk do řadiče SATA můžete vytvořit nový disk. Jak je uvedeno níže, ale ujistěte se, že je váš virtuální počítač vypnutý.

Po vytvoření nového disku zapněte virtuální počítač a otevřete terminál. Příkaz lsblk seznam všech dostupných blokovacích zařízení.

$ lsblk
sda 8: 0 0 60G 0 disk
├─sda1 8: 1 0 1M 0 díl
└─sda2 8: 2 0 60G 0 díl /
sdb 8:16 0 100G 0 disk
sr0 11: 0 1 1024M 0 rom

Kromě zařízení hlavního bloku sda, kde je nainstalován OS, je nyní nové zařízení sdb. Pojďme z něj rychle vytvořit oddíl a naformátovat jej pomocí souborového systému XFS.

Otevřete rozdělený nástroj jako uživatel root:

$ parted -a optimální / dev / sdb

Nejprve vytvořme tabulku oddílů pomocí mklabel, poté následuje vytvoření jediného oddílu z celého disku (který má velikost 107 GB). Vytvoření oddílu můžete ověřit jeho výpisem pomocí příkazu print:

(rozdělené) mklabel gpt
(rozděleno) mkpart primární 0 107
(rozdělený) tisk
(rozdělené) ukončit

Dobře, nyní pomocí lsblk vidíme, že pod zařízením sdb existuje nové blokové zařízení s názvem sdb1.

Naformátujeme toto úložiště jako xfs a připojíme jej do adresáře / mnt. Opět proveďte následující akce jako root:

$ mkfs.xfs / dev / sdb1
$ mount / dev / sdb1 / mnt
$ df -h

Poslední příkaz vytiskne všechny připojené souborové systémy a můžete zkontrolovat, zda je / dev / sdb1 připojen na / mnt.

Dále zde napíšeme spoustu souborů jako fiktivní data k defragmentaci:

$ dd if = / dev / urandom of = / mnt / myfile.počet txt = 1024 bs = 1024

Výše uvedený příkaz by zapsal soubor myfile.txt o velikosti 1 MB. Pokud chcete, můžete automaticky vygenerovat více takových souborů, rozdělit je do různých adresářů uvnitř souborového systému xfs (připojeného na / mnt) a poté zkontrolovat fragmentaci. Použijte k tomu bash nebo python nebo jiný oblíbený skriptovací jazyk.

Kontrola a oprava chyb

Poškození dat se může tiše vplížit na vaše disky bez vašeho vědomí. Pokud se datový blok nečte a kontrolní součet se neporovnává, může se chyba zobrazit jen ve špatnou dobu. Když se někdo pokouší získat přístup k datům, v reálném čase. Místo toho je dobré často provádět důkladné skenování všech datových bloků pro kontrolu hniloby bitů nebo jiných chyb.

Obslužný program xfs_scrub má tento úkol splnit za váš. Tato experimentální funkce, částečně inspirovaná příkazem scrub OpenZFS, je k dispozici pouze na xfsprogs verze 4.15.1-1ubuntu1, které není stabilním vydáním. Pokud chybně zjistí chybu, může vás uvést v omyl a místo opravy ji způsobit poškození dat! Pokud s ním však chcete experimentovat, můžete jej použít na připojeném souborovém systému pomocí příkazu:

$ xfs_scrub / dev / sdb1

Než se pokusíte opravit poškozený souborový systém, musíte jej nejprve odpojit. To má zabránit aplikacím v neúmyslném zápisu do souborového systému, pokud má zůstat sám.

$ umount / dev / sdb1

Oprava chyb je stejně jednoduchá jako spuštění:

$ xfs_repair / dev / sdb1

Základní metadata jsou vždy uchovávána jako více kopií, i když nepoužíváte RAID a pokud se u superbloku nebo inodů něco pokazilo, pak tento příkaz s největší pravděpodobností může tento problém vyřešit za vás.

Další kroky

Pokud vidíte poškození dat často (nebo dokonce jednou, pokud používáte něco kritického pro misi), zvažte výměnu disků, protože to může být časný indikátor disku, který se chystá zemřít.

Pokud selže řadič nebo se karta RAID vzdala života, pak žádný software na světě nemůže opravit souborový systém za vás. Nechcete drahé účty za obnovu dat a ani dlouhé prostoje, takže dávejte pozor na ty SSD a rotující talíře!

V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...
Jak obrátit směr posouvání myši a touchpadu ve Windows 10
Myš a Touchpadnejenže usnadňují výpočet, ale jsou efektivnější a méně časově náročné. Nemůžeme si představit život bez těchto zařízení, ale přesto je ...