Narzędzia użytkownika

Narzędzia witryny


materialy:howto:uszkodzony-dysk

Uszkodzony dysk?

Poniżej przedstawiamy kilka podstawowych narzędzi do weryfikacji poprawności działania dysków twardych.

S.M.A.R.T.

S.M.A.R.T. - jest technologią „wbudowaną” w obecne dyski twarde (również SSD) której celem jest badanie jego obecnego stanu technicznego (niezawodności) i na podstawie wielu wskaźników poinformowanie użytkownika o potencjalnym, zbliżającym się uszkodzeniu dysku. Użytkownik dzięki temu jest w stanie uniknąć utraty danych z dysku wcześniej wykonując kopię zapasową. Jedną z zalet tej technologii jest bieżące monitorowanie oraz możliwość uruchamiani testów w tle w trakcie normalnej pracy dysku. Technologia wspiera użytkownika jednak nie zalecane jest, aby ten nie rezygnował z regularnego wykonywanie backupu.

Podstawowe informacje SMART dla dysku /dev/sdb

smartctrl -a /dev/sdb

Komenda wyświetli wiele informacji o dysku, między innymi listę mierzonych parametrów (SMART Attributes Data) oraz ogólny stan dysku. Jeśli S.M.A.R.T. nie zarejestrował żadnych błędów wydruk powinien zawierać tekst:

SMART Error Log Version: 1
No Errors Logged

Jeśli zarejestrował błędy (przykład z uszkodzonego dysku):

SMART Error Log Version: 1
ATA Error Count: 3278 (device log contains only the most recent five errors)
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 3278 occurred at disk power-on lifetime: 10233 hours (426 days + 9 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 01 80 c2 00 00  Error: UNC at LBA = 0x0000c280 = 49792

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 01 00 80 c2 00 40 00  17d+12:30:53.436  READ FPDMA QUEUED
  ef 10 02 00 00 00 a0 00  17d+12:30:53.434  SET FEATURES [Reserved for Serial ATA]
  27 00 00 00 00 00 e0 00  17d+12:30:53.433  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00  17d+12:30:53.428  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00  17d+12:30:53.427  SET FEATURES [Set transfer mode]

S.M.A.R.T. można poprosić o wykonanie długiego testu wewnętrznego, tzw. self-testu. Test może potrwać do 3 godzin dla nieobciążonego dysku 1TB. Test uruchamia się w tle w trakcie normalnej pracy dysku.

smartctl -t long /dev/sdb

Postęp wykonywanego self-testu można znaleźć w sekcji „self-test execution status”:

smartctl -a /dev/sdb

Zatrzymanie testu działającego w tle:

smartctl -X /dev/sdb

Wyświetlenie wyników testu:

smartctl -l selftest /dev/sdb

Wyszukiwanie bad blocków

Tradycyjną i skuteczną metodą sprawdzenia obecnego stanu niezawodności dysku jest sprawdzenie liczby uszkodzonych bloków dyskowych, tzw. bad blocków:

badblocks -s -n -v /dev/sdb1

Znacznie opcji:

  • -s - pokazuje postęp prac
  • -v - tryb gadatliwy
  • -n - sprawdzanie z użyciem zapisu na dysk w trybie nie destrukcyjnym dla obecnych danych zapisanych na dysku
  • -w - tego nigdy nie używaj na dysku z zapisanymi danymi, niszczy dane zapisane na dysku, można używać jedynie przy nowych dyskach lub dla których dane został wykonany backup

Wyświetlenie oznaczonych bad blocków:

dumpe2fs -b /dev/sdb1

Przykład wydruku z uszkodzonego dysku:

itmz ~ # badblocks -s -n -v /dev/sdb1
Poszukiwanie wadliwych bloków w trybie z niedestruktywnym zapisem
Od bloku 0 do 976762551
Poszukiwanie wadliwych bloków (odczyt i niedestruktywny zapis)
Testowanie wzorcem losowym: 0otowe w   0.00%, minęło 0:07 (błędów: 0/0/0)
1otowe w   0.00%, minęło 0:10 (błędów: 1/0/0)
2otowe w   0.00%, minęło 0:13 (błędów: 2/0/0)
3otowe w   0.00%, minęło 0:16 (błędów: 3/0/0)
24864e w   0.00%, minęło 1:11 (błędów: 4/0/0)
24865e w   0.00%, minęło 1:14 (błędów: 5/0/0)
24866e w   0.00%, minęło 1:17 (błędów: 6/0/0)
24867e w   0.00%, minęło 1:20 (błędów: 7/0/0)
Gotowe w   1.61%, minęło 1:13:54 (błędów: 8/0/0)

Sprawdzenie integralności systemu plików

Każdy system plików posiada narzędzia do sprawdzania integralności. Dla najbardziej popularnych linuksowych systemów plików ext3 i ext4:

fsck.ext3 /dev/sdb1
fsck.ext4 /dev/sdb2

Sprawdzenie integralności systemu plików wraz ze sprawdzeniem badblocków

fsck.ext3 -c -c -f -v /dev/sdb1

Opcje:

  • -f - sprawdzaj system nawet gdy wydaje się “czysty”
  • -c -c - ekwiwalent -n dla badblocks
  • -v - tryb gadatliwy

Przydatne informacje przed zareklamowaniem uszkodzonego dysku

Jaki jest numer seryjny dysku?

Przykład sprawdzenia dysku /dev/sdd

system# smartctl -i /dev/sdd | grep Serial
Serial Number:    S1F23GGN

Ile godzin dysk pracował on-line?

Przykład sprawdzenia dysku /dev/sdd:

system# smartctl --all /dev/sdd | grep Power_On_Hours
  9 Power_On_Hours          0x0032   085   085   000    Old_age   Always       -       13919

Ostatnia kolumna - w tym przypadku wartość 13919 - oznacza liczbę przepracowanych godzin online

materialy/howto/uszkodzony-dysk.txt · ostatnio zmienione: 2015/10/06 19:06 przez mzalewski

(C) 2017 ITMZ Mariusz Zalewski