Eu fiz uma imagem de disco completa de um HDD de laptop de 4 a 5 anos.
Esse disco rígido estava em um laptop que era carregado com frequência para lugares, então, ao longo dos anos, provavelmente experimentou estresse físico em algum grau.
O HDD ainda funciona intacto, mas o Guymager, o programa que usei, mostrou quantos setores defeituosos foram encontrados durante a captura daquela imagem; especificamente, 19 setores defeituosos.
Quais números de LBA e quais arquivos são afetados por esses 19 setores defeituosos?
Eu gostaria primeiro de criar uma lista de LBAs ruins e, em seguida, gostaria de listar todos os arquivos em cada um desses LBAs em uma etapa separada.
Use debugfs em ext2/3/4. Primeiro encontre o inode baseado no bloco:
em seguida, use este número de inode para consulta de arquivo:
O número do LBA e a detecção de blocos inválidos são totalmente independentes do sistema de arquivos. Encontrar arquivos é completamente dependente do sistema de arquivos. Não espere que uma única ferramenta funcione para todos os sistemas de arquivos.
Você pode usar
badblocks
para procurar blocos defeituosos, você pode usarsmartctl
para obter o(s) LBA(s) de blocos realocados ou blocos defeituosos detectados pelo firmware do disco rígido, e você pode usarfdisk
etc. fez por exemplobadblocks /dev/sda1
e LBAs.Conforme mencionado na outra resposta, você pode encontrar os arquivos afetados para ext2/ext3/ext3 com
debugfs
.Você pode usar o fibmap ioctl para encontrar o LBA do n-ésimo bloco de um determinado arquivo para todos os sistemas de arquivos, mas se você quiser encontrar o arquivo para um determinado LBA, isso provavelmente não é prático. Há também
filefrag
, que provavelmente usa este ioctl.Tenho certeza de que existem ferramentas forenses para FAT (e possivelmente até para NTFS) que encontram um arquivo para um determinado número de bloco, mas não consegui nomear nenhuma de improviso.
Editar
Pesquisando no Google encontra fatcat para análise forense de sistemas de arquivos FAT; parece que
-L
você pode obter um arquivo para um cluster específico (que você pode calcular a partir do LBA). Não tenho experiência com este programa. Pesquisando mais provavelmente vai aparecer mais programas desse tipo.NTFS, ext3, ext4
Se você copiou os dados de sua unidade com falha{ing,ed} com
ddrescue
, use oddrutility
que foi criado apenas para essa finalidade.Consegui com sucesso listar os arquivos NTFS afetados, dado um
ddrescue
mapfile em menos de 20 segundos.Ele grava seu arquivo de log no diretório atual.
A página vinculada menciona suporte para NTFS, ext3 e ext4.
btrfs
btrfs tem sua própria
scrub
função embutida.