CodeGym /Kursy /Docker SELF /Sprawdzanie i naprawianie systemu plików: polecenia fsck

Sprawdzanie i naprawianie systemu plików: polecenia fsck

Docker SELF
Poziom 6 , Lekcja 2
Dostępny

1. Dlaczego ważne jest sprawdzanie systemu plików?

System plików w Linuxie to tak naprawdę jeden z najbardziej "zajętych" pracowników systemu operacyjnego. Pracuje, kiedy zapisujesz pliki, otwierasz programy albo po prostu odczytujesz dane. A teraz wyobraź sobie: w najważniejszym momencie ten pracownik zmęczył się i postanowił paść na ziemię (czytaj: system wyłączył się z powodu braku prądu). Może to prowadzić do uszkodzenia tabeli plików, utraty danych albo wielu innych nieprzyjemnych problemów.

A co może pójść nie tak?

  1. Nagłe odcięcie zasilania — twoje urządzenie nagle się wyłączyło, zanim zdążyło dokończyć zapis danych.
  2. Błąd pamięci — dysk twardy albo SSD może mieć awarie sprzętowe, które uszkodzą system plików.
  3. Błędy programowe — mogą zdarzyć się bugi w sterownikach albo narzędziach systemowych.

Często po takich zdarzeniach system plików przestaje działać poprawnie, a system sam może poprosić cię o sprawdzenie jego stanu. I tutaj właśnie z pomocą przychodzi fsck, co rozkłada się jako File System Check.


2. Co to jest fsck i jak działa?

Idea narzędzia

fsck — to uniwersalne narzędzie, które sprawdza integralność systemu plików i naprawia wykryte błędy. Działa jak lekarz: wykonuje testy, znajduje problem i, jeśli to możliwe, "leczy". Jeśli problem jest zbyt poważny, fsck może przynajmniej zdiagnozować, co dokładnie poszło nie tak.

Kiedy używać fsck?

  1. W przypadku widocznych awarii plików (na przykład, gdy nagle "zniknęły").
  2. Jeśli system nie uruchamia się i zgłasza błąd systemu plików.
  3. Dla regularnej profilaktyki, żeby upewnić się, że wszystko jest w porządku.

3. Podstawowa składnia fsck

Do użycia fsck zazwyczaj stosuje się następujące polecenie:

fsck [opcje] <urządzenie>

Podstawowe opcje:

  • -y — Automatyczne potwierdzanie napraw. Przydatne, jeśli nie chcesz siedzieć i klikać yes na każde pytanie.
  • -n — Tylko sprawdzanie, bez naprawy (wersja na sucho). Przydatne do analizy sytuacji, jeśli boisz się coś popsuć.
  • -t — Określenie typu systemu plików (np. ext4, xfs).
  • -r — Włączenie trybu interaktywnego (będziesz potwierdzać każde naprawienie).

4. Praktyka: sprawdzanie systemu plików

Zacznijmy od prostego sprawdzenia. Załóżmy, że mamy urządzenie /dev/sdb1, które chcemy sprawdzić.

Krok 1: Sprawdzanie bez napraw

Na początek ocenimy stan systemu plików bez wprowadzania zmian:

fsck -n /dev/sdb1

Po wykonaniu komendy zobaczysz listę znalezionych problemów, jeśli takie istnieją. Oto przykład wyniku:

Inodes that were part of a corrupted orphan linked list found.
Filesystem errors detected. Run fsck to repair.

Krok 2: Automatyczna naprawa

Teraz włączymy tryb naprawy błędów:

fsck -y /dev/sdb1

fsck będzie próbowało naprawić każdy wykryty błąd i automatycznie potwierdzać działanie. Może to zająć trochę czasu, jeśli urządzenie jest duże.


5. Co zrobić, jeśli system plików jest używany?

Błąd przy uruchamianiu fsck

Jeśli spróbujesz uruchomić fsck na partycji, która jest już zamontowana, otrzymasz ostrzeżenie:

fsck: cannot check a mounted filesystem.

Dzieje się tak, ponieważ sprawdzanie zamontowanego systemu plików może prowadzić do uszkodzenia danych. Istnieje kilka sposobów rozwiązania tego problemu.

  1. Zamontuj urządzenie w trybie tylko do odczytu.
mount -o remount,ro /dev/sdb1
  1. Użyj LiveCD lub LiveUSB.

Uruchom z płyty rozruchowej lub pendrive’a, aby przeprowadzić sprawdzanie na już odmontowanym urządzeniu.

  1. Użyj trybu naprawy.

Zrestartuj system w trybie naprawy, który zazwyczaj zapewnia bezpieczne środowisko do przeprowadzenia sprawdzania.

Specyfika sprawdzania głównego systemu plików /

Główny system plików – to unikalny przypadek, ponieważ jest aktywnie używany przez system. Aby uruchomić fsck dla tej partycji, musisz:

  1. Przejść do trybu jednego użytkownika za pomocą komendy:
systemctl isolate rescue.target
  1. Ręcznie uruchomić fsck:
fsck -y /

6. Typowe błędy i ich naprawa

Uszkodzone inody

Jeśli fsck zgłasza uszkodzone inody (struktury przechowujące informacje o plikach), zaproponuje ich usunięcie. To jest bezpieczne, ponieważ uszkodzony inode już nie jest powiązany z bieżącymi plikami.

Zagubione pliki

Czasem po uruchomieniu fsck zagubione pliki trafiają do katalogu lost+found na głównym poziomie systemu plików. Możesz ręcznie sprawdzić to miejsce, aby odzyskać ważne dane.

Ważne zalecenia

  1. Zawsze rób kopie zapasowe przed sprawdzeniem. Chociaż fsck zazwyczaj działa bezpiecznie, naprawy mogą prowadzić do utraty danych.

  2. Nie uruchamiaj fsck na zamontowanych partycjach. Może to prowadzić do uszkodzenia danych.

  3. Używaj flagi -n do wstępnej analizy. Jeśli nie jesteś pewien, czy naprawiać błędy automatycznie, rozpocznij od suchego przebiegu.


7. Przykład: Symulacja błędu i naprawa

  1. Stwórz wirtualny dysk i utwórz na nim system plików:
dd if=/dev/zero of=./disk.img bs=1M count=100
mkfs.ext4 ./disk.img
  1. Zamontuj dysk:
sudo mount ./disk.img /mnt/test/
  1. Zsymuluj uszkodzenie:
sudo dd if=/dev/zero of=/mnt/test/randomfile bs=512 count=10
  1. Odmontuj dysk i sprawdź go:
sudo umount /mnt/test/
fsck ./disk.img

Postępując zgodnie z wynikami polecenia, napraw błędy.

Na tym etapie dobrze rozumiesz, jak sprawdzać system plików, umiesz poprawnie usuwać błędy i zapobiegać awariom. Przed nami nowe narzędzia do pracy z systemami plików, ale fsck to teraz twój niezawodny instrument diagnostyczny i naprawczy.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION