Список плохих блоков и затронутых файлов

Я сделал полный образ диска с жесткого диска ноутбука от 4 до 5 лет.

Этот жесткий диск находился в ноутбуке, который часто носили в разных местах, поэтому с годами он, вероятно, в некоторой степени испытывал физические нагрузки.

Жесткий диск по-прежнему работает без изменений, но программа Guymager, которую я использовал, показала, сколько плохих секторов было обнаружено при захвате этого изображения; в частности, 19 плохих секторов.

Какие номера LBA и какие файлы затронуты этими 19 плохими секторами?

Сначала я хотел бы создать список плохих LBA, а затем я бы хотел перечислить каждый файл на каждом из этих LBA на отдельном этапе.

Что работает перечисление блоков на всех дисках независимо от файловых систем? (низкий уровень). А что работает с FAT и NTFS?

Номер LBA и обнаружение сбойных блоков полностью не зависят от файловой системы. Поиск файлов полностью зависит от файловой системы. Не ожидайте, что один инструмент будет работать для всех файловых систем.

Вы можете использовать badblocks для сканирования на наличие плохих блоков, вы можете использовать smartctl для получения LBA перераспределенных блоков или smartctl блоков, обнаруженных встроенным программным обеспечением жесткого диска, и вы можете использовать fdisk и т. Д., Если вы хотите рассчитать относительные числа разделов (если вы сделали, например, badblocks /dev/sda1 и LBA.

Как упоминалось в другом ответе, вы можете найти затронутые файлы для ext2 / ext3 / ext3 с помощью debugfs .

Вы можете использовать fibmap ioctl, чтобы найти LBA n-го блока данного файла для всех файловых систем, но если вы хотите найти файл для данного LBA, это, вероятно, не практично. Есть также filefrag , который, вероятно, использует этот ioctl.

Я уверен, что существуют судебно-медицинские инструменты для FAT (и, возможно, даже для NTFS), которые находят файл по заданному номеру блока, но я не могу назвать ни одного из них.

редактировать

Googling находит fatcat для криминалистического анализа файловых систем FAT; кажется, с -L вы можете получить файл для конкретного кластера (который вы можете рассчитать из LBA). У меня нет опыта работы с этой программой. Погуглите больше, вероятно, появится больше таких программ.

Используйте debugfs в ext2 / 3/4. Сначала найдите индекс на основе блока:

 debugfs -D -R "icheck $sda3block4096" /dev/sda3 

затем используйте этот номер индекса для запроса файла:

 debugfs -D -R "ncheck $inode" /dev/sda3