CHKDSK

From ICO wiki
Revision as of 16:51, 9 October 2011 by Rvane (talk | contribs) (→‎AUTOCHK)
Jump to navigationJump to search

CHKDSK

CHKDSK.exe on käsurea tööriist DOS, OS/2 ja Windowsi jooksutavatel arvutitel mida kasutatakse andmekandjal andmete terviklikkuse kontrollimiseks, ebatäiuste avastamisel failisüsteemis ka nende eemaldamiseks ja parandamiseks. CHKDSK on suuteline avastama ning asendama andmekandjal ka vigaseid sektoreid (bad sector), mis on andmekandjal kas siis füüsilist kahju saanud, magneetiliselt või digitaalselt pöördumatusse olekusse sattunud või välkmälus kahjustunud transistore sisaldav andmesektor.

CHKDSK'i saab käivitada nii käsureal, läbi graafilise kasutajaliidese või läbi taastuskonsooli (recovery console). CHKDSK'i käivitatav kood asub DLL’ides (Dynamic Link Libraries) nagu Unfts.dll ja Ufat.dll, mis tähendab et mõlemal juhul, nii läbi graafilise UI kui ka käsurealt käivitatav tervikluse kontrollimist teostav kood on samasugune.

AUTOCHK

Kui aga CHKDSK protsess on määratud käivituma alglaadimisel käivitatakse enne windowsi laadimist protsess AUTOCHK.exe. AUTOCHK on rakendus, mille kernel kutsub välja igal alglaadimisel ning mis kontrollib kas olemasolevatele ketastele on märgitud "dirty bit" või mitte.

Dirty Bit

Andmehulk (volume) mille kohta on teada et nende failisüsteemis on rikkeid kutsutakse ingl.k. dirty volume ning Windows märgib selle üles kasutades vahendit mille nimi on „dirty bit“. Kui AUTOCHK avastab alglaadimisel et mõnel kettale on dirty bit märgitud, käivitatakse "CHKDSK /f" protsess, mis kontrollib ning üritab parandada kettal ja failisüsteemis leiduvaid vigu.

Et teha kindlaks kas teatud andehulga (volume) kohta on märgitud dirty bit saab käsurealt käivitada järgmise käsu:

fsutil dirty query <ketas>
Näiteks: fsutil dirty query C:

Samal viisil saab valitud kettale jõuga määrata dirty biti, mis tagab selle et järgmisel taaskäivitusel käivitatakse valitud kettale "CHKDSK /f" protsess:

fsutil dirty set <ketas>
Näiteks: fsutil dirty set C:

CHKDSK kasutamine

CHKDSK saab käivitata kahel viisil: ilma parameetriteta ning koos parameetritega. Käivitades CHKDSK ilma parameetriteta jookseb protsess read-only režiimis, mis küll kontrollib ketast failisüsteemis siladuvatest vigadest ning teavitab neist ka kasutajat, kuid ei ürita neid parandada ega likvideerida. Käivitades CHKDSK'i koos parameetritega (näiteks /f ja /r), parandatakse lisaks kontrollimisele failisüsteemis ka leitud vead.

Enne CHKDSK käivitamist

Enne kui CHKDSK käivitada on soovitatav varundada kettalt tähtsamad failid. Niikaua kui chkdsk jookseb on kogu kontroll ketta üle chkdsk'i käes, mis tähendab seda et ketast ei saa kasutada temalt failide lugemiseks ega kirjutamiseks. Kasutades lisaks ka parameetreid /f ja /r peab arvestama, et suure mahuga kettal võib protsess võtta kaua aega.

CHKDSK windowsi süsteemikettal

Käivitades chkdsk.exe koos parameetritega /f ja /r kettal millel jookseb windows, väljastatakse järgmine teade:

Kuna see ketas sisaldab windowsi süsteemifaile, ei ole chkdsk'il võimalik ketta üle täielikku kontrolli saada. Seega andes väljastatud teatele vastuseks Y, käivitatakse järgmisel alglaadimisel protsess autochk.exe.

CHKDSK teistel ketastel

Käivitades chkdsk.exe koos parameetritega /f ja /r kettal millel hetkel ei asu aktiivne windowsi opsüsteem, peab protsess vigade parandamiseks kettal, antud ketta lukustama. Kui antud kettalt on chkdsk'i käivitamisel avatud mõni fail väljastab chkdsk järgmise teate:

Kui nüüd anda vastuseks Y, üritatakse avatud faile sulgeda ning ketast lukustada. Kui aga see ei õnnestu või anti vastuseks N, pakutakse järgmisel windowsi alglaadimisel käivitada autochk.exe

CHKDSK Süntaks

chkdsk [volume[[path] filename]][/f][/v][/r][/x][/i][/c][/l[:size]]
Parameeter Kirjeldus
volume Määrab ketta, andmekogumi (volume) mida chkdsk kontrollima peab.
path Ainult FAT/FAT32. Täpsustab faili või failikogumi asukoha andmekogumi kaustastruktuuris.
filename Ainult FAT/FAT32. Täpsustab faili või failikogumi asukoha mida kontrollida killustatusest. Märgid * ja ? ei ole lubatud.
size Ainult NTFS. Muudab logifaili mahu määratud kilobaitideni. Peab kasutama koos /l parameetriga.
/c Ainult NTFS. Jätab vahele tsüklite kontrollimise kaustastruktuuris, vähendades chkdsk'i läbimiseks kuluvat aega.
/f Parandab kettalt leitud vead. Ketas peab olema lukustatud. Kui CHKDSK ei saa ketast lukustada, pakub ta kettakontrollimist järgmisel alglaadimisel.
/i Ainult NTFS. Viib läbi vähempõhjaliku indeksite kontrolli.
/l[:size] Ainult NTFS. Näitab logifaili hetkesuurust. Kui maht on eelmääratud, muudab logifaili mahu vastavalt sellele (kolibaitides).
/p Kontrollib ketast isegi kui see pole märgitud "dirty bit"'iga (saadaval ainult taastuskonsoolis - Recovery Console).
/r Otsib vigaseid sektoreid ning taastab neilt loetavat andmed. Andmed mida ei saa lugeda lähevad kaduma. Kui CHKDSK ei saa ketast lukustada, pakub ta kettakontrolli järgmisel alglaadimisel.
/v FAT/FAT32 failisüsteemis: näitab täispikka failiteed ning -nime iga faili kohta kogumis. NTFS failisüsteemis: Näitab puhastuskirjeid, kui üldse.
/x Ainult NTFS. Kui vajalik, sunnib ketta enne kontrolli dismount'ima. Kõik avatud failid sellelt kettalt suletakse koheselt.
/b Ainukt NTFS, alates Vista'st. Kustutab kettalt vigaste klastrite nimekirja ning kontrollib uuesti kõiki klastreid.
/? Näitab kõiki võimalikke CHKDSK parameetreid.

Kasutades CHKDSK'i taastuskonsoolist on mõningatel käskudel teine tähendus:

Parameeter Kirjeldus
/p Parandab leitud vead failisüsteemis. Sama mis /f parameeter stantardses CHKDSK'is.
/r Leiab vigased sektorid ning taastab veel loetavad andmed.


CHKDSK faasid

Kasutades CHKDSK’i NTFS ketastel läbib CHKDSK 3 peamist faasi, lisaks on võimalik läbida ka neljas ja viies faas Järgenvalt on kirjeldatud CHKDSKi faasid.

Faas 1 (Stage 1) Faas 1 vältel kontrollib CHKDSK igat failikirjet MFT's (Master File Table). Iga failikirje MFT's identifitseerib iga üksiku faili ja kausta kogu NTFS failisüsteemis.

Valmis protsent mida CHKDSK siin näitab on protsent kogu MFT'st mis on hetkel kontrollitud.

Faas 2 (Stage 2) Faas 2 vältel kontrollib CHKDSK failikirjete seesmist kooslust ning et igale failikirjele MFT ridades vastab vähemalt üks kaust ning et iga faili ja alamkausta viide teatud kaustas eksisteerib ka failikirjetes MFT's. Lisaks kontrollitakse ka suletud ringi kaustaviite. Seejärel teeb CHKDSK kindlaks et failidega seotud kuupäevade ja faili mahu informatsioon oleks õige ning värske.

Valmis protsent mida CHKDSK selle faasi vältel näitab on protsent failide koguarvust kontrollitaval kettal, mistõttu ketastel mis sisaldavad hulgaliselt faile ja kaustu võib selle faasi läbimiseks kuluv aeg pikaks venida.

Faas 3 (Stage 3) Faas 3 vältel vaatleb CHKDSK kettal iga faili ja kausta turvakirjeid kontrollides et nende struktuur oleks oleks korras ning seesmiselt järjepidev.

Valmisprotsent mida CHKDSK selle faas vältel näitab on protsent kõikidest failidest ja kaustadest mis hetkel on kontrollitud.

Faas 4 ja 5 (Stage 4&5) CHKDSK läbib faasid 4 ja 5 kui see on parameetriga /r määratud. Parameeter /r kontrollin ning kinnitab et igas klastris asuvad sektorid on kasutatavad. /r kasutamine CHKDSK käivitamisel ei ole alati vajalik, sest NTFS failisüsteem leiab vigased sektorid ning adresseerib need ümber ketta tavalise töö käigus. /r parameetrit on soovitatav kasutada juhul kui on kahtlusi et kettal võib olla veel leidmata vigaseid sektoreid.

Faas 4 vältel kontrollib CHDSK hetkel kasutuses olevaid klastreid. Faas 5 vältel kontrollib CHKDSK hetkel kasutuseta klastreid.

Valmis protsent faasis 4 näitab protsenti kõikide kasutuses olevate klastrite arvust mis on selleks hetkeks kontrollitud. Valmis protsent faasis 5 näitab protsenti kõikide kasutamata klastrite arvust mis on selleks hetkeks kontrollitud. Kasutuses olevate klastrite kontrollimine võtab kauem aega kui kasutamata klastrite kontrollimine, seega kettal kus on võrdsel arvul kasutamata ja kasutuses olevaid klastreid kestab faas 4 kauem kui faas 5. Samas, võtab faasi 5 läbimine kettal kus on suuremal arvul kasutamata klastreid rohkem aega kui faas 4.


Koostamisel...

Robert Vane