Checkdisk i chkntfs: sprawdzanie integralności plików i naprawa błędnych sektorów

Błędne sektory na dyskach to dość popularny problem na jaki możecie natrafić na swoim komputerze lub serwerze niezależnie od tego, jaki system operacyjny na nim działa. Częstą przyczyną takich problemów jest niepoprawne wyłączanie systemu operacyjnego w momencie gdy jest wykonywany zapis (może to być na przykład windowsowy niebieski ekran (BSOD)).
Czy do rozwiązania takiego problemu potrzebujemy jakichś dodatkowych zaawansowanych narzedzi? Oczywiście że nie 🙂 Maszyny z systemami Windows na pokładzie wyposażone są w narzędzie checkdisk (przed Windowsem 2000 istniał program ScanDisk), które potrafi wykonać skanowanie dysku pod kątem błędnych sektorów i integralności plików i w razie potrzeby naprawić niektóre znalezione problemy.
Checkdisk działa automatycznie (System podczas rozruchu sprawdza, czy dysk ma status „dirty” i jeśli tak jest, uruchamia naprawianie sektorów programem checkdisk) i przeciętny użytkownik kojarzy go pewnie z tego, że czasem komputer potrzebuje więcej czasu na uruchomienie, „bo coś tam skanuje”. Jednak często zachodzi potrzeba, aby z checkdisk’a skorzystać świadomie i tu z pomocą przychodzą SPECE IT:).

W tym artykule podpowiadam jak korzystać z programu checkdisk w środowisku graficznym i wierszu poleceń. Zapewne wszyscy się zgodzą, że w wersji okienkowej nie ma nic skomplikowanego – w trosce o mniej zaawansowanych użytkowników jednak opiszę to krok po kroku. Bardziej zaawansowane osoby mogą od razu przeskoczyć do części poświęconej CMD. Polecenia CHKDSK i CHKNTFS pozwolą na wykonanie kilku dodatkowych sztuczek (np. zaplanowanie skanowania przy następnym restarcie, odwołanie takiego zadania, czy nadanie dyskowi statusu „dirty”).

 

Checkdisk w interfejsie graficznym

Skanowanie dysku, od wielu lat w różnych wersjach Windowsa wgląda niemal identycznie. Przy samym uruchomieniu checkdisk’a, różnice w poszczególnych wersjach Windows ów są raczej kosmetyczne – na przykład w Windowsie 7 przycisk nazywał się „Check Now..” a w „ósemce” – „Check” (W wersji PL zwykle „Sprawdź..”).
Klikamy PPM na dysku który chcemy sprawdzić, wybieramy „Properties (Właściwości)”, następnie w zakładce „Tools (Narzędzia)” klikamy w przycisk „Check (Skanuj)”:

disk check 2012 - 1

W pierwszym kroku Windows 8 / Windows Serwer 2012 może nam podpowiedzieć, że system nie rozpoznaje żadnych błędów, ale oczywiście możemy to zignorować i wymusić skanowanie:

disk check 2012 - 2

Jeśli Windows „wie” o błędach na dysku, zobaczymy okienko o treści „Repair this drive – We fund errors on this drive (…)”

W Windows 7 zobaczymy dodatkowe okienko, w którym musimy zaznaczyć czy system ma naprawić błędne sektory oraz, jeśli skanujemy dysk systemowy, system odmówi skanowania używanego dysku proponując skanowanie po restarcie.

disk check windows 7 - 1

Windows 8 nie ma tego problemu 🙂
Skanowanie może potrwać kilka minut:

disk check 2012 - 3

..na końcu zobaczymy podsumowanie:

disk check 2012 - 4

Show Details zabierze nas do Dziennika Zdarzeń, gdzie w logu aplikacyjnym znajdziemy bardziej szczegółowe informacje o błędach:
disk check 2012 - 5

 

CheckDisk w Wierszu Poleceń CMD

(Podane komendy wykonujemy na podwyższonych uprawnieniach (PPM > Run as Administrator))
Sprawdzenie i naprawę dysku „C” wykonamy poleceniem:

chkdsk /f /r C:

Parametr /f odpowiada za naprawę błędów, natomiast /r odpowiada za odzyskanie danych z uszkodzonych sektorów
Jak zawsze wszystkie dostępne przełączniki znajdziecie za pomocą flagi /?.

Jak wspomniałem na początku artykułu, Windows uruchamia checkdisk automatycznie, gdy dysk ma status „dirty”. Jeśli na naszym komputerze ta polityka została zmieniona, możemy przywrócić wartości domyślne poleceniem:

chkntfs /D

Aby wymusić uruchomienie checkdisk’a dla konkretnego dysku ze statusem „dirty”przy każdym ponownym uruchomieniu:

chkntfs /c c:

Możemy sami nadać dyskowi status „dirty”, aby wymusić jego naprawę po następnym uruchomieniu:

fsutil dirty set c:

Aby sprawdzić, czy dany dysk (u nas jest to dysk„C”) czeka na planowe sprawdzenie i naprawę, użyjemy polecenia:

chkntfs c:

W odpowiedzi ujrzymy

The type of the file system is NTFS.
C: is not dirty.

lub

The type of the file system is NTFS.
C: is dirty. You may use the /C option to schedule chkdsk for this drive.

Zaplanowane sprawdzenie dysku C odwołamy poleceniem:

chkntfs /x c:

W efekcie zobaczymy odpowiedź:

The type of the file system is NTFS.

Warto dodać, że to nie zmieni statusu dysku z „dirty”, tylko odwoła jego naprawienie. Należy z tego korzystać świadomie.

Mam nadzieję, że udało mi się wyjaśnić działanie checkdisk’a, a tym którzy myśleli, że o checkdisk’u wiedzą wszystko, przekazać coś czego nie wiedzieli:)

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

3 komentarze

  1. Anonim pisze:

    /B – próbuje odzyskać błędne klastry na dysku

  2. Marek Urbanowski pisze:

    Jak zawsze świetny artykuł. Wszystko opisane w dokładny sposób dla początkujących jak i dla zaawansowanych.

  3. Fajny artykuł. Czasem w krytycznych sytuacjach taka wiedza niezmiernie się przydaje.
    Dzięki

Dodaj komentarz