Vyhledávání na webu

Jak opravit a defragmentovat systémové oddíly a adresáře Linuxu


Lidé, kteří používají Linux, si často myslí, že nevyžaduje defragmentaci. Toto je běžné nedorozumění mezi uživateli Linuxu. Operační systém Linux ve skutečnosti podporuje defragmentaci. Smyslem defragmentace je zlepšit I/O operace, jako je umožnění rychlejšího načítání místních videí nebo výrazně rychlejší extrahování archivů.

Souborové systémy Linux ext2, ext3 a ext4 nevyžadují tolik pozornosti, ale časem, po provedení mnoha mnoha čtení/zápisů, může souborový systém vyžadovat optimalizaci. V opačném případě se může pevný disk zpomalit a ovlivnit celý systém.

V tomto tutoriálu vám ukážu několik různých technik pro provádění defragmentace souborů. Než začneme, měli bychom zmínit, co dělají běžné souborové systémy jako ext2,3,4, aby zabránily fragmentaci. Tyto systémy souborů zahrnují techniku, která tomuto efektu zabrání. Souborové systémy například rezervují volné skupiny bloků na pevném disku pro úplné uložení rostoucích souborů.

Bohužel ne vždy je problém tímto mechanismem vyřešen. Zatímco jiné operační systémy mohou vyžadovat drahý další software k vyřešení takových problémů, Linux má některé snadno instalovatelné nástroje, které vám mohou pomoci takové problémy vyřešit.

Jak zkontrolovat, zda souborový systém vyžaduje defragmentaci?

Než začneme, rád bych upozornil, že níže uvedené operace by měly být spouštěny pouze na HDD a nikoli na SSD. Defragmentace disku SSD pouze zvýší počet čtení/zápisu, a tím zkrátí jeho životnost. Místo toho, pokud používáte SSD, měli byste použít funkci TRIM, která není zahrnuta v tomto návodu.

vyzkoušíme, zda systém skutečně vyžaduje defragmentaci. Můžeme to snadno zkontrolovat pomocí nástroje, jako je e2fsck. Než použijete tento nástroj na diskovém oddílu ve vašem systému, doporučujeme tento oddíl odpojit. Není to úplně nutné, ale je to bezpečný způsob:

sudo umount <device file>

V mém případě mám /dev/sda1 připojený k /tmp:

Mějte na paměti, že ve vašem případě se může tabulka oddílů lišit, takže se ujistěte, že jste odpojili správný oddíl. K odpojení tohoto oddílu můžete použít:

sudo umount /dev/sda1

Nyní zkontrolujeme, zda tento oddíl vyžaduje defragmentaci pomocí e2fsck. Budete muset spustit následující příkaz:

sudo e2fsck -fn /dev/sda1

Výše uvedený příkaz provede kontrolu souborového systému. Možnost -f vynutí kontrolu, i když se systém zdá čistý. Možnost -n se používá k otevření souborového systému pouze pro čtení a předpokládá se odpověď "ne" na všechny otázky, které se mohou objevit.

Tato možnost v zásadě umožňuje používat e2fsck neinteraktivně. Pokud je vše V pořádku, měli byste vidět výsledek podobný tomu, který je zobrazen na níže uvedeném snímku obrazovky:

Zde je další příklad, který ukazuje chyby v systému:

Jak opravit systém souborů Linux pomocí e2fsck

Pokud se objeví chyby, můžete se pokusit o opravu souborového systému pomocí e2fsck s volbou „-p“. Všimněte si, že pro spuštění níže uvedeného příkazu bude nutné odpojit oddíl:

sudo e2fsck -p <device file>

Možnost „-p“ se pokusí o automatickou opravu v systému souborů u problémů, které lze bezpečně opravit bez lidského zásahu. Pokud je zjištěn problém, který může vyžadovat, aby správce systému provedl další nápravná opatření, e2fsck vytiskne popis problému a ukončí se s kódem 4, což znamená „Chyby systému souborů nebyly opraveny“. V závislosti na nalezeném problému mohou být vyžadovány různé akce.

Pokud se problém objeví na oddílu, který nelze odpojit, můžete použít jiný nástroj nazvaný e4defrag. Dodává se předinstalovaný v mnoha linuxových distribucích, ale pokud jej nemáte ve svém, můžete jej nainstalovat pomocí:

sudo apt-get install e2fsprogs         [On Debian and Derivatives]
yum install e2fsprogs                  [On CentOS based systems]
dnf install e2fsprogs                  [On Fedora 22+ versions] 

Jak defragmentovat linuxové oddíly

Nyní je čas defragmentovat oddíly Linuxu pomocí následujícího příkazu.

sudo e4defrag <location>
or
sudo e4defrag <device>

Jak defragmentovat adresář Linuxu

Pokud například chcete defragmentovat jeden adresář nebo zařízení, můžete použít:


sudo e4defrag /home/user/directory/
sudo e4defrag /dev/sda5

Jak defragmentovat všechny linuxové oddíly

Pokud dáváte přednost defragmentaci celého systému, bezpečný způsob, jak to provést, je:

sudo e4defrag /

Mějte na paměti, že dokončení tohoto procesu může nějakou dobu trvat.

Závěr

Defragmentace je operace, kterou v Linuxu budete muset spouštět jen zřídka. Je určen pro pokročilé uživatele, kteří vědí, co přesně dělají, a nedoporučuje se pro nováčky Linuxu. Smyslem celé akce je mít váš souborový systém optimalizovaný tak, aby se nové operace čtení/zápisu prováděly efektivněji.