Como determino qual arquivo ocupa um determinado setor?


34

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


1
o editor de setor da roadkil pode seguir parte do caminho, simplesmente não lista os programas.
barlop

Consulte também Como descobrir qual arquivo está em um setor específico - a mesma pergunta, mas para um sistema de arquivos NTFS acessado no Linux.
sleske

Respostas:


22

Aqui está o processo usando 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. Discos abertos somente leitura sempre que possível.

  1. Como você já possui os locais defeituosos do setor, é possível abrir a unidade no WinHex diretamente ( botão da barra de ferramentas "Abrir disco" ) e navegar até o setor para visualizar os dados ( botão "Ir para o setor" da barra de ferramentas). Supondo que os locais do seu setor sejam 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 esse setor e seu endereço de setor relativo correspondente .

  2. Se a partição que você identificou for uma partição NTFS ou FAT, podemos abrir a partição diretamente ( "Abrir disco" novamente). Isso abrirá a partição em uma nova guia, para que você possa alternar conforme necessário. Na guia da partição, use a função "Ir para o setor" novamente, mas desta vez insira o setor traduzido (o "setor relativo" identificado na visualização da unidade).

    Agora, no painel esquerdo, você deve ver uma seção em "Alocar espaço visível na unidade" . Abaixo disso, estão o número do cluster, o setor físico, o setor lógico (relativo) e o nome do arquivo se esse setor realmente pertencer a um arquivo.

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


1
a versão para download afirma ser uma versão de avaliação, mas parece muito capaz. Não sei ao certo qual é o período de teste. veja aqui as opções de licença: x-ways.net/winhex/order.html
quack quixote

O WinHex foi a bomba .... Encontrou quais arquivos foram afetados pelos setores defeituosos (setores absolutos da varredura de superfície) em minutos. Tutorial incrível. Graças Eu votaria u up "quack quixote", mas eu não tenho a 15 reputação necessária ......

A interface do usuário pode ser forçada a revelar essas informações sem ler o setor? Estou executando a recuperação em um disco que desliga (desanexa e desliga) quando leio determinados setores.
sheldonh

o site da winhex aparece inativo / indisponível ( i.imgur.com/1FAX5cN.png ), tente a solução nfi abaixo. direto e simples. livre. "resposta imediata";)
Costin Gușă 25/09/15

21

Tente nfi.exe - Utilitário de informações do setor de arquivos do Windows NT File System (NTFS). Faça o download das 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.

Observe 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)

Eu entrei apenas para fazer um voto positivo. isso deve ser marcado como resposta!
Costin Gué

Se você não sabe NT-device-path, pode tentar encontrá-lo dd --list. (Atenção aos usuários com ferramentas Unix em PATH: o ddaqui é C:\WINDOWS\system32\dd.exe, você pode precisar usar o caminho completo)
usuário

O Windows 10 não possui esse utilitário no system32. c:\Windows\System32>dd.exe 'dd.exe' is not recognized as an internal or external command, operable program or batch file.
Aen Sidhe

1
O link para download no site da Microsoft está morto
bacia

1
Também pode ser encontrado na máquina de wayback web.archive.org/web/20150329185738/http://…
mkey

8

A maioria dos programas de desfragmentação mostra um mapa de disco exibindo todos os clusters no disco nos quais você pode clicar (procurar os marcados como inválidos ) para exibir os arquivos localizados nesse cluster.

Como Walter disse, qualquer combinação de disco e sistema operacional da década passada mais ou menos garantirá a realocação automática de arquivos de setores defeituosos (o firmware da unidade geralmente lida com isso, mas ferramentas de disco como chkdskou desfragmentadoras também costumam fazer isso).


Desfragmentador:

insira a descrição da imagem aqui

Desfragmentar um arquivo:

insira a descrição da imagem aqui

Voto:

insira a descrição da imagem aqui


Parece promissor, vou tentar.
ChrisWue

6

O 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, não parece haver uma maneira de exibir os nomes dos arquivos do sistema.

Janela principal do DiskView Arquivo de sistema do DiskView



É por isso que eu a publiquei como uma resposta separada, porque é uma ferramenta criada especificamente para esse fim, por isso responde à pergunta, mas é limitada (ainda uso extensivamente o FAT32), por isso não é o objetivo principal. toda solução. (Ainda?)
Synetech 5/13/13

5

Você pode usar fsutilno prompt de comando do administrador. Subcomando volumetem subcomando querycluster. Consulte Referência da 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

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 local na unidade. isso geralmente acontece antes que os dados desse setor se tornem completamente ilegíveis.

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

de homem hdparm (8)

Observe também que o sinalizador --repair-sector pode ser usado para restaurar (quaisquer) setores defeituosos quando não forem mais necessários, incluindo setores genuinamente ruins (a unidade provavelmente os remapeará para uma nova área na mídia).

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


Tenho certeza de que a realocação acontece na gravação e não na leitura. Os dados SMART da unidade parecem confirmar isso. O número de setores pendentes é alto (maior que 0) enquanto a Contagem de realocação de setor é 0. Para mim, isso significa: Existem setores defeituosos marcados para realocação, mas eles ainda não foram realocados.
precisa saber é o seguinte

você já tentou o CHKDSK? en.wikipedia.org/wiki/CHKDSK
Baarn

veja a opção / r
Baarn

não é possível obter informações sobre os arquivos armazenados nesse setor.
Baarn

2

O DiskExplorer do RunTime permite examinar uma unidade por setor. É payware (US $ 70 para a versão NTFS), mas é grátis para experimentar. Eles possuem versões para NTFS, FAT e Linux (ext2 / 3).

texto alternativo


Isso parecia promissor, mas infelizmente não funciona. O DiskExplorer exibe "Entrada MFT inválida" para todos os setores da unidade.

Eu espero que exista uma etapa de configuração que você esteja perdendo, se isso mostrar para todos os setores, mas eu não uso essa ferramenta há muito tempo, por isso não posso fornecer instruções diretas com ela. adicionarei outra resposta com uma ferramenta separada; talvez alguém participe com o uso adequado deste.
quack quixote

Não é um problema de configuração, é que o Disk Explorer é muito complicado e difícil de usar. Não é automático o suficiente. (O antigo programa DOS do Norton Disk Doctor era semelhante, mas muito mais fácil de usar, porque era lido e ajustado automaticamente às estruturas do sistema de arquivos. Pena que não suporta NTFS e foi descontinuado.)
Synetech

0

Eu sei que o tópico é antigo, mas para o registro de todos que têm esse problema, há uma maneira de verificá-lo no linux. Pode-se sempre usar algum linux ao vivo no cd / usb stick, como slax, que é super fácil de executar. Enfim, de volta aos negócios.

Eu tinha encontrado hoje alguns logs inteligentes de deamon com avisos de setores ilegíveis e decidi investigar isso. Após a pesquisa, eu finalmente corro (# é um prompt indicando privilégios de root, o sudo pode ser usado se um estiver sendo executado como usuário comum):

# smartctl -H /dev/sda2

SMART overall-health self-assessment test result: PASSED

O que indica que essa unidade é um pouco saudável, o que é bom. Mas eu segui e investiguei mais e corri badblocks.

# badblocks -v /dev/sda2 > ~/log/sda2.badsectors
# cat ~/log/sda2.badsectors

271521948

Por isso houve algum badblock que eu queria saber qual arquivo que pertence e descobriram que isso poderia ser feito com debugfs, o problema era que minha partição NTFS foi assim que eu usei ntfstools que é a chave:

# ntfscluster -s 271521948 /dev/sda2 > 271521948.secinfo 2>&1
# cat 271521948.secinfo | grep -v "extent"

Searching for sector 271521948
Inode 142427 /tmp/dl/setup_torch_2.exe/$DATA
* one inode found

/ grep -v "extent"é livrar-se de muitas informações inúteis exibidas por ntfscluster/

Então, no caso de NTFS, tudo o que precisamos é ntfscluster -s $SECTOR.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.