Popis nových parametrů /C a /I nástroje Chkdsk

Překlady článku Překlady článku
ID článku: 187941 - Produkty, které se vztahují k tomuto článku.
Tento článek byl dříve publikován CZ187941
Verzi tohoto článku pro systém Microsoft Windows XP naleznete pod číslem314835 (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).).
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

V systému Windows NT verze 4.0 s aktualizací Service Pack 4 (SP4) a Windows 2000 byly v programu Chkdsk.exe přidány dva nové parametry. Tyto parametry umožňují uživatelům lépe plánovat dobu výpadku serveru, která vznikne spuštěním nástrojů Chkdsk nebo Autochk.

Parametry /C a /I, přidané v systému Windows NT 4.0 SP4 a Windows 2000, jsou platné pouze v případě, že cílová jednotka obsahuje systém souborů ve formátu NTFS. Každý z těchto parametrů určuje, že nástroj Chkdsk má vynechat určité akce ověření integrity datových struktur systému NTFS, které by jinak byly provedeny.

Upozornění: Společnost Microsoft nedoporučuje přerušovat proces nástroje Chkdsk, který byl spuštěn s parametrem /f. V případě přerušení běhu nástroje Chkdsk nemůže společnost Microsoft zaručit integritu dat na disku.

Další informace

Program Chkdsk.exe je příkazovým rozhraním programu, který ověřuje logickou integritu systému souborů v systému Windows. Pokud nástroj Chkdsk nalezne logické nekonzistence, provede příslušné akce, které zajistí opravu dat systému souborů (pokud není v režimu pouze pro čtení).

Kód, který při online spuštění nástroje Chkdsk provádí vlastní ověření, se nachází v knihovnách DLL nástroje, například Untfs.dll a Ufat.dll. Procedury ověření spouštěné programem Chkdsk.exe, jsou stejné jako procedury, které jsou spouštěny při ověření svazku prostřednictvím grafického uživatelského rozhraní Průzkumníka Windows nebo Správce disků. Pokud je spuštění nástroje Chkdsk naplánováno po restartování počítače, kód ověření se nachází v binárním modulu Autochk.exe. Program Autochk.exe je nativní aplikací systému Windows, která je spuštěna v rané fázi spouštěcí sekvence systému, takže nemůže využívat výhod virtuální paměti ani jiných služeb systému Win32. Výstupem programu Autochk.exe je stejný typ textu, jaký je výstupem knihoven DLL nástrojů, volaných programem Chkdsk.exe. Program Autochk.exe zobrazí tento výstup na obrazovce v průběhu spouštění systému, navíc však událost zapíše do protokolu událostí aplikace systému. Bude zapsáno takové množství textového výstupu, které se vejde do vyrovnávací paměti dat protokolu událostí.

Program Autochk.exe a kód ověření knihoven nástrojů DLL, které používá program Chkdsk.exe, jsou založeny na stejném zdrojovém kódu, a proto budou v tomto článku nadále obecně označovány jako nástroj Chkdsk. Tento článek se týká pouze změn v chování nástroje Chkdsk, který se týká svazků se souborovým systémem NTFS, a proto by tvrzení „Nástroj Chkdsk provede určitou akci“ mělo být chápáno jako „Pokud je nástroj Chkdsk spuštěn na svazku se systémem souborů NTFS, provede určitou akci“.

Po použití parametrů /C nebo /I může svazek zůstat poškozen i po skončení nástroje Chkdsk, a proto není použití těchto parametrů doporučeno, s výjimkou případů, kdy je nutné minimalizovat dobu výpadku systému. Tyto parametry jsou určeny uživatelům, kteří mají svazky nadměrné velikosti a kteří potřebují flexibilně spravovat dobu výpadku systému, která vznikne potřebou spuštění nástroje Chkdsk na těchto svazcích.

Před rozhodnutím, zda je v dané situaci vhodné použít tyto parametry, je nejprve důležité seznámit se s některými základními vnitřními datovými strukturami systému NTFS, s možnými druhy poškození, s akcemi nástroje Chkdsk při ověřování svazku a s možnými následky vynechání běžných kroků ověření nástroje Chkdsk.

Aktivita nástroje Chkdsk se skládá ze tří hlavních fází, během kterých jsou prověřena všechna metadata na svazku, a volitelné čtvrté fáze. Metadata jsou data, která obsahují informace o datech. Jedná se o režii systému souborů. Metadata jsou používána pro záznam kompletních informací o všech souborech na svazku. Metadata obsahují informace o tom, které alokační jednotky obsahují data daného souboru, které alokační jednotky jsou volné, které alokační jednotky obsahují vadné sektory atd. Obsah souboru je označován termínem uživatelská data. Systém souborů NTFS chrání svá metadata pomocí protokolu transakcí. Uživatelská data nejsou tímto způsobem chráněna.

Nástroj Chkdsk v průběhu první fáze zobrazí na obrazovce zprávu o ověřování souborů spolu s ukazatelem průběhu v rozsahu od 0 do 100 procent. V průběhu této fáze nástroj Chkdsk prověří každý segment záznamu souboru FRS (File Record Segment) v hlavní tabulce souborů MFT (Master File Table) svazku. Každý soubor a adresář na svazku NTFS je jednoznačně určen konkrétním segmentem FRS v tabulce MFT. Průběh dokončení, který nástroj Chkdsk v průběhu této fáze zobrazuje, udává procento ověřených záznamů tabulky MFT. Nástroj Chkdsk v průběhu této fáze prověří vnitřní konzistenci každého segmentu FRS a vytvoří dvě bitové mapy. Jedna reprezentuje použité segmenty FRS, druhá reprezentuje použité clustery na svazku. Po skončení této fáze zná nástroj Chkdsk informace o místu, které je používáno, a o místu, které je k dispozici v rámci tabulky MFT a na svazku celkem. Systém NTFS uchovává tyto informace ve vlastních bitových mapách, které jsou uloženy na disku. Nástroj Chkdsk tak může porovnat své výsledky s uloženými bitovými mapami systému NTFS. Případné rozdíly jsou uvedeny ve výstupu nástroje Chkdsk. Pokud například dojde k poškození používaného segmentu FRS, clustery na disku, které byly tomuto segmentu FRS přiřazeny, budou v bitové mapě nástroje Chkdsk označeny jako dostupné. Podle bitové mapy systému NTFS však budou označeny jako používané.

Nástroj Chkdsk v průběhu druhé fáze zobrazí na obrazovce zprávu o ověřování indexů spolu s ukazatelem průběhu v rozsahu od 0 do 100 procent. V průběhu této fáze nástroj Chkdsk ověřuje jednotlivé indexy na svazku. Indexy jsou základními adresáři systému NTFS a zobrazovaný ukazatel průběhu nástroje Chkdsk zobrazuje v této fázi procento celkového počtu adresářů na svazku, který musí být zkontrolován. V této fázi nástroj Chkdsk prověří vnitřní konzistenci každého adresáře na svazku a také ověří, zda každý soubor a adresář, který je v tabulce MFT reprezentován segmentem FRS, je odkazován alespoň jedním adresářem. Zkontroluje také, zda každý soubor nebo podadresář, které jsou v jednotlivých adresářích odkazovány, opravdu existují jako platné segmenty FRS v tabulce MFT. Ověří se také případná existence cyklických odkazů adresáře. Nakonec zkontroluje, zda informace přidružené k souborům (časová razítka a velikost souborů) jsou ve výpisu adresáře těchto souborů aktuální. Na konci této fáze nástroj Chkdsk ověří, zda neexistují žádné osamocené soubory a zda jsou všechny položky výpisu adresáře platné soubory. Osamocený soubor je takový soubor, pro který existuje platný segment FRS, ale který není uveden ve výpisu žádného adresáře. Osamocený soubor může být většinou obnoven do správného adresáře, pokud tento adresář existuje. Pokud příslušný adresář již neexistuje, nástroj Chkdsk vytvoří adresář v kořenovém adresáři a soubor do něj umístí. Pokud je nalezena položka adresáře odkazující na již nepoužívané segmenty FRS nebo na segmenty, které neodpovídají souboru ve výpisu adresáře, bude záznam adresáře odebrán.

Nástroj Chkdsk v průběhu třetí fáze zobrazí na obrazovce zprávu o ověřování popisovačů zabezpečení spolu s ukazatelem průběhu v rozsahu od 0 do 100 procent. V průběhu této fáze nástroj Chkdsk prověří všechny popisovače zabezpečení, které jsou přiřazeny jednotlivým souborům a adresářům na svazku. Popisovače zabezpečení obsahují informace o vlastníkovi souboru nebo adresáře, oprávnění NTFS souboru nebo adresáře a informace o auditování souboru nebo adresáře. Ukazatel průběhu v tomto případě zobrazuje procento počtu souborů a adresářů na svazku. Nástroj Chkdsk zkontroluje, zda je každá struktura popisovače zabezpečení ve správném formátu a vnitřně konzistentní. Žádným způsobem neověřuje, zda uvedení uživatelé nebo skupiny existují, ani zda jsou přidělená oprávnění jakkoli vhodná.

Čtvrtá fáze nástroje Chkdsk je vyvolána pouze v případě použití parametru /R. Parametr /R slouží k vyhledání vadných sektorů ve volném místě svazku. Pokud je použit parametr /R, nástroj Chkdsk se pokusí přečíst každý sektor svazku a ověří, zda je sektor použitelný. Sektory přiřazené metadatům jsou přečteny v průběhu přirozené činnosti nástroje Chkdsk i v případě, že není parametr /R použit. Pokud je zadán parametr /R, jsou sektory přiřazené uživatelským datům čteny v průběhu dřívějších fází nástroje Chkdsk. Pokud je nalezen nečitelný sektor, systém NTFS přidá cluster obsahující tento sektor na svůj seznam vadných clusterů, a v případě, že byl tento cluster použit, alokuje nový cluster, který převezme funkci původního clusteru. Pokud je použit ovladač disku odolný proti chybám, budou data obnovena a zapsána do nově alokovaného clusteru. V opačném případě bude nový cluster vyplněn vzorem bajtů s hodnotou 0xFF. Pokud systém NTFS zjistí při své běžné činnosti nečitelné sektory, přemapuje je stejným způsobem. Parametr /R proto není nezbytný. Může však sloužit jako praktický mechanismus prohledání celého svazku v případě podezření, že disk obsahuje vadné sektory.

Předcházející odstavce obsahují pouze zkrácený popis činnosti nástroje Chkdsk při ověřování integrity svazku NTFS. V průběhu každé fáze je prováděno mnoho dalších specifických kontrol, několik rychlých kontrol je také provedeno mezi uvedenými fázemi. Tyto kontroly nejsou v textu zmíněny. Namísto toho byl uveden jednoduchý přehled důležitějších aspektů aktivity nástroje Chkdsk, který poslouží jako základ pro následující diskuzi. Ta se týká doby potřebné pro běh nástroje Chkdsk a vlivu nových parametrů, které jsou k dispozici v aktualizaci SP4.

V průběhu první a třetí fáze běhu nástroje Chkdsk postupuje ukazatel průběhu relativně pomalu. Rychlost posuvu ukazatele v těchto fázích může být nerovnoměrná. Zpracování nepoužitých segmentů FRS zabere méně času než zpracování používaných segmentů. Zpracování rozsáhlejších popisovačů zabezpečení zabere více času než zpracování menších popisovačů atd. Obecně lze však prohlásit, že zobrazené procento dokončení je poměrně přesnou reprezentací času, který je pro danou fázi potřeba.

To se však nemusí týkat druhé fáze nástroje Chkdsk. Doba potřebná ke zpracování adresáře úzce souvisí s počtem záznamů souborů a podadresářů v tomto adresáři. Zobrazené procento dokončení se však v této fázi vztahuje k počtu adresářů, které je nutné prověřit, bez ohledu na to, že zpracování některých adresářů může trvat déle. Pokud svazek obsahuje například velké množství malých adresářů a jeden velký adresář, procento dokončení se může rychle změnit z 0 na 10 procent, potom se může zdát, že se ukazatel zastavil na dlouhou dobu a potom se může opět rychle změnit z 10 na 100 procent. Pokud tedy svazek neobsahuje velice podobné adresáře (co do počtu obsažených souborů), nemůže být v této fázi zobrazené procento dokončení považováno za spolehlivou reprezentaci zbývajícího času.

Další nepředvídatelnou a poměrně nepříjemnou stránkou nástroje Chkdsk je fakt, že druhá fáze nástroje Chkdsk většinou trvá nejdéle.

Nyní by mělo být jasné, které faktory týkající se stavu svazku hrají významnou roli v době běhu nástroje Chkdsk. Vzorec pro odhad času potřebného pro běh nástroje Chkdsk na daném svazku by musel brát v úvahu faktory, jako například počet souborů a adresářů, stupeň fragmentace svazku (obecně i samostatné tabulky MFT), zda mají soubory dlouhé názvy i názvy ve formátu 8.3 a rozsah poškození, které musí být opraveno. Nemluvě o vlivech hardwaru, například o velikosti paměti systému, rychlosti procesoru, rychlosti disků atd.

Spíše než odhadovat dobu běhu nástroje Chkdsk na daném svazku nebo hardwarové platformě, lze říci, že doba se může lišit v závislosti na situaci v rozsahu několika sekund až několika dní. Pokud není použit parametr /R, je pro danou hardwarovou platformu nejdůležitějším hlediskem počet souborů a adresářů, nikoli absolutní velikost svazku. To znamená, že pokud není použit parametr /R, nástroj Chkdsk prověří svazek o velikosti 50 GB s jedním nebo dvěma velkými soubory databáze během několika sekund. Pokud je zadán parametr /R, nástroj Chkdsk bude muset přečíst a ověřit každý sektor svazku, což v případě velkých svazků zabere hodně času. Na druhou stranu může i relativně malý svazek nástroji Chkdsk zabrat hodiny v případě, že obsahuje stovky tisíc nebo milióny malých souborů, a to nezávisle na použití parametru /R.

Nejlepším způsobem odhadu doby běhu nástroje Chkdsk je provedení testovacího běhu na daném svazku v režimu pouze pro čtení v době nízkého zatížení systému. Při použití této techniky je nutné dát pozor na následující tři aspekty:
  • Pokud nástroj Chkdsk v režimu pouze pro čtení zjistí chybu v předchozích fázích, skončí ještě před dokončením všech tří fází. V režimu pouze pro čtení také často hlásí falešné chyby. To znamená, že nástroj Chkdsk může hlásit poškození disku i v případě, že disk není nijak poškozen. To může nastat v případě, že systém NTFS změní v důsledku aktivity některého programu oblasti disku, které nástroj Chkdsk právě prověřuje. Aby bylo možné svazek správně ověřit, musí se nacházet ve statickém stavu. Jediným způsobem zajištění tohoto stavu je uzamknutí svazku. Nástroj Chkdsk zamkne svazek pouze v případě použití parametrů /F nebo /R (zahrnuje parametr F). Možná tedy bude nutné spustit nástroj Chkdsk vícekrát, aby mohl dokončit všechny fáze v režimu pouze pro čtení.
  • Dobu běhu nástroje Chkdsk může ovlivnit zatížení systému a to, zda je nástroj Chkdsk spuštěn online nebo v průběhu sekvence spuštění systému Windows NT. Nástroj Chkdsk klade velké nároky na výkon procesoru i na výkon disku. Který faktor bude mít největší negativní vliv závisí na konfiguraci hardwaru. Pokud však současně s nástrojem Chkdsk probíhají náročné operace s diskem nebo probíhají výpočty s velkým nárokem na procesor, bude potřeba delší čas. Program Autochk.exe je spuštěn v jiném prostředí než program Chkdsk.exe. Pokud je nástroj Chkdsk spuštěn pomocí programu Autochk.exe, získá nástroj Chkdsk výlučný přístup k procesoru a V/V zdrojům, nemůže však využít výhody virtuální paměti. Program Autochk.exe by měl většinou běžet rychleji než program Chkdsk.exe. V systémech s relativně malou paměti RAM však může běh programu Autochk.exe trvat delší dobu než v případě programu Chkdsk.exe.
  • Oprava poškození také prodlužuje potřebný čas. Nástroj Chkdsk v režimu pouze pro čtení může dokončit svou činnost pouze v případě, že není nalezeno žádné vážné poškození. Pokud disk neobsahuje vážná poškození, je doba nutná k opravě problémů pouze nepatrně delší než je doba běhu nástroje Chkdsk v režimu pouze pro čtení. Pokud však disk obsahuje vážná poškození, která mohou být důsledkem poškození čtecích hlaviček nebo jiného selhání hardwaru, doba potřebná pro běh nástroje Chkdsk se může prodloužit v závislosti na počtu poškozených souborů. V extrémních případech se může doba potřebná pro běh nástroje Chkdsk více než zdvojnásobit.

Popis nových parametrů /C a /I

Parametr /C přiměje nástroj Chkdsk přeskočit kontroly cyklických odkazů ve struktuře adresářů. Cyklické odkazy jsou velmi řídkou formou poškození, kdy podsložka odkazuje sama na sebe jako na svého předchůdce. Použití parametru /C může zrychlit běh nástroje Chkdsk o 1 až 2 procenta. Parametr /C může také na svazku NTFS ponechat „smyčky“ adresářů. Tyto smyčky mohou být ve zbylé části stromu adresářů nedostupné a mohou způsobit, že některé soubory budou osamocené. To znamená, že nejsou viditelné pro žádné aplikace systému Win32 (ani pro aplikace pro zálohování).

Parametr /I způsobí, že nástroj Chkdsk vynechá kontrolu porovnávající položky v adresáři se segmenty FRS, které těmto záznamům odpovídají. Přestože se kontroluje, zda jsou položky adresáře konzistentní samy se sebou, nemusí být nutně konzistentní s daty, která jsou uložena v odpovídajících segmentech FRS, a to ani po spuštění nástroje Chkdsk s tímto parametrem. Použití parametru /I má za následek zkrácení doby běhu nástroje Chkdsk o 50 až 70 procent. Urychlení nástroje Chkdsk pomocí tohoto parametru závisí na faktorech, kterými jsou například poměr počtu souborů a adresářů a také poměr relativní rychlosti diskových operací V/V a rychlosti procesoru. Proto je obtížné toto zrychlení odhadnout. Parametr /I může způsobit, že zbývající položky adresáře odkazují na vadné segmenty FRS, nebo že zbývající segmenty FRS nejsou odkazovány žádným záznamem adresáře. Druhý případ je jinou formou osamocení. Soubor, který je reprezentován segmentem FRS, může být naprosto v pořádku až na to, že není viditelný pro žádnou aplikaci systému Win32 (ani pro aplikaci pro zálohování). V prvním případě se může zdát, že soubory existují, ale v aplikacích dochází k chybám při pokusu o přístup k takovým souborům.

Pokud je na disku nalezeno poškození, jsou k dispozici tři základní volby

  • Nedělat nic. V případě zvláště důležitého serveru, který potřebují být online 24 hodin denně, je tato volba téměř nutností. Nevýhodou je, že pokud se poškození neopraví co nejdříve po zjištění, může se z relativně malého poškození stát poškození velkého rozsahu. Tuto možnost byste měli použít pouze v případě, kdy je provoz systému důležitější než integrita dat na poškozeném svazku, neboť všechna data na svazku by měla být až do spuštění nástroje Chkdsk označena jako riziková.
  • Spustit nástroj Chkdsk se všemi možnostmi. Tato možnost opraví všechna data systému tím, že obnoví všechna uživatelská data, která je možné obnovit automaticky. Nevýhodou této možnosti je, že běh nástroje Chkdsk se všemi možnostmi může znamenat několikahodinový výpadek důležitého serveru v nevhodnou dobu.
  • Zkrácené spuštění nástroje Chkdsk s kombinací parametrů /C a /I. Tato možnost opraví poškození v mnohem kratším čase než nástroj Chkdsk se všemi možnostmi. Opraví poškození, ze kterých mohou vzniknout poškození většího rozsahu, ale neopraví všechna možná poškození. V budoucnu však bude nutné spustit nástroj Chkdsk se všemi možnostmi, který zajistí obnovení všech dat, které obnovit lze.
Je třeba zdůraznit, že systém souborů NTFS nezaručuje integritu uživatelských dat v případě poškození disku, dokonce ani v případě, že je po zjištění poškození ihned spuštěn nástroj Chkdsk se všemi možnostmi. Stále mohou existovat soubory, které nástroj Chkdsk nemůže obnovit. Po spuštění nástroje Chkdsk mohou být některé obnovené soubory vnitřně poškozeny. Je proto nutné, aby se důležitá data pravidelně zálohovala nebo jinak chránila robustní metodikou pro obnovení dat.

Vlastnosti

ID článku: 187941 - Poslední aktualizace: 25. srpna 2006 - Revize: 4.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Windows NT Server 4.0 Terminal Server
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT 4.0 Service Pack 4
Klíčová slova: 
kbfea kbfix kbinfo KB187941

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com