Восстанавливаю данные с винта, решил немного оптимизировать свой труд. Необходимо определить принадлежит ли заданный сектор какому нибудь файлу. Как это сделать?
Изменить каждый 512 байт в файле (заксорить), а потом посмотреть, изменился ли первый байт в секторе. Потом восстановить. Должно работать с любой файловой системой и не требует умственных затрат
Не, это лажа... вот те надо проверить сектор с номером 123456, и какой файл ты будешь колупать? ИМХО, самое простое и надежное - разобрать бут-сектор, определить размер кластера, путем простых арифм. операций понять, какому кластеру принадлежит сектор, затем считать фат и посмотреть на запись, соответствующую найденому кластеру. Если там ноль - значит кластер(а следовательно, и сектор) пустой, если че-то есть - значит чем-то занят. Ну мож еще какие ньюансы есть, но идея такая.
ну вообщета система ФАТ32 to Stary я тоже так думал, но думал может есть готовый алгоритм... а вообще столкнулся с тем что с этого винта не получилось считать (правда на TC) сектор не absread не через biosdisk (выходят странные ошибки типа потерены данные во время передачи или что то в этом роде) правда на асм анологичный код делать я еще не пытался... так что решел залить винт в файл, и читая блоками размером с сектор искать куски файлов по сигнатуре
под дос пишешь? А алгоритм я же дал Осталось только реализовать. Там ума то никакого не надо, только немного усидчивости...