Como eu determino qual arquivo ocupa um determinado setor?

31

Eu tenho um disco rígido com três setores defeituosos. Eu sei os números do setor e o computador ainda pode inicializar no Windows. Eu quero executar o reparo do setor de uma ferramenta de diagnóstico do HDD do fabricante, mas antes de fazer isso, gostaria de saber quais arquivos são afetados. Existe uma maneira de descobrir quais arquivos ou arquivos estão ocupando esses setores?

    
por Jens Erat 19.01.2010 / 16:04

7 respostas

20

Este é o processo que usa o WinHex , um prático editor hexadecimal que pode examinar e editar unidades diretamente. Tenha muito cuidado; essa ferramenta pode danificar seu sistema se usada de forma inadequada. Abra discos somente leitura sempre que possível.

  1. Já que você já tem os locais ruins do setor, é possível abrir a unidade no WinHex diretamente ( "Abrir disco" botão da barra de ferramentas) e navegar até o setor para visualizar os dados ( " Vá para o botão de barra de ferramentas Sector "). Supondo que os locais do seu setor são endereços do setor físico, você precisa abrir sua unidade física nesta etapa.

    Isso não identificará o arquivo diretamente, mas o painel esquerdo deve identificar a partição que contém este setor e seu endereço relativo do setor correspondente.

  2. Se a partição que você identificou for uma partição NTFS ou FAT, podemos abrir a partição diretamente ( "Open Disk" novamente). Isso abrirá a partição em uma nova guia, para que você possa alternar conforme necessário. Na aba da partição, use novamente a função "Go to Sector" , mas desta vez introduza o setor traduzido (o "setor relativo" identificado na visão da unidade). / p>

    Agora, no painel esquerdo, você verá uma seção sobre "Alocação de espaço em disco visível" . Sob esse é o cluster #, setor físico #, setor lógico (relativo) # e o nome do arquivo se este setor realmente pertencer a um arquivo.

Se essas etapas não fornecerem uma resposta imediata, seus setores defeituosos talvez não estejam em uso. Se os resultados não forem claros, talvez você precise fazer mais pesquisas para encontrar sua resposta.

    
por 21.01.2010 / 08:45
18

Tente nfi.exe - Utilitário de Informações do Setor de Arquivos do Sistema de Arquivos do Windows NT (NTFS). Faça o download de Ferramentas de suporte OEM da Microsoft, fase 3 SR2 .

> nfi.exe
Dumps information about an NTFS volume, and optionally determines
which volume and file contains a particular sector.

Usage: nfi drive-letter [logical-sector-number]

        Drive-letter can be a single character or a character followed
        by a colon (i.e., C or C: are acceptable).

        Logical-sector-number is a decimal or 0x-prefixed hex
        number, specifying a sector number relative to the volume
        whose drive letter is given by drive-letter. If not
        specified, then information about every file on the volume
        is dumped.

   nfi NT-device-path physical-sector-number

        Determines which volume a given physical sector on a drive is
        within, and then which file on the volume it is in.

        NT-device-path is the NT-style path to a physical device.
        It must not include a partition specification.

        Physical-sector-number is a decimal or 0x-prefixed hex
        number, specifying a sector number relative to the physical
        drive whose device path is given by NT-device-path.

    nfi full-win32-path

        Dumps information about a particular file. full-win32-path
        must start with a drive letter and a colon.

Note que você deve omitir o "\\?" prefixo do caminho do dispositivo de bloco. Exemplo:

C:\Users\admin\Downloads>nfi \Device\Harddisk0\DR0 28521816
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.


***Physical sector 28521816 (0x1b33558) is in file number 5766 on drive C.
\IMAGES\win7HDD.vhd
    $DATA (nonresident)
        physical sectors 32863720-34098663 (0x1f575e8-0x2084de7)
        physical sectors 28519912-32863719 (0x1b32de8-0x1f575e7)
        physical sectors 25727944-26291143 (0x18893c8-0x1912bc7)
        physical sectors 95163976-115106143 (0x5ac1648-0x6dc615f)
    
por 31.12.2012 / 21:53
8

A maioria dos programas de desfragmentação mostra um mapa de disco exibindo todos os clusters no disco que você pode clicar (procure os marcados como bad ) para visualizar o (s) arquivo (s) localizado (s) naquele cluster .

Como Walter disse, qualquer combinação de disco e sistema operacional da última década fará com que os arquivos de setores defeituosos sejam realocados automaticamente (o firmware da unidade normalmente lida com isso, mas ferramentas de disco como chkdsk ou desfragmentadores normalmente também ).


Defraggler:

Defrag-a-File:

Vopt:

    
por 25.01.2012 / 22:02
6

DiskView da Sysinternals executa exatamente esta função: para exibir um mapa de disco da unidade e permitir que você veja quais arquivos ocupam quais clusters.

Infelizmente, parece não haver uma maneira de exibir os nomes dos arquivos do sistema.

    
por 09.02.2012 / 02:51
3

até onde eu sei quando uma unidade atinge um certo número de erros de leitura em um setor, ela é marcada como ruim e seu conteúdo é copiado para outro lugar na unidade. isso geralmente acontece antes que os dados desse setor fiquem completamente ilegíveis.

Eu tento descobrir uma fonte para isso, apenas leio ontem, mas não consigo lembrar onde.

de homem hdparm (8)

Note also that the --repair-sector flag can be used to restore (any) bad sectors when they are no longer needed, including sectors that were genuinely bad (the drive will likely remap those to a fresh area on the media).

Conclusão: você não precisa se preocupar com setores defeituosos, o firmware dos discos rígidos faz isso para você. A única coisa que você precisa fazer é obter uma nova unidade antes que haja muitas delas e sua unidade falhe.

    
por 25.01.2012 / 21:38
3

Você pode usar fsutil do prompt de comando do administrador. O subcomando volume tem querycluster subsubcommand. Consulte Referência de linha de comando do Windows Fsutil .

O Fsutil usa o número do cluster na unidade lógica como argumento de entrada, em vez do número do setor. Mas deve ser fácil calcular esse número:
cluster # = (absolute_sector - start_of_partition_sector) / setores_per_cluster.

Exemplo de saída:

c:\tmp> fsutil volume querycluster C: 5235
Cluster 0x0000000000001473, verwendet von
 ----D \Program Filesx86)\LibreOffice 4\program\fwilo.dll::$DATA
    
por 02.03.2017 / 15:13
2

O DiskExplorer do RunTime permite que você examine uma unidade por setor. É payware (US $ 70 para a versão NTFS), mas livre para tentar. Eles têm versões para NTFS, FAT e Linux (ext2 / 3).

    
por 19.01.2010 / 16:28