Има един общ мит, че Linux дисковете никога не се нуждаят от дефрагментиране изобщо. В повечето случаи това е вярно, най-вече поради отличните файлови системи за журналиране, които Linux използва (ext2, 3, 4, btrfs и т.н.) за обработка на файловата система. Въпреки това, в някои специфични случаи фрагментацията все още може да възникне. Ако това се случи с вас, решението за щастие е много проста.

Какво представлява фрагментацията?

Фрагментацията възниква, когато файловата система актуализира файлове в малки парчета, но тези парчета не образуват съседно цяло и са разпръснати около диска. Това важи особено за файловите системи FAT и FAT32. Той беше малко смекчен в NTFS и почти никога не се случва в Linux (extX). Ето защо.

В файлови системи като FAT и FAT32 файловете се записват непосредствено един до друг на диска. Няма останало място за увеличаване или актуализиране на файловете:

NTFS оставя малко повече пространство между файловете, така че има място за растеж. Тъй като пространството между парчетата е ограничено, фрагментацията ще продължи да се проявява с течение на времето.

Журнализиращите файлови системи на Linux използват различен подход. Вместо да поставяте файлове един до друг, всеки файл е разпръснат навсякъде по диска, оставяйки разкошно свободно пространство между всеки файл. Има достатъчно място за актуализиране на файлове / растеж и фрагментация рядко се случва.

Освен това, ако фрагментацията се случи, повечето Linux файлови системи ще се опитат да разбъркат файловете и парчетата, за да ги направят отново съседни.

Фрагментиране на диска на Linux

Фрагментацията на диска се среща рядко в Линукс, освен ако нямате малък твърд диск или няма място. Някои възможни случаи на фрагментация включват:

  • ако редактирате големи видео файлове или необработени файлове с изображения, а дисковото пространство е ограничено
  • ако използвате по-стари хардуер като стар лаптоп и имате малък твърд диск
  • ако твърдите дискове започват да се зареждат (над 85% се използват)
  • ако имате много малки дялове, които затрупват домашната ви папка

Най-доброто решение е да закупите по-голям твърд диск. Ако това не е възможно, това е мястото, където дефрагментирането става полезно.

Как да проверите за фрагментация

Командата fsck ще направи това за вас - т.е. ако имате възможност да я стартирате от компактдиск на живо, като всички засегнати дялове не са монтирани.

Това е много важно: РАБОТЕЩАТА КОНЦЕНТРАЦИЯ НА МОНТАЖНАТА ЧАСТИЕ МОЖЕ ДА НАЛОЖИ И НЯКОЛКО ПОВРЕДИ ВАШИТЕ ДАННИ И ВАШИЯ ДИСК.

Предупреден си. Преди да продължите, направете пълно архивиране на системата.

Отказ от отговорност : Авторът на тази статия и Make Tech Easier не поема никаква отговорност за каквито и да било повреди във файловете, данните, системата или всякакви други щети, причинени от вашите действия, след като сте се погрижили за това. Можете да продължите на свой собствен риск. Ако направите това, вие приемате и потвърждавате това.

Трябва само да заредите в сесия на живо (като диск за инсталиране, системен спасителен компактдиск и т.н.) и да стартирате fsck във вашите UNMOUNTED дялове. За да проверите за проблеми, изпълнете следната команда с разрешение за root:

 fsck -fn [/ path / to / your / partition] 

Можете да проверите какво представлява [/path/to/your/partition] чрез стартиране

 sudo fdisk -l 

Има начин да стартирате fsck (относително) безопасно на монтиран дял - т.е. чрез превключвателя -n . Това ще доведе до проверката на файловата система само за четене без да се докосва до нищо. Разбира се, тук няма гаранция за безопасност и трябва да продължите само след създаване на резервно копие. На ext2 файлова система, която се изпълнява

 sudo fsck.ext2 -fn / path / to / your / partition 

ще доведе до много изход - повечето от тях са съобщения за грешка, произтичащи от факта, че дялът е монтиран. В крайна сметка ще ви даде информация, свързана с фрагментацията.

Ако фрагментацията ви е над 20%, трябва да продължите да дефрагментирате системата си.

Как лесно да дефрагментирате файловите системи на Linux

Всичко, което трябва да направите, е да направите резервно копие на всички файлове и данни на друго устройство (като ги копирате ръчно), форматирайте дяла и копирайте файловете си (не използвайте резервна програма за това). Филтриращата файлова система ще ги обработва като нови файлове и ще ги постави удобно на диска без фрагментация.

За да архивирате файловете си, изпълнете

 cp -afv [/ path / to / source / partition] / * [/ път / към / дестинация / папка] 

Отбележете астерикса (*); важно е.

Забележка : Общоприето е, че за да копирате големи файлове или големи количества данни, командата dd може да е най-добра. Това е много ниска операция и копира всичко "така, както е", включително празното пространство и дори останалото боклук. Това не е това, което искаме, така че вероятно е по-добре да използвате cp .

Сега трябва само да премахнете всички оригинални файлове.

 sudo rm -rf [/ път / към / източник / дял] / * 

По избор: можете да запълните празното пространство с нули. Можете да постигнете това и при форматирането, но ако например не сте копирали целия дял, само големи файлове (които най-вероятно ще причинят фрагментация), това може да не е опция.

 sudo dd ако = / dev / нула = [/ path / to / source / partition] /temp-zero.txt 

Изчакайте да приключи. Можете също така да наблюдавате напредъка с pv.

 sudo apt-get инсталирате pv sudo pv -tpreb | на = [/ път / до / източник / дял] /temp-zero.txt 

Когато това стане, просто изтрийте временния файл.

 sudo rm [/path/to/source/partition]/temp-zero.txt 

След като нулирате празното пространство (или просто сте пропуснали тази стъпка изцяло), копирайте файловете си обратно, обърнете първата команда cp :

 cp -afv [/ path / to / original / дестинация / папка] / * [/ path / to / original / source / partition] 

Използване на e4defrag

Ако предпочитате по-опростен подход, инсталирайте e2fsprogs,

 sudo apt-get инсталирате e2fsprogs 

и изпълнете e4defrag като корен на засегнатата дял. Ако не искате или не можете да демонтирате дяла, можете да използвате неговата точка за монтиране вместо неговия път. За да дефрагментирате цялата си система, изпълнете

 sudo e4defrag / 

Не е гарантирано, че ще успеете, докато сте монтирани (също трябва да спрете да използвате системата, докато се изпълнява), но е много по-лесно, отколкото да копирате всички файлове назад и назад.

заключение

Фрагментирането рядко трябва да бъде проблем на Linux система, поради ефективната обработка на данните на файловата система. Ако попаднете на фрагментиране поради някакви обстоятелства, има лесни начини да преразпределите дисковото си пространство като копиране на всички файлове далеч и обратно или чрез използване на e4defrag . Важно е обаче да запазите данните си в безопасност, така че преди да започнете каквото и да е операция, която би засегнала всички или повечето от вашите файлове, уверете се, че правите резервно копие само за да сте на сигурно място.