capacidades do Chkdsk

7

Eu usei várias ferramentas diferentes para reparar discos e fiquei me perguntando se há uma lista do que exatamente o CHKDSK pode reparar? O MFT? Setor de inicialização? Setor de inicialização de backup? Clusters? Quais problemas comuns não podem corrigir?

    
por Bart Silverstrim 20.07.2009 / 17:18

3 respostas

8

CHKDSK (autochk.exe e chkdsk.exe, que compartilham dll's) é executado em alguns estágios (o abaixo é para volumes NTFS e um pouco simplificado):

Etapa 1 - "Verificando arquivos". Neste estágio, ele examina a Tabela de arquivos mestre (MFT). A MFT armazena os atributos de arquivo sobre cada arquivo e diretório, como o nome do arquivo, a data de criação , carimbos de hora, etc. em segmentos de registo de ficheiros (FRS, File Record Segments). O CHKDSK examina a consistência interna do FRS e também cria dois bitmaps (um mostrando o FRS e outro mostrando os clusters reais) que compara aos bitmaps armazenados no MFT.

Etapa 2 - "Verificando Índices". Neste estágio, ele olha para os índices (diretórios) no volume NTFS. Ele verifica cada um dos diretórios quanto à consistência interna e garante que todos os arquivos e diretórios contidos no FRS estejam contidos em um diretório. Se um arquivo não estiver em um diretório, ele será considerado "órfão" e o CHKDSK tentará colocá-lo na pasta indicada pelo FRS para esse arquivo ou colocá-lo em um diretório "encontrado". Ele também verifica se todos os arquivos / diretórios no diretório possuem uma entrada FRS correspondente. Se o diretório fizer referência a um arquivo ou diretório que não esteja lá, ele removerá essa entrada.

Etapa 3 - "Verificando descritores de segurança". Os descritores de segurança (contendo informações de segurança, como ACL e informações de auditoria) são armazenados na estrutura de arquivos , e nesta fase o CHKDSK analisa cada um deles para garantir que eles são a estrutura correta e que eles são internamente consistentes.

Etapa 4 - "Verificando Dados do Arquivo". Esse estágio ocorre apenas se o comando / R foi usado (ou a caixa foi verificada na GUI). Nesse estágio, o chkdsk tenta ler todos os setores no disco. Se / R foi especificado, ele já fez esse estágio uma vez para os metadados e os setores de dados de arquivo em estágios anteriores. Se encontrar um setor defeituoso, ele adicionará o cluster no qual o setor estava na lista de clusters defeituosos e tentará mover os dados para um bom setor (se não puder, preencherá o novo cluster com 0xFF).

Etapa 5 - "Verificando o espaço livre". Isso também ocorre somente se / R for usado. Nesse estágio, o CHKDSK tenta ler de setores livres e adiciona clusters defeituosos à lista de clusters defeituosos.

Espero que o acima responda à sua pergunta. Mais informações estão disponíveis em este KB , este whitepaper , e este guia .

Também deve ser observado que o NTFS possui recursos internos de recuperação de metadados na forma do log de transações NTFS. Este é um processo separado do CHKDSK. Se o sistema desligar inesperadamente ou travar, quando o Windows iniciar novamente, ele executará uma operação de recuperação NTFS usando as informações no arquivo de log NTFS. Esse processo é detalhado no whitepaper mencionado acima na seção "Recuperabilidade de Log de Transações do NTFS".

    
por 20.07.2009 / 18:38
2

CHKDSK é basicamente uma implementação NTFS paralela (para NTFS.SYS) que se preocupa com a "verificação de sanidade" da MFT e, se necessário, fazer reparos. Não estou ciente de qualquer especificação publicada abrangente sobre todas as verificações e "correções" que o CHKDSK executa em volumes NTFS ou FAT. Eu acho que a única especificação abrangente seria o código-fonte para o próprio CHKDSK. Você provavelmente pode juntar algo da documentação da Microsoft, mas duvido que você encontre uma descrição técnica de cada teste ou até mesmo uma lista de todos os testes.

Com relação ao setor de inicialização e ao setor de inicialização de backup (se aplicável ao tipo de arquivo que está sendo verificado), não acredito que qualquer versão do CHKDSK faça qualquer tipo de "reparo" no setor de inicialização. Se você esmagar seu setor de inicialização e perder o deslocamento da MFT, por exemplo, o CHKDSK não corrigirá isso.

O único tipo de "corrupção" que eu posso dizer com certeza que o CHKDSK não pode fazer nada seria corrupção dentro das extensões de dados do arquivo em si. O CHKDSK não faz nada com informações que não sejam metadados.

    
por 20.07.2009 / 17:34
1

Há um whitepaper antigo da Microsoft sobre o CHKDSK disponível.

Gerenciamento do Windows 2000 Chkdsk

    
por 20.07.2009 / 18:12