chkdsk w Windows 8 - wierzchołek góry lodowej
chkdsk
chkdsk jest narzedziem, które powoli odchodzi do lamusa. rzadko kiedy jest potrzeba zeby go uruchamiac - czyzby dyski sie nie psuly? jesli ktos go uruchomil w Windows NT6.2+ zapewne spostrzegl pojawienie sie nowych przelaczników:
PS C:\WINDOWS\system32> chkdsk /?
Checks a disk and displays a status report.
CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]] [/B] [/scan] [/spotfix]
volume Specifies the drive letter (followed by a colon),
mount point, or volume name.
filename FAT/FAT32 only: Specifies the files to check for
fragmentation.
/F Fixes errors on the disk.
/V On FAT/FAT32: Displays the full path and name of every
file on the disk.
On NTFS: Displays cleanup messages if any.
/R Locates bad sectors and recovers readable information
(implies /F, when /scan not specified).
/L:size NTFS only: Changes the log file size to the specified
number of kilobytes. If size is not specified, displays
current size.
/X Forces the volume to dismount first if necessary.
All opened handles to the volume would then be invalid
(implies /F).
/I NTFS only: Performs a less vigorous check of index
entries.
/C NTFS only: Skips checking of cycles within the folder
structure.
/B NTFS only: Re-evaluates bad clusters on the volume
(implies /R)
/scan NTFS only: Runs a online scan on the volume
/forceofflinefix NTFS only: (Must be used with "/scan")
Bypass all online repair; all defects found
are queued for offline repair (i.e. "chkdsk /spotfix").
/perf NTFS only: (Must be used with "/scan")
Uses more system resources to complete a scan as fast as
possible. This may have a negative performance impact on
other tasks running on the system.
/spotfix NTFS only: Runs spot fixing on the volume
/sdcleanup NTFS only: Garbage collect unneeded security descriptor
data (implies /F).
/offlinescanandfix Runs an offline scan and fix on the volume.
The /I or /C switch reduces the amount of time required to run Chkdsk by
skipping certain checks of the volume.
te przelaczniki to: scan, forceofflinefix, perf, spotfix, sdccleanup oraz offlinescanandfix. zeby wyjasnic celowosc owych przelaczników trzeba siegnac w glebiny systemu - do podnózy tytulowej góry lodowej, poniewaz to co widac w chkdsk to wlasnie sam wierzcholek.
w Windows Vista pojawily sie zmiany optymalizacyjne w aplikacji chkdsk, dzieki której uzyskano spore róznice w czasie weryfikacji. tyle... tyle ze w ciagu kazdego roku rosna pojemnosci dysków oraz ilosci danych, jakie sie na nich przechowuje, w zwiazku z czym skanowanie pozostaje nadal czasochlonnym procesem. juz w tym miejscu mozna odpowiedziec na pytanie 'czy dyski sie mniej psuja?'. bardziej prawidlowym pytaniem byloby 'czy system plików mniej sie psuje?' poniewaz nie wszystkie usterki systemu plików wynikaja z powodu awarii dysku [wrecz przeciwnie]. najczestszym powodem sa przypadkowe restarty oraz bledy w obsludze pamieci procesu, który po dysku pisze. w Vista pojawila sie opcja 'samo-naprawy' [self-healing], która czuwa nad tym, aby reperowac tego rodzaju bledy w tle. pojawienie sie tej opcji spowodowalo, ze kiedy recznie uruchomimy 'czekdiska', praktycznie zawsze wszystko jest w porzadku. zapewne pamietacie, ze w Windows XP bylo na odwrót - zawsze jakies tam smieci sie znalazly. takie zmiany wymagaly wprowadzenia pewnych zmian na poziomie kernela NTFS. na dzien dzisiejszy nie tylko uzytkownicy nie wiedza co to w ogóle jest checkdisk, ale zapominaja o tym równiez admini (; jednak w przypadku koniecznosci skanowania, moze ono nadal trwac nawet kilka godzin...
wraz z Windows NT6.2 sytuacja ulegla jeszcze dramatyczniejszym zmianom [na lepsze]! inzynierowie doszli do wniosku, ze trzeba jakos zaradzic owym dlugim czasom skanowania. optymalizacja checkdiska do tego celu nie wystarczy - nalezy wprowadzic wieksze zmiany w calym systemie plików i jego obslugi.
Nowy Model Sluzby Zdrowia
...którym mozemy cieszyc sie przynajmniej w swoim Windows. w wersjach NT6.o i 6.1 dysk mógl byc 'zdrowy' lub.. nie. w przypadku kiedy zdrowy nie jest, jest wprowadzany w tryb offline do czasu wyleczenia. w nowym modelu zostalo utworzonych 18 róznych stanów zdrowia [ang. "verbs"] oraz jest mozliwosc wprowadzenia nowych, jesli zajdzie taka potrzeba. dzieki temu:
- system notyfikacji jest przejrzystszy. osoba korzystajaca z systemu dokladniej wie jak bardzo powazna jest sytuacja i czy nalezy reagowac szybko, czy mozna po prostu obserwowac dalszy rozwój wypadków. chodzi oczywiscie o klarowna informacje czy trzeba zrestartowac serwer i przeczekac caly ten czas az sie przeskanuje...
- sam system potrafi dokladniej dobrac rozwiazanie do konkretnego przypadku i zminimalizowac potrzebe skanowania offline.
system samo-naprawy zostal poprawiony, dzieki czemu w8/w12 potrafi zreperowac sporo wiecej problemów w trybie online niz bylo to mozliwe wczesniej.'weryfikacja' opisywana w trzecim kroku uruchamia specjalna usluge "Spot Verifier" [svsvc] dodana w tej wersji systemu. usluga nie dziala 'na co dzien' - jest wzbudzana przez sterownik systemu plików. celem tej uslugi jest doglebniejsze zbadanie problemu. po identyfikacji uszkodzenie ma przypisany 'stan zdrowia', wysylana jest odpowiednia notka do administratora, a jesli jest mozliwosc naprawy bez koniecznosci przechodzenia w tryb offline - jest to wykonywane.
najciekawsze sa moim zdaniem ostanie stwierdzenia - 'naprawa w ciagu kilku sekund' oraz 'wstrzymanie operacji I/O dla CSV'. wprowadzony zostal termin "spotfix" - czyli krótkie okienko do naprawy bledów. zamiast sprawdzac i weryfikowac caly system plików, naprawiana jest wylacznie usterka. dzieki temu, bez wzgledu na ilosc plików i wielkosc dysku, naprawa zajmuje tylko kilka sekund - a wiec czas na jaki trzeba wylaczyc dysk jest minimalny. dla dysków CSV czas ten zostal zminimalizowany do zera [SIC!] co oznacza, ze dla wysoko-dostepnych systemów zwiekszona jest ich wysoko-dostepnosc (;
dodam jeszcze, ze od wersji Poweshell 3.o, czyli standardowo od Windows NT6.2, dodany zostal commandlet "repair-volume", dzieki czemu 'chkdsk' staje sie zupelnie zbytecznym narzedziem.
Przyszlosc
o ile na dzien dzisiejszy chkdsk uzywa sie rzadko lub wrecz sporadycznie - czy w przyszlosci nie bedzie w ogóle takiej potrzeby? tak jak w przypadku defragmentacji - pojecie to stracilo na waznosci dla dysków SSD, tak checkdisk straci na waznosci przy wykorzystaniu nowego systemu plików - ReFS, co jest widoczne juz w samej nazwie: "Re" w nazwie jest od "Resilience" czyli "zywotnosc". slowa tego uzywa sie w kontekscie niezawodnosci. pierwsza odslone tego systemu mozna podejrzec w Windows NT6.2, jednak do calkowitej przesiadki na niego musi minac jeszcze chwila.
ah! no tak!
bylbym zapomnial powrócic do meritum, czyli wyjasnienia dzialania nowych przelaczników:
- /scan - to standardowa opcja, czyli skanowanie online. podczas tego skanowania wykonywane sa wszystkie naprawy, które da sie wykonac nie przechodzac w tryb offline. ma dwa dodatkowe przelaczniki:
- /forceofflinefix - wylacza reperacje. znakuje wszystkie znalezione bledy, ale wszystkie bledy beda musialy byc przeprowadzone w trybie offline
- /perf - zmienia zarzadzanie zasobami systemu, przydzielajac wiekszy priorytet dla sprawdzania bledów. nalezy unikac, poniewaz moze znaczaco wplynac na inne uslugi.
/spotfix - nowy tryb naprawy - zamiast robic pelen przebieg, dysk jest na krótka chwile przelaczany w tryb offline i naprawiane sa tylko bledy wykryte w przebiegu online.
/sdccleanup - uruchomienie garbage collectora, który zajmuje sie wyczyszczeniem nieprawidlowych deskryptorów [security descriptors] - najczestszy blad wystepujacy w poprzednich wersjach NTFS
/offlinescanandfix - to w zasadzie zmuszenie czekdiska do dzialania w stary sposób - zmienia stan dysku na offline i wykonuje caly skan i napraw.
eN.
autor: nExoR