Wyszukiwanie w witrynie

Jak naprawić i zdefragmentować partycje i katalogi systemu Linux


Osoby korzystające z Linuksa często myślą, że nie wymaga on defragmentacji. Jest to powszechne nieporozumienie wśród użytkowników Linuksa. W rzeczywistości system operacyjny Linux obsługuje defragmentację. Celem defragmentacji jest usprawnienie operacji we/wy, takich jak szybsze ładowanie lokalnych filmów lub znacznie szybsze rozpakowywanie archiwów.

Systemy plików Linux ext2, ext3 i ext4 nie wymagają aż tak dużej uwagi, ale z biegiem czasu, po wykonaniu wielu, wielu operacji odczytu/zapisu, system plików może wymagać optymalizacji. W przeciwnym razie dysk twardy może działać wolniej i może to mieć wpływ na cały system.

W tym samouczku pokażę kilka różnych technik defragmentacji plików. Zanim zaczniemy, powinniśmy wspomnieć, co robią popularne systemy plików, takie jak ext2,3,4, aby zapobiec fragmentacji. Te systemy plików obejmują technikę zapobiegającą temu efektowi. Na przykład systemy plików rezerwują wolne grupy bloków na dysku twardym w celu całkowitego przechowywania rosnących plików.

Niestety, nie zawsze problem ten można rozwiązać za pomocą takiego mechanizmu. Podczas gdy inne systemy operacyjne mogą wymagać kosztownego dodatkowego oprogramowania do rozwiązania takich problemów, Linux oferuje kilka łatwych w instalacji narzędzi, które mogą pomóc w rozwiązaniu takich problemów.

Jak sprawdzić, czy system plików wymaga defragmentacji?

Zanim zaczniemy, chciałbym zaznaczyć, że poniższe operacje należy wykonywać wyłącznie na dyskach twardych, a nie na SSD. Defragmentacja dysku SSD tylko zwiększy liczbę odczytów/zapisów, a tym samym skróci jego żywotność. Zamiast tego, jeśli używasz dysku SSD, powinieneś użyć funkcji TRIM, która nie jest omówiona w tym samouczku.

sprawdźmy, czy system faktycznie wymaga defragmentacji. Możemy to łatwo sprawdzić za pomocą narzędzia takiego jak e2fsck. Przed użyciem tego narzędzia na partycji w systemie zaleca się odmontowanie tej partycji. Nie jest to całkowicie konieczne, ale jest to najbezpieczniejszy sposób:

sudo umount <device file>

W moim przypadku mam /dev/sda1 zamontowany w /tmp:

Pamiętaj, że w Twoim przypadku tablica partycji może być inna, więc pamiętaj o odmontowaniu właściwej partycji. Aby odmontować tę partycję, możesz użyć:

sudo umount /dev/sda1

Teraz sprawdźmy, czy ta partycja wymaga defragmentacji za pomocą e2fsck. Będziesz musiał uruchomić następujące polecenie:

sudo e2fsck -fn /dev/sda1

Powyższe polecenie przeprowadzi sprawdzenie systemu plików. Opcja -f wymusza sprawdzenie, nawet jeśli system wydaje się czysty. Opcja -n służy do otwierania systemu plików w trybie tylko do odczytu i zakładania odpowiedzi „nie” na wszystkie pytania, które mogą się pojawić.

Ta opcja zasadniczo pozwala na używanie e2fsck w sposób nieinteraktywny. Jeśli wszystko jest OK, powinieneś zobaczyć wynik podobny do tego pokazanego na zrzucie ekranu poniżej:

Oto kolejny przykład pokazujący błędy w systemie:

Jak naprawić system plików Linux za pomocą e2fsck

Jeśli pojawią się błędy, możesz spróbować naprawić system plików za pomocą e2fsck z opcją „-p”. Pamiętaj, że aby uruchomić poniższe polecenie, partycja będzie musiała zostać odmontowana:

sudo e2fsck -p <device file>

Opcja „-p” powoduje próbę automatycznej naprawy systemu plików w przypadku problemów, które można bezpiecznie rozwiązać bez interwencji człowieka. Jeśli zostanie wykryty problem, który może wymagać podjęcia przez administratora systemu dodatkowych działań naprawczych, e2fsck wydrukuje opis problemu i zakończy działanie z kodem 4, co oznacza „Błędy systemu plików pozostały nieskorygowane”. W zależności od wykrytego problemu mogą być wymagane różne działania.

Jeśli problem pojawia się na partycji, której nie można odmontować, możesz użyć innego narzędzia o nazwie e4defrag. Jest preinstalowany w wielu dystrybucjach Linuksa, ale jeśli nie masz go w swojej, możesz go zainstalować za 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 zdefragmentować partycje systemu Linux

Teraz nadszedł czas na defragmentację partycji Linux za pomocą następującego polecenia.

sudo e4defrag <location>
or
sudo e4defrag <device>

Jak zdefragmentować katalog systemu Linux

Na przykład, jeśli chcesz zdefragmentować pojedynczy katalog lub urządzenie, możesz użyć:


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

Jak zdefragmentować wszystkie partycje systemu Linux

Jeśli wolisz zdefragmentować cały system, bezpiecznym sposobem jest:

sudo e4defrag /

Należy pamiętać, że ukończenie tego procesu może zająć trochę czasu.

Wniosek

Defragmentacja to operacja, którą rzadko będziesz musiał wykonywać w systemie Linux. Jest przeznaczony dla zaawansowanych użytkowników, którzy dokładnie wiedzą, co robią i nie jest zalecany dla początkujących użytkowników Linuksa. Celem całej akcji jest zoptymalizowanie systemu plików, aby nowe operacje odczytu/zapisu były wykonywane wydajniej.