|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 4, 2004 14:50:25 Восстанавливаю данные с винта, решил немного оптимизировать свой труд. Необходимо определить принадлежит ли заданный сектор какому нибудь файлу. Как это сделать? |
|
|
Дата: Ноя 5, 2004 07:36:52 А какая файловая система? |
|
|
Дата: Ноя 5, 2004 12:00:53 Изменить каждый 512 байт в файле (заксорить), а потом посмотреть, изменился ли первый байт в секторе. Потом восстановить. Должно работать с любой файловой системой и не требует умственных затрат :) |
|
|
Дата: Ноя 5, 2004 20:49:03 Изменить каждый 512 байт в файле Не, это лажа... вот те надо проверить сектор с номером 123456, и какой файл ты будешь колупать? ИМХО, самое простое и надежное - разобрать бут-сектор, определить размер кластера, путем простых арифм. операций понять, какому кластеру принадлежит сектор, затем считать фат и посмотреть на запись, соответствующую найденому кластеру. Если там ноль - значит кластер(а следовательно, и сектор) пустой, если че-то есть - значит чем-то занят. Ну мож еще какие ньюансы есть, но идея такая. |
|
|
Дата: Ноя 5, 2004 20:51:41 Да, это все, естественно, работает для фатов, для других - надо думать... |
|
|
Дата: Ноя 6, 2004 02:13:36 ну вообщета система ФАТ32 to Stary я тоже так думал, но думал может есть готовый алгоритм... а вообще столкнулся с тем что с этого винта не получилось считать (правда на TC) сектор не absread не через biosdisk (выходят странные ошибки типа потерены данные во время передачи или что то в этом роде) правда на асм анологичный код делать я еще не пытался... так что решел залить винт в файл, и читая блоками размером с сектор искать куски файлов по сигнатуре |
|
|
Дата: Ноя 6, 2004 23:29:36 под дос пишешь? А алгоритм я же дал ;-) Осталось только реализовать. Там ума то никакого не надо, только немного усидчивости... |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.065 |