Kontrola dysków w Linux/Debian

Awaria dysku to jeden z najgorszych scenariuszy dla administratora lub użytkownika systemu Linux. Na szczęście system oferuje potężne, wbudowane narzędzia, które pozwalają naprawić system plików, zbadać stan fizyczny nośnika oraz skonfigurować automatyczne alerty e-mail, zanim dojdzie do utraty danych.

🛠️ 1. Sprawdzanie i naprawa systemu plików: fsck

Narzędzie fsck (File System Consistency Check) odpowiada za integralność logiczną: sprawdza błędy w strukturze katalogów, uszkodzone metadane czy osierocone węzły (inodes).

⚠️
Złota zasada bezpieczeństwa: Nigdy nie uruchamiaj fsck na podmontowanej (aktywnej) partycji! Może to doprowadzić do nieodwracalnego uszkodzenia struktury danych. Zawsze najpierw ją odmontuj lub użyj trybu Live USB.

Krok po kroku:

1. Zidentyfikuj i odmontuj partycję:

BASH
$ lsblk
# Odmontowujemy docelowy wolumen (np. /dev/sdb1)
$ sudo umount /dev/sdb1

2. Przeskanuj i napraw partycję:

BASH
# Standardowe sprawdzanie z pytaniami o naprawę
$ sudo fsck /dev/sdb1

# Opcjonalnie: automatyczne zatwierdzanie napraw (flaga -y)
$ sudo fsck -y /dev/sdb1

Po zakończeniu naprawy możesz bezpiecznie podmontować dysk z powrotem:

BASH
$ sudo mount /dev/sdb1 /punkt/montowania

🩺 2. Diagnoza kondycji fizycznej: S.M.A.R.T. i smartctl

Nawet bezbłędny system plików nie pomoże, jeśli zużyły się komórki pamięci SSD lub talerz HDD ma uszkodzone sektory fizyczne. Do badania parametrów elektroniki i zużycia służy pakiet smartmontools. Co ważne, można go bezpiecznie używać podczas normalnej pracy systemu.

Instalacja

Terminal
# Debian / Ubuntu / Mint
$ sudo apt install smartmontools

# Fedora / RHEL
$ sudo dnf install smartmontools

# Arch Linux
$ sudo pacman -S smartmontools
💡
W testach S.M.A.R.T. operujemy na całym urządzeniu fizycznym (np. /dev/sda lub /dev/nvme0n1), a nie na pojedynczych partycjach (jak sda1).

Szybki test stanu (Health Check)

BASH
$ sudo smartctl -H /dev/sda

Wynik PASSED oznacza brak wykrytych problemów krytycznych. Status FAILED to znak, że nośnik może paść w każdej chwili – natychmiast zrób kopię zapasową!

Kluczowe parametry zużycia

Aby wyświetlić pełną tabelę atrybutów, użyj przełącznika -A:

BASH
$ sudo smartctl -A /dev/sda       # Dla dysków SATA (HDD/SSD)
$ sudo smartctl -A /dev/nvme0n1   # Dla dysków NVMe
Typ nośnika Atrybut Na co zwrócić uwagę?
SATA (HDD/SSD) 5 Reallocated_Sector_Ct Bad sektory zastąpione zapasowymi. Wartość RAW > 0 oznacza degradację.
SATA (HDD) 197 Current_Pending_Sector Sektory niestabilne, oczekujące na procedurę remapowania.
SATA SSD Media_Wearout_Indicator Procentowy wskaźnik pozostałej żywotności komórek NAND.
NVMe Percentage Used Zużycie szacunkowe dysku (0% = fabrycznie nowy).
NVMe Available Spare Pula komórek zapasowych; spadek poniżej progu to sygnał ostrzegawczy.

Wymuszenie autotestu wewnętrznego

BASH
# Krótki test (1–2 minuty)
$ sudo smartctl -t short /dev/sda

# Długi, szczegółowy test powierzchni
$ sudo smartctl -t long /dev/sda

# Sprawdzenie historii i wyników testów
$ sudo smartctl -l selftest /dev/sda

🔔 3. Automatyzacja: Alerty e-mail z demonem smartd

Ręczne sprawdzanie stanu dysków bywa uciążliwe. Usługa smartd monitoruje parametry w tle 24/7 i wysyła powiadomienie na Twój adres e-mail, gdy tylko wykryje niepokojące objawy.

Konfiguracja monitorowania

Otwórz główny plik konfiguracyjny usługi:

BASH
$ sudo nano /etc/smartd.conf

Zamień domyślną dyrektywę DEVICESCAN poniższą regułą produkcyjną:

smartd.conf
DEVICESCAN -a -o on -S on -n standby,q -s (S/../.././02|L/../../6/03) -m twoj_email@domena.pl -M test

Wyjaśnienie parametrów:

  • -a — włącza pełen zestaw metryk diagnostycznych.
  • -n standby,q — nie wybudza dysków z trybu uśpienia (oszczędza energię HDD).
  • -s (S/../.././02|L/../../6/03) — automatyczny harmonogram: krótki test codziennie o 2:00 w nocy oraz długi test w każdą sobotę o 3:00.
  • -m twoj_email@domena.pl — adres docelowy powiadomień.
  • -M test — (tylko przy pierwszym starcie) wymusza natychmiastowe wysłanie maila próbnego w celu weryfikacji konfiguracji.

Start i weryfikacja demona

BASH
# Uruchomienie i dodanie do autostartu
$ sudo systemctl restart smartd
$ sudo systemctl enable smartd

# Kontrola statusu
$ sudo systemctl status smartd
✉️
Gdy otrzymasz powiadomienie testowe na swoją skrzynkę, wyedytuj plik /etc/smartd.conf, usuń flagę -M test i zrestartuj usługę poleceniem sudo systemctl restart smartd. Od teraz e-maile będą przychodzić wyłącznie w razie rzeczywistych anomalii.

Dbaj o regularne kopie zapasowe – nawet najlepsze narzędzia diagnostyczne nie zastąpią bezpiecznego backupu 3-2-1!

← Jak ubić proces w proxmox, kiedy panel nie zadziała...