Jak na defragmentaci linuxových systémů

def1V dnešním článku se pokusíme popsat další mýtus, a sice že linuxové disky nikdy nemusí být defragmentovány. Ve většině případů je to pravda, hlavně kvůli používání vynikajících žurnálovacích souborových systémů v Linuxu (EXT 2, 3, 4, BTRFS atd.). Nicméně, v některých specifických případech může k fragmentaci dojít. Pokud se vám to stane, řešení je naštěstí velmi jednoduché.

 

 

Co je to fragmentace?

Fragmentace nastane, když souborový systém ukládá jednotlivé soubory v malých částech, ale tyto části netvoří souvislý celek a jsou roztroušeny po celém disku. To platí zejména pro souborové systémy FAT a FAT 32. V souborovém systému NTFS byl tento jev poněkud zmírněn a v Linuxu se to téměř nikdy nestane. Zde je důvod proč.

V souborových systémech jako jsou FAT či FAT32 jsou soubory zapisovány na disk hned vedle sebe. Proto zde není prostor pro případné zvětšování souboru při jeho aktualizaci:

 

def2

 

NTFS ponechává o něco více místa mezi soubory, takže je zde prostor pro jejich růst. Vzhledem k tomu, že prostor mezi nimi je omezený, v průběhu času stále dochází k fragmentaci:

 

def3

 

Linuxové žurnálovací souborové systémy zaujímají jiný přístup. Místo toho, aby soubory umísťovaly vedle sebe, je každý soubor rozmístěn na disku tak, že jednotlivé soubory mají velkorysé množství volného prostoru. Je zde proto dostatek místa pro aktualizace a zvětšování souborů a k fragmentaci dochází velmi zřídka:

 

def4

 

Navíc, jestliže fragmentace nastane, většina linuxových souborových systémů se pokusí soubory a jejich části sloučit tak, aby byly opět souvislé.

 

Fragmentace disku v Linuxu

Fragmentaci disku nastane v Linuxu zřídkakdy, jen pokud máte malý pevný disk nebo nedostatek místa na něm. Mezi možné případy fragmentace v Linuxu patří:

  • pokud upravujete velké video soubory nebo obrazové soubory formátu .raw a místo na disku je omezeno
  • pokud používáte starší hardware, např. starý notebook a máte malý pevný disk
  • pokud se váš pevný disk začíná naplňovat (obsazeno více než 85% prostoru)
  • pokud máte na disku mnoho malých oddílů a nepřehledný domovský adresář

Nejlepším řešením je zakoupit větší pevný disk. Pokud to není možné, tak nastane čas na použití defragmentace.

 

Jak na kontrolu fragmentace

Pro tento případ použijte příkaz terminálu fsck. Máte možnost spustit jej z live DVD na všech dotčených nenamountovaných oddílech.

 

Důležité: Spustíte-li příkaz fsck na namountované particii, mohou být vážně poškozena vaše data i váš disk.

 

Byli jste varováni. Než budete pokračovat, proveďte úplnou zálohu systému.

 

Poznámka: Autor tohoto článku nenese žádnou odpovědnost za škody způsobené na vašich souborech, datech, systému nebo za jakékoliv jiné poškození, způsobené nesprávným provedením a postupem. Vše děláte na vlastní nebezpečí.

 

Takže nabootujte do live sezení (instalační disk, záchranné CD atd.) a spusťte příkaz fsck na vašich nenamountovaných oddílech. Chcete-li zkontrolovat případné problémy s fragmentací, zadejte následující příkaz s oprávněním roota:

Příkaz terminálu:
fsck -fn [/cesta/k/vašemu/oddílu]

 

Zjistit [/cestu/k/vašemu/oddílu] můžete zadáním příkazu:

Příkaz terminálu:
sudo fdisk -l

 

Způsob, jak spustit příkaz fsck (relativně) bezpečně na připojeném oddílu, je pomocí  přepínače -n. To bude mít za následek kontrolu systému pouze u souborů beze změn. Samozřejmě, že ani tady neexistuje žádná záruka bezpečnosti a vy byste měli pokračovat až po vytvoření zálohy. Na souborovém systému ext 2 zadejte:

Příkaz terminálu:
sudo fsck.ext2 -fn /cesta/k/vašemu/oddílu

Příkaz bude mít za následek velký výstup – většina budou chybové zprávy, vzniklé na základě skutečnosti, že oddíl je namountován. Na konci však bude informace o fragmentaci.

 

def5

 

Pokud je úroveň fragmentace nad 20%, měli byste přistoupit k defragmentaci systému.

 

Jak snadno defragmentovat linuxové souborové systémy

Vše, co musíte udělat, je zálohovat VŠECHNY vaše soubory a data na jiný disk, daný oddíl zformátovat a zálohované soubory zkopírovat zpět (pro toto nepoužívejte záložní program). Žurnálovací souborový systém s nimi bude zacházet jako s novými soubory a umístí je úhledně na disk bez fragmentace.

Chcete-li zálohovat vaše soubory, v terminálu zadejte:

Příkaz terminálu:
cp -afv [/cesta/ke/zdrojovému/oddílu]/* [/cesta/k/novému/adresáři]

Pozor na hvězdičku (*); je důležitá.

 

Poznámka: Je obecně známo, že pro kopírování velkých souborů nebo velkého množství dat, je nejlepší příkaz dd. Ten je ale velmi pomalý a kopíruje vše tak, „jak je“, včetně prázdného prostoru. To však není to co chceme, proto je asi lepší použít příkaz cp.

 

Nyní už zbývá jen odstranit všechny původní soubory:

Příkaz terminálu:
sudo rm -rf [/cesta/ke/zdrojovému/oddílu]/*

 

Volitelně můžete vyplnit prázdný prostor nulami:

Příkaz terminálu:
sudo dd if=/dev/zero of=[/cesta/ke/zdrojovému/oddílu]/temp-zero.txt

 

Když je hotovo, stačí smazat dočasný soubor:

Příkaz terminálu:
sudo rm [/cesta/ke/zdrojovému/oddílu]/temp-zero.txt

 

Po vynulování prázdného prostoru (nebo prostě po přeskočení tohoto kroku) zkopírujte soubory zpět, pomocí příkazu cp:

Příkaz terminálu:
cp -afv [/cesta/k/novému/adresáři]/* [/cesta/ke/zdrojovému/oddílu]

 

Použití e4defrag

Pokud dáváte přednost jednoduššímu řešení, nainstalujte si utilitku e2fsprogs

Příkaz terminálu:
sudo atp-get install e2fsprogs

a spusťte e4defrag pod rootem na postiženém oddíle. Pokud nechcete nebo nemůžete odpojit diskový oddíl, můžete použít jeho přípojný bod jako cestu k němu. Chcete-li defragmentovat celý systém, zadejte:

Příkaz terminálu:
sudo e4defrag  /

 

Není zaručeno, že uspějete při mountování (měli byste také přestat používat váš systém, je-li spuštěn e4defrag), ale je to mnohem jednodušší, než kopírování všech souborů jinam a zpět.

 

Závěr

Fragmentace je velmi malý problém v systému Linux vzhledem k účinnému zpracování dat v žurnálovacím souborovém systému. Pokud fragmentace v důsledku jakýchkoli okolností nastane, existují jednoduché způsoby, jak přerozdělit místo na disku, jako například zkopírování všech souborů jinam a potom zpět nebo pomocí nástroje e4defrag. Je však důležité, aby byla vždy vaše data v bezpečí, takže před jakoukoli operací, která by měla vliv na všechny nebo většinu z vašich souborů, si vytvořte jejich zálohu.

 

Štítky , , , , , .Záložka pro permanentní odkaz.

2 reakce na Jak na defragmentaci linuxových systémů

  1. jirkason říká:

    nejlepsi zpusob defragmentace je nasledujici a divim se ze zde neni uveden.
    v root sezeni v terminalu zadejte prikaz
    #touch forcefsck (enter)
    #reboot

    pocitac se rebootne a pred pripojenim disku a particii
    kompletne defragmentuje, komp bude znatelne rychlejsi a efektivnejsi.
    tez doporucuji:
    #apt-get autoremove
    #apt-get autoclean
    tyto prikazy nekdy znatelne odstrani pomalost kompu i odstraneni pripadnych hlasek oznamujici problem v systemu
    s Pozdravem,
    Jirkason.

  2. Zdeněk říká:

    Pomohlo, děkuji

Napsat komentář

Vaše emailová adresa nebude zveřejněna.