Uma explicação dos novos Parâmetros /C e /I que estão disponíveis para utilização com Chkdsk.exe

Traduções de Artigos Traduções de Artigos
Artigo: 314835 - Ver produtos para os quais este artigo se aplica.
Este artigo descreve dois parâmetros novos, /C e /I, incluídos no programa CHKDSK no Windows XP. Estes parâmetros permitem efectuar uma melhor gestão do período de indisponibilidade que ocorre durante a execução de CHKDSK ou AUTOCHK.

Aviso A Microsoft não recomenda a interrupção do processo chkdsk quando este é utilizado com o parâmetro /f. A Microsoft não garante a integridade do disco se o programa chkdsk for interrompido.

Mais Informação

Chkdsk.exe é a interface de linha de comandos do programa CHKDSK, que verifica a integridade lógica de um sistema de ficheiros. Se o CHKDSK encontrar inconsistências lógicas em dados do sistema de ficheiros, efectua acções que reparam os dados do sistema de ficheiros (partindo do princípio de que os dados não estão no modo só de leitura).

Os parâmetros /C e /I só são válidos para unidades formatadas com o sistema de ficheiros NTFS. Cada um dos novos parâmetros indica à rotina de CHKDSK para ignorar acções que, caso contrário, seriam efectuadas para validar a integridade das estruturas de dados NTFS.

Se executar o CHKDSK online, o código que, na realidade, efectua a verificação, reside em DLLs utilitárias (por exemplo, Untfs.dll e Ufat.dll). As rotinas de verificação invocadas por CHKDSK são as mesmas que são executadas quando um volume é verificado através da interface gráfica de utilizador do Explorador do Windows ou da Gestão de Discos.

No entanto, se o CHKDSK estiver agendado para execução quando o computador é reiniciado, o módulo binário que contém o código de verificação é Autochk.exe, um programa nativo do Windows. Visto que Autochk.exe é executado numa fase inicial da sequência de arranque do computador, não beneficia de memória virtual ou de outros serviços Win32.

Autochk.exe gera o mesmo tipo de saída de texto que as DLLs utilitárias de Chkdsk.exe. Autochk.exe apresenta este texto durante o processo de arranque, escrevendo igualmente um evento no registo de eventos da aplicação. As informações de evento registadas incluem a quantidade da saída de texto que couber na memória intermédia de dados do registo de eventos.

Visto que Autochk.exe e o código de verificação das DLLs utilitárias de Chkdsk.exe são baseados no mesmo código fonte, o resto deste artigo utiliza o termo "CHKDSK" para referenciar genericamente Autochk.exe ou Chkdsk.exe. Do mesmo modo, visto que este artigo só abrange as alterações a CHKDSK que envolvem volumes NTFS, qualquer afirmação que "CHKDSK efectua esta acção" significa que "CHKDSK efectua esta acção quando executado num volume NTFS".

Note que, se utilizar os parâmetros /C e /I, é possível que um volume continue danificado mesmo após a execução de CHKDSK. Consequentemente, recomendados que utilize estes parâmetros apenas se for necessário manter um período de indisponibilidade mínimo. Estes parâmetros destinam-se a situações em que é necessário executar CHKDSK em volumes excepcionalmente grandes e onde é necessária flexibilidade na gestão do período de indisponibilidade resultante.

Para compreender quando poderá ser apropriado utilizar os parâmetros /C e /I, é necessária uma compreensão básica de algumas das estruturas de dados NTFS internas, dos tipos de danos que podem ocorrer, das acções efectuadas por CHKDSK durante a verificação de um volume e das consequências potenciais de ignorar os passos de verificação normais de CHKDSK.

Noções básicas sobre o funcionamento de CHKDSK

A actividade de CHKDSK está dividida em três fases principais, durante as quais este examina todos os metadados do volume, e numa quarta fase opcional.

Os metadados são "dados sobre dados". Os metadados são o "overhead" do sistema de ficheiros, monitorizando informações sobre todos os ficheiros armazenados no volume. Os metadados incluem informações sobre as unidades de alocação que compõem os dados de um ficheiro específico, as unidades de alocação que estão disponíveis, as unidades de alocação que contêm sectores danificados e assim consecutivamente. Por outro lado, os dados contidos pelo ficheiro são chamados "dados do utilizador". O NTFS protege os respectivos metadados através da utilização de um registo de transacções. Os dados do utilizador não são protegidos deste modo.

Fase 1: Verificar ficheiros

Durante a primeira fase, o CHKDSK apresenta uma mensagem indicando que está a verificar ficheiros, juntamente com a percentagem de verificação concluída, entre 0 e 100 por cento. Durante esta fase, o CHKDSK examina cada segmento de registo de ficheiro existente na MFT (master file table) do volume.

Um segmento de registo de ficheiro específico existente na MFT identifica exclusivamente cada ficheiro e directório existente num volume NTFS. A "percentagem concluída" que o CHKDSK apresenta durante esta fase é a percentagem da MFT verificada pelo CHKDSK. Durante esta fase, o CHKDSK verifica a consistência interna de cada segmento de registo de ficheiro e cria dois mapas de bits, um representando os segmentos de registo de ficheiro em utilização e o outro representando os clusters do volume que estão em utilização.

No final desta fase, o CHKDSK identificou o espaço que está em utilização e o espaço livre, quer na MFT quer na totalidade do volume. O NTFS monitoriza estas informações em mapas de bits próprios, que são armazenados no disco. O CHKDSK compara os respectivos resultados com os mapas de bits mantidos pelo NTFS. Se existirem discrepâncias, estas são indicadas na saída do CHKDSK. Por exemplo, se um segmento de registo de ficheiro que estava em utilização for identificado como danificado, os clusters do disco que estavam associados a esse segmento de registo de ficheiro são marcados como "disponíveis" no mapa de bits do CHKDSK, mas são marcados como "em utilização" no mapa de bits do NTFS.

Fase 2: Verificar índices

Durante a segunda fase, o CHKDSK apresenta uma mensagem indicando que está a verificar os índices, apresentando novamente a percentagem de verificação concluída, entre 0 e 100 por cento. Durante esta fase, o CHKDSK examina cada um dos índices existentes no volume.

Essencialmente, os índices são directórios NTFS. A "percentagem concluída" que o CHKDSK apresenta durante esta fase é a percentagem do número total de directórios do volume que foram verificados. Durante esta fase, o CHKDSK examina cada directório existente no volume, verificando a consistência interna e verificando se cada ficheiro e directório representando por um segmento de registo de ficheiro na MFT é referenciado por, pelo menos, um directório. O CHKDSK confirma se cada ficheiro ou subdirectório referenciado num directório existe mesmo como um segmento de registo de ficheiro válido na MFT e verifica também as referências de directório circulares. Finalmente, o CHKDSK confirma se as informações de carimbo de data/hora e tamanho dos ficheiros estão actualizadas nas listagens de directório desses ficheiros.

No final desta fase, o CHKDSK certificou-se de que não existem ficheiros "órfãos" e que todas as listagens de directório são referentes a ficheiros legítimos. Um ficheiro órfão é um ficheiro para o qual existe um segmento de registo de ficheiro legítimo, mas para o qual não existe uma listagem em nenhum directório. Um ficheiro órfão pode frequentemente ser restaurado para o directório correcto, se esse directório ainda existir. Se o directório adequado já não existir, o CHKDSK cria um directório no directório raiz e coloca o ficheiro nesse directório. Se o CHKDSK localizar listagens de directório relativas a segmentos de registo de ficheiro que já não estejam em utilização, ou relativas a segmentos de registo de ficheiro que estejam em utilização mas que não correspondam ao ficheiro listado no directório, o CHKDSK remove pura e simplesmente a entrada de directório relativa ao segmento de registo de ficheiro.

Fase 3: Verificar descritores de segurança

Durante a terceira fase, o CHKDSK apresenta uma mensagem indicando que está a verificar os descritores de segurança e, pela terceira vez, apresenta a "percentagem concluída", entre 0 e 100 por cento. Durante esta fase, o CHKDSK examina cada descritor de segurança associado aos ficheiros ou directórios existentes no volume.

Os descritores de segurança contêm informações sobre a propriedade de um ficheiro ou directório, sobre as permissões NTFS relativas ao ficheiro ou directório e sobre a auditoria do ficheiro ou directório. A "percentagem concluída" que o CHKDSK apresenta durante esta fase é a percentagem de ficheiros e directórios do volume que foram verificados. O CHKDSK verifica se cada estrutura de descritor de segurança está correctamente formada e é internamente consistente. O CHKDSK não verifica a existência real dos utilizadores ou grupos listados, nem a adequação das permissões concedidas.

Fase 4: Verificar sectores

Se o parâmetro /R estiver activo, o CHKDSK executa uma quarta fase para localizar sectores danificados existentes no espaço livre do volume. O CHKDSK tenta ler cada sector do volume, para confirmar se esse sector é utilizável. Mesmo sem o parâmetro /R, o CHKDSK lê sempre os sectores associados aos metadados. Os sectores associados aos dados do utilizador são lidos durante as fases anteriores do CHKDSK se o parâmetro /R for especificado.

Quando o CHKDSK localiza um sector ilegível, o NTFS adiciona o cluster que contém esse sector à respectiva lista de sectores danificados. Se o cluster danificado estiver em utilização, o CHKDSK aloca um novo cluster para efectuar a tarefa do sector danificado. Se estiver a utilizar um disco com tolerância a falhas, o NTFS recupera os dados do sector danificado e escreve esses dados no cluster recém-alocado. Caso contrário, o novo cluster é preenchido com um padrão de bytes 0xFF.

Se o NTFS encontrar sectores ilegíveis durante o funcionamento normal, remapeia os sectores tal como faz durante a execução de CHKDSK. Consequentemente, a utilização do parâmetro /R não é normalmente essencial. No entanto, a utilização do parâmetro /R é um modo conveniente de analisar o volume completo caso suspeite que um disco possa ter sectores danificados.

Noções básicas sobre as necessidades de tempo de CHKDSK

A descrição anterior das fases de execução de CHKDSK fornece apenas uma descrição geral das tarefas mais importantes executadas pelo CHKDSK para verificar a integridade de um volume NTFS. O CHKDSK também efectua várias verificações adicionais específicas durante cada fase, bem como várias verificações rápidas entre as fases. No entanto, até mesmo uma descrição geral deste tipo fornece algumas noções básicas para a discussão seguinte das variáveis que afectam a quantidade de tempo que o CHKDSK demora a ser executado, bem como o impacto dos novos parâmetros /C e /I que estão disponíveis no Windows XP.

Variável 1: A fase dos "Índices"

Durante a primeira e terceira fases da execução do CHKDSK (a verificação dos ficheiros e a verificação dos descritores de segurança), o progresso do indicador de "percentagem concluída" é relativamente suave. O processamento dos segmentos de registo de ficheiro não utilizados não necessita de muito tempo, enquanto que descritores de segurança de grandes dimensões demoram mais tempo a ser processados mas, de uma maneira geral, a "percentagem concluída" reflecte com bastante exactidão o tempo real de que a fase necessita.

No entanto, esta relação percentagem/tempo não é necessariamente aplicável à segunda fase, quando o CHKDSK examina os índices (directórios NTFS). O tempo de processamento de um directório está intimamente ligado ao número de ficheiros e subdirectórios contidos nesse directório mas, durante esta fase, a "percentagem concluída" é baseada apenas no número de directórios que o CHKDSK tem de examinar. Não existe qualquer ajuste para o tempo que poderá demorar, por exemplo, o processamento de um directório com um número extremamente elevado de ficheiros e subdirectórios. A menos que todos os directórios existentes num volume contenham aproximadamente o mesmo número de ficheiros, a "percentagem concluída" apresentada durante esta fase não reflecte com fiabilidade o tempo necessário para a segunda fase.

Para complicar ainda mais a questão, se o CHKDSK necessitar de efectuar um procedimento inesperado, a segunda fase é aquela cuja execução é, normalmente, mais demorada.

Variável 2: A condição do volume

Vários factores relativos ao estado de um volume desempenham um papel importante na duração da execução de CHKDSK. Uma fórmula para prever o tempo necessário para a execução de CHKDSK num determinado volume teria de incluir variáveis tais como o número de ficheiros e directórios, o grau de fragmentação do volume em geral e da MFT em particular, o formato dos nomes de ficheiro (nomes longos, nomes com o formato 8.3 ou uma mistura dos dois) e a quantidade de danos reais que o CHKDSK terá de reparar.

Variável 3: Problemas de hardware

Os problemas de hardware também afectam a duração da execução de CHKDSK. As variáveis incluem a quantidade de memória disponível, a velocidade da CPU, a velocidade do disco, etc..

Variável 4: As definições de CHKDSK

Se não utilizar o parâmetro /R, a maior preocupação temporal numa plataforma de hardware específica é o número de ficheiros e directórios existentes no volume e não o tamanho absoluto desse volume.

Por exemplo, sem o parâmetro /R, a execução de CHKDSK num volume de 50 GB (gigabytes) com apenas um ou dois ficheiros de base de dados de grandes dimensões poderá demorar apenas alguns segundos. Se utilizar o parâmetro /R o CHKDSK tem de ler e verificar cada sector do volume, o que aumenta significativamente o tempo necessário para volumes de grandes dimensões. Por outro lado, a execução de CHKDSK mesmo num volume relativamente pequeno poderá demorar horas se esse volume tiver centenas de milhar ou até mesmo milhões de ficheiros pequenos, independentemente de especificar ou não o parâmetro /R.

Prever as necessidades de tempo de CHKDSK

Como pode ver, a execução de CHKDSK pode demorar entre vários segundos e vários dias, dependendo da situação específica. A melhor maneira de prever a duração da execução de CHKDSK num determinado volume é efectuar uma execução de teste, no modo só de leitura, durante um período de pouca utilização do sistema.

No entanto, deverá utilizar esta técnica com bastante cuidado, devido aos seguintes motivos:
  • No modo só de leitura, o CHKDSK termina antes de concluir as três fases se encontrar erros nas fases anteriores, apresentando a tendência de comunicar erros falsamente. Por exemplo, o CHKDSK poderá comunicar danos no disco se o NTFS modificar área de um disco enquanto este está a ser examinado pelo CHKDSK. Para efectuar uma verificação correcta o volume tem de estar estático e o único modo de garantir um estado estático é bloquear o volume. O CHKDSK só bloqueia o volume se especificar o parâmetro /F (ou o parâmetro /R, que implica /F). Poderá ter de executar o CHKDSK mais do que uma vez para que este conclua todas as fases no modo só de leitura.
  • O CHKDSK é bastante exigente em termos de utilização da CPU e do disco. O tempo que a execução de CHKDSK demora é afectado pela carga do sistema e pelo facto do CHKDSK ser executado online ou durante a sequência de arranque do Windows XP. O factor que causa o estrangulamento depende da configuração de hardware, mas uma elevada utilização da CPU ou uma elevada quantidade de E/S de disco durante a execução do CHKDSK no modo só de leitura irá aumentar o respectivo tempo de execução. Para além disso, o Autochk.exe é executado num ambiente diferente do Chkdsk.exe. A execução de CHKDSK através de Autochk.exe concede ao CHKDSK a utilização exclusiva dos recursos da CPU e de E/S, mas também impede que este utilize a memória virtual. Apesar de poder esperar que o Autochk.exe seja executado mais rapidamente do que o Chkdsk.exe, na realidade o Autochk.exe poderá demorar mais tempo se o computador tiver uma quantidade relativamente pequena de RAM disponível.
  • A correcção de danos aumenta o tempo necessário. No modo só de leitura, o CHKDSK só alcança a conclusão se não encontrar danos significativos. Se um disco apresentar apenas danos menores, poderá prever que a correcção desses problemas não aumente muito e tempo necessário para executar apenas o CHKDSK. No entanto, se o CHKDS localizar danos significativos (por exemplo, causados por uma falha de hardware grave), poderá prever que o tempo necessário para a execução de CHKDSK irá aumentar proporcionalmente ao número de ficheiros danificados que este terá de reparar. Em casos extremos, isto poderá aumentar o tempo necessário para a execução de CHKDSK em mais do dobro.

Apresentação dos parâmetros /C e /I

O parâmetro /C

O parâmetro /C indica ao CHKDSK para ignorar as verificações que detectam ciclos na estrutura de directórios. Os ciclos são um tipo muito raro de danos, em que um directório tem como "antecessor" ele próprio.

A utilização do parâmetro /C pode acelerar o CHKDSK cerca de 1 a 2 por cento, mas a utilização deste parâmetro também poderá manter "ciclos" de directórios num volume NTFS. Estes ciclos poderão ficar inacessíveis a partir do resto da árvore de directórios e alguns ficheiros poderão ficar órfãos no aspecto em que os programas Win32, incluindo os programas de cópia de segurança, poderão não conseguir vê-los.

O parâmetro /I

O parâmetro /I indica ao CHKDSK para ignorar as verificações que comparam entradas de directório com os segmentos de registo de ficheiro correspondentes. Com este parâmetro activo, a consistência interna das entradas de directório continua a ser verificada, mas estas entradas não são necessariamente consistentes com os dados armazenados nos segmentos de registo de ficheiro correspondentes.

É difícil prever o tempo que poupará utilizando o parâmetro /I. Normalmente, o parâmetro /I reduz o tempo de execução de CHKDSK 50 a 70 por cento, dependendo de factores tais como a relação entre ficheiros e directórios e a velocidade de E/S do disco relativamente à velocidade da CPU.

A utilização do parâmetro /I tem as seguintes limitações:
  • Poderá ter entradas de directório que referenciam segmentos de registo de ficheiro incorrectos. Neste caso, qualquer programa que tentar utilizar esta entrada irá encontrar erros.
  • Poderá ter segmentos de registo de ficheiro que não são referenciados por nenhuma entrada de directório (outro método pelo qual surgem ficheiros órfãos). Um ficheiro que, na realidade, está intacto, conforme representado pelo segmento de registo de ficheiro, poderá estar invisível para todos os programas Win32, incluindo programas de cópia de segurança.

O valor dos parâmetros /C e /I

Quando são detectados danos num volume, estas são as três opções básicas de resposta.

A primeira opção é não tomar qualquer acção. Num servidor essencial, que deva estar online 24 horas por dia, esta é frequentemente a opção necessária. A desvantagem é que danos relativamente pequenos poderão acumular-se e gerar danos graves. Consequentemente, considere esta opção apenas se a manutenção do servidor online for mais importante do que a protecção da integridade dos dados armazenados no volume danificado. Todos os dados existentes no volume deverão ser considerados como estando "em risco" até que o CHKDSK seja executado. A segunda opção é executar uma operação CHKDSK completa para reparar todos os dados do sistema de ficheiros e restaurar todos os dados do utilizador que seja possível recuperar através de um processo automatizado. No entanto, a execução de uma operação CHKDSK completa poderá originar um período de indisponibilidade de várias horas num momento inoportuno para um servidor essencial. A terceira opção é executar uma operação CHKDSK abreviada utilizando um ou ambos os parâmetros /C e /I, para reparar os tipos de danos que poderão originar problemas graves demorando muito menos tempo do que o necessário para uma operação CHKDSK completa.

No entanto, deve notar que uma execução abreviada de CHKDSK não repara todos os danos que poderão existir. Continuará a necessitar de executar uma operação CHKDSK completa no futuro, para garantir que todos os dados recuperáveis foram realmente recuperados.

Note também que o NTFS não garante a integridade dos dados do utilizador no caso da ocorrência de danos no disco mesmo que execute imediatamente uma operação CHKDSK completa. Poderão existir ficheiros que o CHKDSK não consegue recuperar e alguns ficheiros que o CHKDSK recupere poderão continuar com danos internos. Continua a ser de uma importância vital que proteja os dados essenciais através da execução de cópias de segurança periódicas ou de qualquer outro método robusto de recuperação de dados.
Expandir tudo | Reduzir tudo

Propriedades

Artigo: 314835 - Última revisão: 27 de novembro de 2007 - Revisão: 4.2
A informação contida neste artigo aplica-se a:
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Professional x64 Edition
Palavras-chave: 
kbinfo kbfea KB314835

Submeter comentários

 

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