Spiegazione dei nuovi parametri /C e /I disponibili per Chkdsk.exe

Traduzione articoli Traduzione articoli
Identificativo articolo: 314835 - Visualizza i prodotti a cui si riferisce l?articolo.
Per la versione di questo articolo relativa a Microsoft Windows 2000 e a Windows NT 4.0, vedere 187941.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo vengono descritti i due nuovi parametri, /C e /I, inclusi nel programma CHKDSK in Windows XP. Tali parametri consentono una migliore gestione del tempo di inattività durante l'esecuzione di CHKDSK o AUTOCHK.

Avviso Si sconsiglia di interrompere il processo chkdsk quando è utilizzato con il parametro /f. Microsoft non garantisce l'integrità del disco se il programma chkdsk viene interrotto.

Informazioni

Chkdsk.exe è l'interfaccia della riga di comando per l'applicazione CHKDSK, che verifica l'integrità logica di un file system. Se CHKDSK rileva la presenza di incoerenze logiche nei dati del file system, esegue operazioni che ne consentono la riparazione, presumendo che i dati non siano in modalità di sola lettura.

I parametri /C e /I sono validi solo per un'unità formattata nel file system NTFS. Ciascuno dei nuovi parametri fa sì che la routine CHKDSK ignori determinate azioni che dovrebbero altrimenti essere effettuate per convalidare l'integrità delle strutture di dati NTFS.

Se si esegue CHKDSK in linea, il codice che esegue realmente la verifica risiede nelle DLL dell'utilità, ad esempio Untfs.dll e Ufat.dll. Le routine di verifica chiamate da CHKDSK sono le stesse routine che vengono eseguite quando un volume viene verificato attraverso l'interfaccia grafica di Esplora risorse o Gestione disco.

Se tuttavia CHKDSK è pianificato per essere eseguito al momento del riavvio del computer, il modulo binario che contiene il codice di verifica sarà Autochk.exe, un programma nativo di Windows. Dato che Autochk.exe viene eseguito all'inizio della sequenza di avvio del computer, non può usufruire del vantaggio della memoria virtuale o di altri servizi Win32.

Autochk.exe genera lo stesso tipo di output di testo delle DLL dell'utilità Chkdsk.exe, visualizza tale testo durante il processo di avvio e registra un evento nel registro eventi dell'applicazione. Le informazioni dell'evento registrato comprendono la quantità dell'output di testo che può essere memorizzata nel buffer di dati del registro eventi.

Dato che Autochk.exe e il codice di verifica delle DLL dell'utilità Chkdsk.exe si basano sullo stesso codice sorgente, nella parte restante di questo articolo verrà utilizzato il termine "CHKDSK" per fare riferimento in modo generico ad Autochk.exe o Chkdsk.exe. In modo simile, dato che questo articolo riguarda solo le modifiche di CHKDSK che influiscono sui volumi NTFS, ogni istruzione relativa alle operazioni effettuate da CHKDSK significa che tali operazioni vengono effettuate quando CHKDSK è eseguito in un volume NTFS.

Se si utilizzano i parametri /C e /I, è possibile che un volume sia comunque danneggiato anche dopo l'esecuzione di CHKDSK. È pertanto consigliabile utilizzare questi parametri solo se il tempo di inattività deve essere mantenuto al minimo. Tali parametri sono utilizzati per casi in cui è necessario eseguire CHKDSK in volumi eccezionalmente grandi e occorre una certa flessibilità di gestione del tempo di inattività.

Per capire quando potrebbe essere appropriato utilizzare i parametri /C e /I, è necessaria una comprensione di base di alcune delle strutture di dati interne di NTFS, dei tipi di danni che si possono verificare, di quali operazioni vengono effettuate da CHKDSK quando viene eseguire la verifica di un volume e di quali sono le conseguenze potenziali se si eludono i passaggi di verifica comuni di CHKDSK.

Operazioni effettuate da CHKDSK

L'attività di CHKDSK è suddivisa in tre passaggi principali, durante i quali CHKDSK esamina tutti i metadati del volume, e da un quarto passaggio opzionale.

I metadati sono i "dati relativi ad altri dati" e rappresentano il "sovraccarico" del file system che tiene traccia delle informazioni relative a tutti i file archiviati nel volume. I metadati includono informazioni su quali unità di allocazione costituiscono i dati di un determinato file, su quali unità di allocazione sono libere, su quali unità contengono settori danneggiati e così via. I dati contenuti nel file, d'altra parte, sono noti come "dati utente". NTFS protegge i propri metadati attraverso l'utilizzo di un registro di transazione. I dati utente non sono in questo modo protetti.

Fase 1: verifica dei file

Durante il primo passaggio CHKDSK visualizza un messaggio che indica che è in corso la verifica dei file oltre a visualizzare l'avanzamento del processo di verifica, espresso da una percentuale che va da 0 a 100. In questa fase CHKDSK esamina ogni segmento dei record dei file nella tabella MFT (master file table) del volume.

Un segmento specifico della tabella MFT identifica in modo univoco ogni file e directory di un volume NTFS. La percentuale di avanzamento visualizzata durante questa fase rappresenta la percentuale della tabella MFT verificata da CHKDSK. In questo passaggio CHKDSK esamina ogni segmento dei record dei file per verificare la presenza di coerenza interna e crea due bitmap, una che rappresenta i segmenti utilizzati e l'altra per i cluster del volume utilizzati.

Al termine di questo passaggio CHKDSK avrà identificato lo spazio utilizzato e quello disponibile, all'interno della tabella MFT e nel volume completo. NTFS tiene traccia di queste informazioni in bitmap memorizzate su disco. CHKDSK esegue il confronto dei risultati ottenuti con le bitmap memorizzate da NTFS. Le eventuali discrepanze si notano nell'output di CHKDSK. Se ad esempio si rileva che un segmento di record di file in uso è danneggiato, i cluster del disco associati a tale segmento vengono contrassegnati come disponibili nella bitmap di CHKDSK e come in uso nella bitmap di NTFS.

Fase 2: verifica degli indici

Durante il secondo passaggio CHKDSK visualizza un messaggio che indica che è in corso la verifica degli indici oltre a visualizzare di nuovo l'avanzamento del processo di verifica, espresso da una percentuale che va da 0 a 100. In questa fase CHKDSK esamina ogni indice del volume.

Gli indici sono essenzialmente directory NTFS. La percentuale di avanzamento visualizzata in questa fase rappresenta la percentuale del numero totale di directory del volume che sono state verificate. In questo passaggio CHKDSK esamina ogni directory del volume, verificando la coerenza interna e che almeno una directory faccia riferimento a ogni file e directory rappresentate da un segmento di record di file nella tabella MFT. CHKDSK conferma che ogni file o sottodirectory referenziata in una directory esiste realmente come segmento di record di file valido nella tabella MFT e verifica la presenza di riferimenti indiretti alla directory. CHKDSK conferma infine che le informazioni sui timestamp e sulla dimensione dei file sono aggiornate negli elenchi di directory di tali file.

Al termine di questa fase CHKDSK avrà verificato che non esistano file orfani e che tutti gli elenchi di directory siano relativi a file validi. Un file orfano è un file per il quale esiste un segmento di record di file valido, ma per il quale non esiste alcun elenco in nessuna directory. Tale file può essere ripristinato nella directory appropriata se tale directory è ancora esistente. In caso contrario CHKDSK crea una directory nella directory principale e colloca il file in tale posizione. Se CHKDSK rileva elenchi di directory per i segmenti di record di file che non sono più in uso o per segmenti che sono in uso ma che non corrispondono al file elencato nella directory, la voce della directory per il segmento specifico verrà semplicemente rimossa.

Fase 3: verifica dei descrittori di protezione

Durante il terzo passaggio CHKDSK visualizza un messaggio che indica che è in corso la verifica dei descrittori di protezione e, per la terza volta, l'avanzamento del processo, espresso da una percentuale che va da 0 a 100. In questa fase CHKDSK esamina ogni descrittore di protezione associato a file o directory del volume.

I descrittori di protezione contengono informazioni sulla proprietà, sulle autorizzazioni NTFS e sul controllo di un file o directory. La percentuale di avanzamento visualizzata in questa fase rappresenta la percentuale dei file e delle directory del volume che sono stati verificati. CHKDSK verifica che la struttura di ogni descrittore di protezione sia corretta e internamente coerente, ma non verifica l'esistenza vera e propria degli utenti o dei gruppi elencati o l'adeguatezza delle autorizzazioni concesse.

Fase 4: verifica dei settori

Se il parametro /R è in uso, viene eseguito un quarto passaggio per cercare settori danneggiati nello spazio libero del volume. CHKDSK tenta di leggere ogni settore del volume per confermare che può essere utilizzato. Anche senza il parametro /R viene sempre effettuata la lettura dei settori associati ai metadati. I settori associati ai dati utente vengono letti nelle fasi precedenti se è specificato il parametro /R.

Quando CHKDSK rileva un settore illeggibile, NTFS aggiunge il cluster che contiene tale settore all'elenco di cluster danneggiati. Se il cluster danneggiato è in uso, CHKDSK alloca un nuovo cluster perché assuma il compito del cluster danneggiato. Se si utilizza un disco a tolleranza di errore, NTFS ripristina i dati del cluster danneggiato e scrive tali dati nel nuovo cluster allocato. In caso contrario nel nuovo cluster viene incluso un motivo di 0xFF byte.

Se NTFS rileva settori illeggibili durante il normale funzionamento, tali settori verranno nuovamente mappati come nel caso dell'esecuzione di CHKDSK. Pertanto l'utilizzo del parametro /R non è in genere fondamentale, ma l'impiego di /R risulta utile per esaminare l'intero volume se si sospetta che un disco possa includere settore danneggiati.

Requisiti di tempo di CHKDSK

La descrizione delle fasi di esecuzione di CHKDSK appena terminata fornisce solo una descrizione generale delle attività più importanti effettuate da CHKDSK per verificare l'integrità di un volume NTFS. CHKDSK esegue inoltre molte verifiche specifiche aggiuntive durante ogni passaggio e numerose modifiche rapide tra una fase e l'altra. Una descrizione così generica fornisce comunque la base per la discussione riportata di seguito relativa alle variabili che influiscono sulla quantità di tempo impiegata da CHKDSK per l'esecuzione e sull'impatto dei nuovi parametri /C e /I disponibili in Windows XP.

Variabile 1: la fase relativa agli indici

Durante la prima e la terza fase di esecuzione di CHKDSK, vale a dire durante la verifica dei file e dei descrittori di protezione, la progressione dell'indicatore di avanzamento è relativamente uniforme. I segmenti di record di file non utilizzati sono elaborati in meno tempo a differenza dei descrittori di protezione di grandi dimensioni, ma in generale l'avanzamento del processo riflette in modo abbastanza preciso la quantità di tempo effettiva necessaria per il completamento della fase.

Questa relazione percentuale/tempo non è tuttavia necessariamente applicabile alla seconda fase in cui CHKDSK esamina gli indici, vale a dire le directory NTFS. Il tempo impiegato per l'elaborazione di una directory è strettamente legato al numero di file e sottodirectory che si trovano in tale directory, ma la percentuale di avanzamento in questa fase dipende solo dal numero di directory che deve essere esaminato da CHKDSK. Non esiste alcuna regolazione per la durata, ad esempio, dell'elaborazione di una directory che contiene un numero molto grande di file e sottodirectory. A meno che le directory di un volume non contengano tutte lo stesso numero di file, l'avanzamento del processo visualizzato in questa fase non riflette in modo attendibile il tempo effettivo necessario per la seconda fase.

A peggiorare la situazione c'è il fatto che se si verifica una procedura di CHKDSK imprevista, la seconda fase di CHKDSK è in genere quella che richiede la maggiore quantità di tempo.

Variabile 2: la condizione del volume

Molti fattori relativi allo stato di un volume hanno un ruolo importante nella durata dell'esecuzione di CHKDSK. Una formula per la previsione del tempo necessario per l'esecuzione di CHKDSK in un determinato volume dovrebbe includere variabili quali il numero di file e directory, il grado di frammentazione del volume in generale e della tabella MFT in particolare, il formato dei nomi dei file, vale a dire nomi lunghi, nomi formattati 8.3 o nomi misti, e il danno effettivo che deve essere riparato da CHKDSK.

Variabile 3: problemi hardware

Anche i problemi hardware influiscono sulla durata dell'esecuzione di CHKDSK. Le variabili includono la quantità di memoria disponibile, la velocità della CPU, la velocità del disco e così via.

Variabile 4: le impostazioni di CHKDSK

Se non si utilizza il parametro /R, la preoccupazione maggiore relativa al tempo in una determinata piattaforma hardware è data dal numero di file e di directory presenti nel volume, invece della dimensione assoluta del volume.

Senza il parametro /R l'esecuzione di CHKDSK potrebbe ad esempio richiedere pochi secondi in un volume da 50 GB (gigabyte) che dispone solo di uno o due file di database di grandi dimensioni. Se si utilizza il parametro /R, è necessario eseguire la lettura e la verifica di ogni settore del volume, aumentando notevolmente la durata dell'analisi di volumi di grandi dimensioni. D'altro canto, anche l'esecuzione di CHKDSK in un volume di dimensioni relativamente ridotte potrebbe richiedere ore se il volume dispone di centinaia, migliaia o persino milioni di piccoli file, indipendentemente dal fatto che venga specificato il parametro /R.

Previsione dei requisiti di tempo di CHKDSK

Come si può notare, l'esecuzione di CHKDSK può richiedere alcuni secondi o molti giorni in base alla situazione specifica. Il modo migliore per prevedere la durata dell'esecuzione di CHKDSK in un determinato volume è quello di effettuare un'esecuzione di prova in modalità di sola lettura durante un periodo di utilizzo minimo del sistema.

È tuttavia necessario utilizzare questa tecnica con grande attenzione per i motivi riportati di seguito:
  • In modalità di sola lettura CHKDSK viene chiuso prima di completare le tre fasi descritte, se rileva errori nelle prime fasi e l'applicazione è incline a segnalare errori inesistenti. CHKDSK potrebbe ad esempio segnalare la corruzione del disco se NTFS modifica le aree di un disco durante l'esecuzione dell'analisi da parte di CHKDSK. Per eseguire una verifica corretta, un volume deve essere statico e l'unico modo per garantire questo stato è quello di bloccare il volume. Il blocco del volume avviene solo se si specifica il parametro /F oppure il parametro /R che implica /F. Potrebbe essere necessario eseguire CHKDSK più volte per fare in modo che vengano completati tutti i passaggi in modalità di sola lettura.
  • CHKDSK richiede un uso intensivo della CPU e del disco. Il tempo necessario per l'esecuzione di CHKDSK è influenzato dal carico del sistema e dal fatto che CHKDSK venga eseguito in linea o durante la sequenza di avvio di Windows XP. Quale elemento rappresenti il collo di bottiglia dipende dalla configurazione hardware, ma un uso intensivo della CPU o un I/O del disco notevole, durante l'esecuzione di CHKDSK in modalità di sola lettura, aumenteranno la durata dell'esecuzione. Autochk.exe inoltre viene eseguito in un ambiente diverso da quello di Chkdsk.exe. L'esecuzione di CHKDSK attraverso Autochk.exe fornisce a CHKDSK l'utilizzo esclusivo della CPU e delle risorse I/O, ma evita che CHKDSK utilizzi la memoria virtuale. Anche se ci si potrebbe aspettare che Autochk.exe venga eseguito più rapidamente di Chkdsk.exe, può in realtà impiegare più tempo se il computer dispone di poca RAM.
  • La risoluzione degli errori aumenta il tempo necessario. In modalità di sola lettura CHKDSK viene eseguito fino al completamento solo se non rileva alcun errore significativo. Se un disco presenta solo danni minori, è possibile prevedere che la risoluzione dei problemi non aumenterà molto la durata necessaria per la semplice esecuzione di CHKDSK. Se tuttavia vengono rilevati danni importanti, ad esempio a causa di un grave errore hardware, è possibile prevedere che il tempo necessario per l'esecuzione di CHKDSK aumenterà in proporzione al numero di file danneggiati che dovranno essere riparati. In casi estremi la durata potrebbe superare il doppio del tempo necessario per l'esecuzione di CHKDSK.

Introduzione dei parametri /C e /I

Il parametro /C

Il parametro /C fa sì che in CHKDSK vengano ignorate le verifiche che rilevano cicli nella struttura di directory. I cicli sono un tipo di errore molto raro in cui una sottodirectory ha se stessa come "predecessore".

L'utilizzo del parametro /C può velocizzare CHKDSK di una percentuale pari a 1 a 2 percento, ma può anche fare in modo che la directory venga ripetuta in un volume NTFS. Tali cicli potrebbero essere inaccessibili dal resto della struttura della directory e alcuni file potrebbero risultare orfani nel senso che i programmi Win32, incluse le applicazioni di backup, potrebbero non essere in grado di vedere i file.

Il parametro /I

Il parametro /I fa sì che in CHKDSK vengano ignorate le verifiche che eseguono il confronto tra voci di directory e segmenti di record di file corrispondenti. Quando questo parametro è in uso, viene ancora effettuata la verifica della coerenza interna delle voci di directory, ma tali voci non sono necessariamente coerenti con i dati memorizzati nei segmenti di record di file corrispondenti.

?È difficile prevedere quanto tempo si possa risparmiare utilizzando il parametro /I. In genere il parametro /I riduce i tempi di CHKDSK del 50 o 70 percento, in base a fattori come il rapporto tra file e directory e la velocità dell'I/O del disco relativo alla velocità della CPU.

L'utilizzo del parametro /I ha le seguenti limitazioni:
  • Potrebbero essere presenti voci di directory che fanno riferimento a segmenti di record di file non corretti. In tal caso tutte le applicazioni che tenteranno di utilizzare tale voce andranno incontro a errori.
  • Potrebbero essere presenti segmenti di record di file senza alcun riferimento a voci di directory, un altro modo per cui si verifica la presenza di file orfani. Un file realmente intatto, come rappresentato dal segmento di record di file, potrebbe essere invisibile a tutte le applicazioni Win32, inclusi i programma di backup.

Il valore dei parametri /C e /I

Quando viene rilevato il danno del disco in un volume, sono disponibili tre opzioni di base per la risoluzione.

La prima opzione è quella di non effettuare alcuna operazione. In un server importante che si prevede sia in linea 24 ore su 24, si tratta spesso dell'unica scelta possibile. Lo svantaggio è costituito dal fatto che un errore relativamente minore può dare come risultato un errore più grave. Si tenga quindi in considerazione questa opzione solo se mantenere il server in linea è più importante della salvaguardia dell'integrità dei dati memorizzati nel volume danneggiato. Tutti i dati del volume danneggiato devono essere considerati "a rischio" finché non viene eseguito CHKDSK. La seconda opzione è quella di eseguire un processo completo di CHKDSK per riparare tutti i dati del file system e ripristinare tutti i dati utente che possono essere recuperati tramite un processo automatico. Questa opzione può però richiedere numerose ore di inattività per un server importante in un momento poco opportuno. La terza opzione è quella di eseguire un processo di CHKDSK breve mediante uno o entrambi i parametri /C e /I, per riparare i tipi di errore che possono causare problemi più gravi in meno tempo rispetto all'esecuzione di completa di CHKDSK.

Si noti tuttavia che l'esecuzione abbreviata di CHKDSK non risolve tutti gli errori che potrebbero essere presenti. È comunque necessaria l'esecuzione completa di CHKDSK in un secondo tempo per garantire che tutti i dati ripristinabili siano stati realmente recuperati.

Si noti inoltre che NTFS non garantisce l'integrità dei dati utente dopo un'istanza della corruzione del disco, anche se viene effettuata immediatamente l'esecuzione completa di CHKDSK. Potrebbero esserci file che CHKDSK non è in grado di recuperare e file che potrebbero essere recuperati ma che contengono comunque errori interni. Rimane comunque di vitale importanza proteggere dati importanti eseguendo backup periodici o utilizzando altri potenti metodi di ripristino dei dati.

Proprietà

Identificativo articolo: 314835 - Ultima modifica: sabato 1 dicembre 2007 - Revisione: 4.1
Le informazioni in questo articolo si applicano a
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional x64 Edition
Chiavi: 
kbinfo kbfea KB314835
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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