Dela via


chkdsk

Kontrollerar filsystemets och filsystemets metadata för en volym efter logiska och fysiska fel. Om den används utan parametrar visar chkdsk endast volymens status och åtgärdar inga fel. Om den används med parametrarna /f, /r, /x eller /b korrigeras fel på volymen.

Viktigt!

Medlemskap i den lokala gruppen Administratörer , eller motsvarande, är det minsta som krävs för att köra chkdsk. Om du vill öppna ett kommandotolkfönster som administratör högerklickar du på KommandotolkenStart-menyn och väljer sedan Kör som administratör.

Viktigt!

Att avbryta chkdsk rekommenderas inte. Att avbryta eller avbryta chkdsk bör dock inte lämna volymen mer skadad än den var innan chkdsk kördes . Körs chkdsk igen kontrollerar och bör reparera eventuella återstående skador på volymen.

Anmärkning

Chkdsk kan endast användas för lokala diskar. Kommandot kan inte användas med en lokal enhetsbeteckning som har omdirigerats via nätverket.

Syntax

chkdsk [<volume>[[<path>]<filename>]] [/f] [/v] [/r] [/x] [/i] [/c] [/l[:<size>]] [/b] [/scan] [/forceofflinefix] [/perf] [/spotfix] [/sdcleanup] [/offlinescanandfix] [/freeorphanedchains] [/markclean] [/?]

Parameterar

Parameter Beskrivning
<volume> Anger enhetsbeteckningen (följt av ett kolon), monteringspunkt eller volymnamn.
[<path>]<filename> Använd endast med filallokeringstabell (FAT) och FAT32. Anger platsen och namnet på en fil eller uppsättning filer som du vill att chkdsk ska söka efter fragmentering. Du kan använda jokertecken ? och * ange flera filer.
/f Åtgärdar fel på disken. Disken måste vara låst. Om chkdsk inte kan låsa enheten visas ett meddelande som frågar dig om du vill kontrollera enheten nästa gång du startar om datorn.
/v Visar namnet på varje fil i varje katalog när disken är markerad.
/r Letar upp dåliga sektorer och återställer läsbar information. Disken måste vara låst. /r innehåller funktionerna i /f, med ytterligare analys av fysiska diskfel.
/x Tvingar volymen att demontera först, om det behövs. Alla öppna referenser till enheten är ogiltiga. /x innehåller även funktionerna i /f.
jag Använd endast med NTFS. Utför en mindre kraftfull kontroll av indexposter, vilket minskar den tid som krävs för att köra chkdsk.
/c Använd endast med NTFS. Kontrollerar inte cykler i mappstrukturen, vilket minskar den tid som krävs för att köra chkdsk.
/l[:<size>] Använd endast med NTFS. Ändrar loggfilens storlek till den storlek som du skriver. Om du utelämnar storleksparametern visar /l den aktuella storleken.
/b Använd endast med NTFS. Rensar listan över felaktiga kluster på volymen och genomsöker alla allokerade och kostnadsfria kluster på nytt efter fel. /b innehåller funktionerna i /r. Använd den här parametern när du har avbildat en volym till en ny hårddisk.
/avsöka Använd endast med NTFS. Kör en onlinegenomsökning på volymen.
/forceofflinefix Använd endast med NTFS (måste användas med /scan). Kringgå all onlinereparation; alla fel som hittas placeras i kö för offlinereparation (till exempel chkdsk /spotfix).
/Perf Använd endast med NTFS (måste användas med /scan). Använder fler systemresurser för att slutföra en genomsökning så snabbt som möjligt. Detta kan ha en negativ prestandapåverkan på andra uppgifter som körs i systemet.
/spotfix Använd endast med NTFS. Kör spotfixning på volymen.
/sdcleanup Använd endast med NTFS. Skräpinsamling av onödiga säkerhetsbeskrivningsdata (innebär /f).
/offlinescanandfix Kör en offlinegenomsökning och korrigering på volymen.
/freeorphanedchains Använd endast med FAT/FAT32/exFAT. Frigör eventuella överblivna klusterkedjor i stället för att återställa innehållet.
/markclean Använd endast med FAT/FAT32/exFAT. Markerar volymen ren om ingen skada har identifierats, även om /f inte har angetts.
/? Visar hjälp i kommandotolken.

Anmärkningar

  • Växeln /i eller /c minskar den tid som krävs för att köra chkdsk genom att hoppa över vissa volymkontroller.

  • Om du vill att chkdsk ska korrigera diskfel kan du inte ha öppna filer på enheten. Om filerna är öppna visas följande felmeddelande:

    Chkdsk cannot run because the volume is in use by another process. Would you like to schedule this volume to be checked the next time the system restarts? (Y/N)
    
  • Om du väljer att kontrollera enheten nästa gång du startar om datorn kontrollerar chkdsk enheten och korrigerar fel automatiskt när du startar om datorn. Om enhetspartitionen är en startpartition startar chkdsk automatiskt om datorn när den har kontrollerat enheten.

  • Du kan också använda chkntfs /c kommandot för att schemalägga volymen som ska kontrolleras nästa gång datorn startas om. fsutil dirty set Använd kommandot för att ange volymens smutsiga bit (som anger skada), så att Windows kör chkdsk när datorn startas om.

  • Du bör använda chkdsk ibland på FAT- och NTFS-filsystem för att söka efter diskfel. Chkdsk undersöker diskutrymme och diskanvändning och tillhandahåller en statusrapport som är specifik för varje filsystem. Statusrapporten visar fel som hittats i filsystemet. Om du kör chkdsk utan parametern /f på en aktiv partition kan den rapportera falska fel eftersom den inte kan låsa enheten.

  • Chkdsk korrigerar endast logiska diskfel om du anger parametern /f . Chkdsk måste kunna låsa enheten för att korrigera fel.

    Eftersom reparationer på FAT-filsystem vanligtvis ändrar en disks filallokeringstabell och ibland orsakar dataförlust kan chkdsk visa ett bekräftelsemeddelande som liknar följande:

    10 lost allocation units found in 3 chains.
    Convert lost chains to files?
    
    • Om du trycker på Y sparar Windows varje förlorad kedja i rotkatalogen som en fil med ett namn i formatet File<nnnn>.chk. När chkdsk har slutförts kan du kontrollera dessa filer för att se om de innehåller några data som du behöver.

    • Om du trycker på N korrigerar Windows disken, men den sparar inte innehållet i de förlorade allokeringsenheterna.

  • Om du inte använder parametern /f visar chkdsk ett meddelande om att filen måste åtgärdas, men det löser inga fel.

  • Om du använder chkdsk /f* på en stor disk eller en disk med ett stort antal filer (till exempel miljontals filer) chkdsk /f kan det ta lång tid att slutföra.

  • Använd parametern /r för att hitta fysiska diskfel i filsystemet och försöka återställa data från berörda disksektorer.

  • Om du anger parametern /f visar chkdsk ett felmeddelande om det finns öppna filer på disken. Om du inte anger parametern /f och öppna filer finns kan chkdsk rapportera förlorade allokeringsenheter på disken. Detta kan inträffa om öppna filer ännu inte har registrerats i filallokeringstabellen. Om chkdsk rapporterar förlusten av ett stort antal allokeringsenheter bör du överväga att reparera disken.

  • Eftersom källvolymen Skuggkopior för delade mappar inte kan låsas medan Skuggkopior för delade mappar är aktiverat, kan körning av chkdsk mot källvolymen rapportera falska fel eller orsaka att chkdsk oväntat avslutas. Du kan dock kontrollera skuggkopior efter fel genom att köra chkdsk i skrivskyddat läge (utan parametrar) för att kontrollera lagringsvolymen Skuggkopior för delade mappar.

  • Chkdsk-kommandot med olika parametrar är tillgängligt från Återställningskonsolen.

  • På servrar som sällan startas om kanske du vill använda chkntfs eller fsutil dirty query kommandona för att avgöra om volymens smutsiga bit redan har angetts innan chkdsk körs.

Hur chkdsk presterar på olika medier

  • Fysisk natur: HDD:er använder snurrande magnetiska tallrikar. Sektorer och block läss fysiskt från tallriken.

  • När chkdsk körs:

    • Det fysiska huvudet måste flyttas till varje dataplats som kontrolleras, vilket är långsammare på grund av mekanisk rörelse.
    • Det tar längre tid att söka efter dåliga sektorer (med /r) eftersom varje sektors fysiska integritet kontrolleras och dåliga sektorer ersätts om möjligt.
    • Högtimmarskörningar är inte ovanliga för stora enheter.

Normalt sett på hdd:er med stor kapacitet eller /r/b skulle det ta lång tid att läsa varje sektor. Även utan fel och med en mestadels tom enhet, den fysiska läshastighet flaskhalsar processen.

Det kan finnas fall där hdd:er chkdsk med stor kapacitet kan slutföra processen för snabbt. Om detta inträffar kan det vara följande:

  • Volymen monteras smutsig eller låst av operativsystemet (OS) eller någon annan process.
  • Åtgärden chkdsk skannade inte alla sektorer på enheten.
  • Hårddisken kan ha ett fel på läsningshuvudet eller något annat maskinvaruproblem som gör chkdsk att den beter sig oförutsägbart.
  • Åtgärden chkdsk utförde endast en onlinegenomsökning av filsystemstrukturen och gjordes inte uttryckligen för att köra en offlinegenomsökning innan den startades i operativsystemet.

Att visa loggarna chkdsk kan peka på ett potentiellt problem vid genomsökningar. Mer information finns i Visa chkdsk-loggar.

Förstå utgångskoder

I följande tabell visas de slutkoder som chkdsk rapporterar när den har slutförts.

Slutkod Beskrivning
0 Inga fel hittades.
1 Fel hittades och åtgärdades.
2 Diskrensning har utförts (till exempel skräpinsamling) eller inte utfört rensning eftersom /f inte har angetts.
3 Det gick inte att kontrollera disken, det gick inte att åtgärda fel eller så har felen inte åtgärdats eftersom /f inte har angetts.

Exempel

Om du vill kontrollera disken i enhet D och ha Windows-korrigeringsfel skriver du:

chkdsk d: /f

Om det uppstår fel pausar chkdsk och visar meddelanden. Chkdsk slutförs genom att visa en rapport som visar status för disken. Du kan inte öppna några filer på den angivna enheten förrän chkdsk den är klar.

Om du vill kontrollera alla filer på en FAT-disk i den aktuella katalogen för icke-sammanhängande block skriver du:

chkdsk *.*

Chkdsk visar en statusrapport och visar sedan de filer som matchar filspecifikationerna som har icke-sammanhängande block.

Visa chkdsk-loggar

Det finns två metoder som kan användas för att hämta chkdsk-loggfiler i Windows med hjälp av Loggboken och PowerShell.

Utför följande åtgärder för att visa loggar med Loggboken:

  1. Starta >Kontrollpanelen>Administrationsverktyg>Loggboken.

    Du kan också trycka på Win + R-tangenterna för att öppna dialogrutan kör, skriva eventvwr.msc och välja OK.

  2. Expandera Windows-loggar> högerklicka på Program> och välj Filtrera aktuell logg.

  3. I fönstret Filtrera aktuell logg går du till den nedrullningsbara menyn Händelsekällor och väljer Chkdsk och Wininit.

  4. Välj OK för att slutföra filtreringen för dessa två källor.