DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 187941 - Última revisão: quinta-feira, 19 de janeiro de 2006 - Revisão: 4.1

Para obter uma versão deste artigo para o Microsoft Windows XP, consulte 314835  (http://support.microsoft.com/kb/314835/PT-BR/ ) .

Nesta página

Sumário

No Windows NT versão 4.0 Service Pack 4 (SP4) e no Windows 2000, duas novas opções foram adicionadas ao Chkdsk.exe. Elas permitem que os usuários gerenciem melhor o tempo de inatividade que acontece ao executar o CHKDSK ou o AUTOCHK.

As opções adicionadas ao Windows NT 4.0 SP4 e ao Windows 2000 são /C e /I, e são válidas somente quando a unidade de destino tem o formato NTFS. Cada opção direciona a rotina CHKDSK para ignorar determinadas ações que seriam necessárias para validar a integridade de estruturas de dados em NTFS.

Aviso A Microsoft não recomenda a interrupção do processo CHKDSK quando ele for usado com a opção /f e não garante a integridade do disco se o programa CHKDSK for interrompido.

Mais Informações

Chkdsk.exe é a interface da linha de comando para um programa que verifica a integridade lógica de um sistema de arquivos no Windows. Quando o CHKDSK encontra inconsistências lógicas, executa ações para reparar os dados do sistema de arquivos, contanto que não estejam no modo somente leitura.

O código que executa efetivamente a verificação quando o CHKDSK é executado online está na DLLs de utilitários como Untfs.dll e Ufat.dll. As rotinas de verificação ocasionadas por Chkdsk.exe são as mesmas ocasionadas quando um volume é verificado por meio da interface gráfica do usuário (GUI) fornecida pelo Windows Explorer ou pelo Administrador de Unidades. Quando o CHKDSK está agendado para ser executado na reinicialização, por outro lado, o módulo binário que contém o código de verificação é Autochk.exe. O Autochk.exe é um aplicativo nativo do Windows que é executado cedo o suficiente na seqüência de inicialização do sistema, para que não tenha o benefício de Memória Virtual ou outros serviços do Win32. O Autochk.exe gera o mesmo tipo de resultado textual que as DLLs de utilitários ocasionadas por Chkdsk.exe. Mas além de exibir esse resultado na tela durante o processo de inicialização, o Autochk.exe também efetua log em um evento para o log de eventos do aplicativo para o sistema que contiver tanto resultado textual quanto couber no buffer de dados do log do evento.

Como o Autochk.exe e o código de verificação nas DLLs de utilitários usadas pelo Chkdsk.exe são baseados no mesmo código de domínio, ambos serão citados, genericamente, como "CHKDSK" até o final desse artigo. Da mesma maneira, com nesse artigo a preocupação é apenas com as alterações no comportamento de CHKDSK em relação a volumes NTFS, deve-se compreender que, ao dizer "O CHKDSK faz isso e aquilo", significa o seguinte: "O CHKDSK faz isso e aquilo quando executado em um volume NTFS".

Como o uso das opções /C e /I pode resultar em um volume que permanece corrompido mesmo após o CHKDSK ter sido completado, o uso dessas opções não é recomendado, exceto em situações onde o tempo de inatividade do sistema deve ser mantido no mínimo. Essas opções foram criadas para serem usadas por usuários com volumes muito grandes e que necessitam de flexibilidade para gerenciar o tempo de inatividade ocasionado quando o CHKDSK precisa ser executado em tais volumes.

Para entender quando pode ser adequado usar essas opções, é importante ter um entendimento básico de algumas das estruturas NTFS internas, os tipos de corrompimento que podem acontecer, quais ações o CHKDSK efetua quando verifica um volume e quais são as potenciais conseqüências ao contornar os passos comuns de verificação do CHKDSK.

A atividade do CHKDSK é dividido em três "etapas" principais, durante as quais examina todos os "metadados" do volume e uma quarta etapa opcional. Os Metadados são "dados sobre dados". É o cabeçalho do sistema de arquivos, por assim dizer, usado para manter o controle sobre todos os arquivos do volume. Os metadados relatam quais unidades de alocação constituem os dados para um determinado arquivo, quais estão livres, quais contêm setores ruins e assim por diante. O "conteúdo" de um arquivo, por outro lado, é chamado de "dados do usuário". O NTFS protege seus metadados por meio do uso de um log de transações. Os dados do usuário não são tão protegidos.

Durante a sua primeira etapa, o CHKDSK exibe uma mensagem na tela dizendo que está verificando arquivos e a conta completa de 0 a 100 por cento. Durante essa fase, o CHKDSK examina cada segmento de registro de arquivo (FRS) na Tabela de arquivos mestre (MFT) do volume. Todo arquivo e diretório em um volume NTFS é identificado de forma exclusiva por um FRS específico na MFT e a porcentagem completa que o CHKDSK exibe durante essa fase é a porcentagem da MFT que foi verificada. Durante essa etapa, o CHKDSK examina cada FRS quantoà consistência interna e cria dois bitmaps, um representando quais FRSs estão sendo usados e o outro representando quais clusters do volume estão sendo usados. Ao final dessa fase, o CHKDSK sabe qual espaço está sendo usado e qual está disponível, tanto na MFT quanto no volume como um todo. O NTFS mantém controle sobre essas informações em bitmaps próprios que são armazenados no disco, permitindo que o CHKDSK compare seus resultados com bitmaps armazenados de NTFS. Se houver discrepâncias, são anotadas no resultado do CHKDSK. Por exemplo, se for descoberto que um FRS que estava sendo usado está corrompido, os clusters do disco que antes estavam associados a esse FRS serão marcados como disponíveis no bitmap do CHKDSK, mas serão marcados como "em uso", de acordo com o bitmap de NTFS.

Durante a sua segunda etapa, o CHKDSK exibe uma mensagem na tela que diz que está verificando arquivos e a conta completa de 0 a 100 por cento novamente. Durante essa fase, o CHKDSK examina cada um dos índices do volume. Os índices são basicamente diretórios NTFS e a porcentagem completa que o CHKDSK exibe durante essa fase é a porcentagem do número total de diretórios do volume que devem ser verificados. Durante essa etapa, o CHKDSK examina cada diretório do volume para verificar a consistência interna e verifica também se todos os arquivos e diretórios representados por um FRS na MFT são citados pelo menos por um diretório. Ele também confirma se todos os arquivos ou subdiretórios citados em cada diretório existem mesmo como um FRS válido na MFT e procurar por referências circulares de diretórios. Finalmente, confirma se todos os diversos registros de hora e informações de tamanho dos arquivos associados estão atualizados nas listagens de diretórios para esses arquivos. Ao final dessa fase, o CHKDSK se certificou de que não há arquivos "órfãos" e de que todas as listagens de diretórios representam arquivos legítimos. Um arquivo órfão é aquele para o qual existe um FRS legítimo, mas que não está listado em nenhum diretório. Quando um arquivo órfão é encontrado, geralmente pode ser restaurado ao seu diretório correto, contanto que esse diretório ainda exista. Se o diretório que deveria conter o arquivo não existir mais, o CHKDSK criará um no diretório raiz e nele colocará o arquivo. Se forem encontradas listagens de diretórios que citem FRSs que não estiverem mais sendo usados ou que estiverem sendo usados mas não corresponderem ao arquivo listado no diretório, a entrada do diretório é simplesmente removida.

Durante a sua terceira etapa, o CHKDSK exibe uma mensagem na tela que diz que está verificando descritores de segurança e a conta completa de 0 a 100 por cento novamente. Durante essa fase, o CHKDSK examina cada um dos descritores de segurança associados a cada um dos arquivos e diretórios do volume. Os descritores de segurança contêm informações sobre o proprietário do arquivo ou do diretório, sobre a permissão de NTFS para o arquivo ou diretório e informações de auditoria para o arquivo ou o diretório. A completa porcentagem nesse caso, é a porcentagem do número de arquivos e diretórios do volume. O CHKDSK verifica se a estrutura de cada descritor de segurança está bem formada e é consistente internamente. Ele não verifica se os usuários ou os grupos listados realmente existem ou se as permissões concedidas estão corretas de alguma maneira.

A quarta etapa do CHKDSK é ocasionada somente se for usada a opção /R. A opção /R é usada para localizar setores ruins no espaço livre do volume. Quando /R é usada, o CHKDSK tenta ler todos os setores do volume para confirmar se o setor pode ser usado. Os setores associados aos metadados são lidos durante o curso normal da execução de CHKDSK mesmo quando /R não for usada. Os setores associados aos dados do usuário são lidos durante as fases iniciais do CHKDSK, contanto que seja especificado /R. Quando um setor ilegível for encontrado, o NTFS adicionará o cluster que contém o setor à lista de clusters ruins e, se o cluster estava sendo usado, alocará um novo cluster para fazer o trabalho do anterior. Se um driver de disco que tolera falhas estiver sendo usado, os dados são recuperados e gravados no cluster recém-alocado. Caso contrário, o novo cluster é preenchido com um padrão de bytes 0xFF. Quando o NTFS encontra setores ilegíveis durante o curso normal de operação, também os remapeará da mesma maneira. Portanto, a opção /R geralmente não é essencial, mas pode ser usada como um mecanismo conveniente para escanear todo o volume se houver a suspeita de que um disco tem setores ruins.

Os parágrafos anteriores dão apenas uma estrutura ampla do que o CHKDSK está realmente fazendo para verificar a integridade de um volume NTFS. Podem ser feitas diversas verificações específicas durante cada etapa e diversas verificações rápidas entre as que não foram mencionados. Em vez disso, isso é simplesmente uma estrutura das facetas mais importantes da atividade do CHKDSK como base para a seguinte explicação em respeito ao tempo necessário para executar o CHKDSK e o impacto das novas opções fornecidas no SP4.

Durante a primeira e a terceira fase do CHKDSK, o indicador da porcentagem completa avança de maneira relativamente suave. Pode haver certa desigualdade na velocidade com que essas fases progridem. Os FRS que não estiverem em uso necessitam de menos tempo para serem processados do que os que estão sendo usados. Descritores de segurança muito grandes demoram mais para serem processados do que os menores e assim por diante. Mas, de maneira geral, a porcentagem completa que é exibida é uma representação um tanto precisa do tempo real necessário para essa fase.

O mesmo não é necessariamente verdadeiro para a segunda fase do CHKDSK. O tempo necessário para processar um diretório está intínsicadamente ligado ao número de arquivos ou subdiretórios listados nesse diretório. Mas a porcentagem completa relacionada durante essa fase é a porcentagem do número de diretórios a serem examinados sem levar em consideração que alguns diretórios podem demorar muito mais para serem processados. Por exemplo, em um volume com muitos diretórios pequenos e um outro muito grande, a completa porcentagem pode progredir rapidamente de 0 a 10 por cento e parecer travar por um período longo antes de progredir de 10 a 100 por cento completos. Portanto, a menos que haja certeza de que os diretórios em um volume sejam praticamente uniformes em relação ao número de arquivos que eles contêm, a "porcentagem completa" exibida durante essa fase não pode ser considerada como uma representação confiável do tempo restante real para essa fase.

Para piorar a situação para quem for pego no meio de um CHKDSK inesperado, a segunda fase do CHKDSK é a que geralmente demora mais para ser executada.

Neste ponto, deve estar claro que diversos fatores relacionados ao estado de um volume influenciam a duração de execução do CHKDSK. Uma fórmula para prever o tempo necessário para executar o CHKDSK em um determinado volume teria de levar em consideração tais fatores como o número de arquivos e diretórios, o grau de fragmentação do volume em geral e também da MFT em si, se os arquivos têm nomes longos e nomes com formato 8.3, e também quanto corrompimento precisa ser corrigido. Isso sem falar nas questões de hardware, como a quantidade de memória do sistema, a velocidade da CPU, a velocidade do disco ou dos discos e assim por diante.

Em vez de tentar prever quanto tempo levará para executar o CHKDSK, basta dizer que pode levar desde alguns poucos segundos a vários dias - dependendo da sua situação. A menos que /R seja usado, para uma determinada plataforma de hardware a maior preocupação é o número de arquivos e diretórios e não o tamanho total do volume. Ou seja, um volume de 50 GB com um ou dois arquivos grandes de banco de dados fará com que o CHKDSK seja executado em segundos, contanto que não se especifique /R. Se /R for especificado, o CHKDSK terá de ler cada setor do volume, o que faz demorar consideravelmente em volumes grandes. Por outro lado, mesmo um volume relativamente pequeno pode levar horas para executar o CHKDSK se tiver centenas de milhares ou milhões de arquivos pequenos - sendo /R especificado ou não.

A melhor maneira para prever quanto tempo levará para que o CHKDSK seja executado em um determinado volume é realmente fazendo uma execução de teste em modo somente leitura durante um período de baixo uso do sistema. No entanto, deve-se tomar cuidado ao usar essa técnica por três motivos:
  • O CHKDSK somente leitura abortará antes de completar as três fases se encontrar erros nas primeiras fases e estiver propenso a relatá-los erroneamente quando estiver em modo somente leitura. Ou seja, o CHKDSK pode relatar que um disco está corrompido mesmo quando não existir nenhum corrompimento. Isso pode acontecer se o NTFS modificar áreas do disco em nome de alguma atividade de programa que o CHKDSK estiver examinando ao mesmo tempo. Para verificar um volume corretamente, o volume precisa estar em estado estático e a única maneira para garantir esse estado é bloqueá-lo. O CHKDSK somente bloqueia o volume quando /F ou /R (que implica em "F") for especificado. Portanto, talvez seja necessário executar o CHKDSK mais de uma vez para que ele complete todas as etapas em modo somente leitura.
  • O carregamento do sistema e se o CHKDSK estiver sendo executado online ou durante a seqüência de inicialização do Windows NT pode ter impacto no tempo necessário para executar o CHKDSK. O CHKDSK consome recursos tanto de CPU quanto de disco. Qual fator se torna o gargalo dependerá da situação específica do hardware, mas, se houver um uso elevado da CPU ou E/S de disco acontecendo no mesmo momento que o CHKDSK em modo somente leitura, isso resultará em um tempo maior. Além disso, o Autochk.exe é executado em um ambiente diferente de Chkdsk.exe. Se por um lado executar o CHKDSK por meio do Autochk.exe permite o uso exclusivo da CPU e de recursos de E/S ao CHKDSK, por outro lado também priva o CHKDSK do benefício de memória virtual. Portanto, mesmo esperando-se que o Autochk.exe fosse executado mais rapidamente que o Chkdsk.exe, os sistemas com quantias relativamente pequenas de RAM podem fazer com que Autochk.exe demore mais que Chkdsk.EXE.
  • O conserto de corrompimentos aumenta o tempo necessário. Uma execução de CHKDSK somente leitura pode ser completada somente se não for encontrado nenhum corrompimento insignificativo. Se um disco tiver apenas corrompimentos mínimos, o tempo para arrumar os problemas será apenas um pouco mais longo do que o necessário para CHKDSK somente leitura. Mas se houver um dano maior, que pode resultar de um dano físico grave de cabeça ou outra falha grande de hardware, o tempo necessário para executar o CHKDSK pode aumentar em proporção ao número de arquivos danificados. Em casos extremos, isso pode dobrar o tempo necessário para executar o CHKDSK.

Como introduzir as Opções /C e /I

A opção /C direciona o CHKDSK para pular as verificações que detectam ciclos na estrutura do diretório. Os ciclos são uma forma muito rara de corrompimento na qual um subdiretório tem a si próprio como seu antecessor. Usar a opção /C pode aumentar a velocidade do CHKDSK em cerca de 1 a 2 por cento. Usar a opção /C também pode deixar "loops" de diretório em um volume NTFS. Tais loops podem ser inacessíveis pelo restante da árvore do diretório e podem resultar em um número de arquivos se tornarem órfãos no sentido de não poderem ser vistos por aplicativo algum do Win32 - inclusive pelos aplicativos de backup.

A opção /I direciona o CHKDSK para pular verificações que comparam entradas de diretório aos FRSs que correspondem a essas entradas. Além disso, enquanto as entradas do diretório ainda estiverem sendo verificadas para se ter certeza de que não sejam auto-consistentes, não são necessariamente consistentes com os dados armazenados nos seus FRSs mesmo após CHKDSK ter sido executado usando essa opção. O uso da opção /I resulta normalmente no tempo de execução do CHKDSK ser reduzido em 50 a 70 por cento. O quanto mais rápido ficará o CHKDSK, exatamente, usando essa opção dependerá de fatores como a razão entre arquivos e diretórios, assim como a velocidade relativa de E/S de disco versus a velocidade da CPU e é, portanto, difícil de prever. O uso da opção /I pode resultar em entradas remanescentes do diretório que se referem ao FRS incorretos ou nos FRS remanescentes que não são citados por nenhuma entrada do diretório. Esse último é uma outra forma de deixar arquivos órfãos. O arquivo representado pelo FRS pode estar intacto de todas as formas exceto pelo fato de que é invisível a todos os aplicativos do Win32 - incluindo os aplicativos de backup. No primeiro caso, os arquivos podem parecer existir; mas ainda assim os aplicativos encontram erros ao tentar acessá-los.

Quando um corrompimento de disco é encontrado em um volume, você tem três alternativas básicas

  • Não faça nada. Para um servidor de missão crítica que, espera-se, deve ficar 24 horas por dia online, essa geralmente é a opção necessária. A desvantagem dessa opção é que os corrompimentos relativamente pequenos podem sofrer do efeito "bola de neve", aumentando o corrompimento se não for reparado o quanto antes após ser detectado. Portanto, essa opção somente deve ser considerada quando mantiver um sistema em funcionamento for mais importante do que a integridade dos dados armazenados no volume corrompido, porque todos os dados do volume corrompido devem ser considerados como "em risco" até que o CHKDSK seja executado.
  • Execute um CHKDSK completo. Essa opção repara todos os dados do sistema de arquivos, restaurando todos os dados do usuário que podem ser recuperados por meio de um processo automatizado. A desvantagem dessa opção é que um CHKDSK completo necessita de várias horas de inatividade para um servidor de missão crítica em um momento inoportuno.
  • Execute um CHKDSK abreviado usando alguma combinação das opções /C e /I. Essa opção repara os tipos de corrompimento que podem sofrer do efeito "bola de neve", criando problemas maiores em menos tempo do que seria necessário para um CHKDSK completo, mas não repara todo o corrompimento que pode existir. Um CHKDSK completo ainda será necessário futuramente para garantir que todos os dados que podem ser recuperados tenham sido recuperados.
Deve-se ressaltar que o NTFS não garante a integridade dos dados do usuário que venham depois da ocorrência de um corrompimento de disco - mesmo quando um CHKDSK completo é executado imediatamente após ter sido detectado um corrompimento. Portanto, pode haver arquivos que o CHKDSK não consiga recuperar. Além disso, os arquivos recuperados podem estar corrompidos internamente mesmo após o CHKDSK ter sido executado. Portanto, é muito importante que dados de missão crítica sejam protegidos por meio de um regime de backups periódicos ou outra metodologia robusta de recuperação de desastres.

A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbfea kbfix kbinfo KB187941
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store