На диске около 200 файлов с такой проблемой (на примере одного):
NTFSFileRecord вроде целая
и показывает, что файл нерезидентный и расположен одним экстентом размером 1026 кластеров начиная с кластера 7605429 (0x740CB5).
Но с адреса (самого файла) 0x2F200 и до конца файла при просмотре листером Total Commandera (или открытии его через Win API CreateFile) на самом диске, а также после копирования этого файла в другое место (естесственно, т.к. копирование идет тем же API), заполнено нулями. А при прямом просмотре соотв. кластера (0x740CE4) на диске, при промотре содержимого файла WinHEX-м, при восстановлении файла тем же WinHEX-м, Easy Recovery и др. на этом месте не нули (но все равно мусор, не от этого файла).
$BadClus:$Bad пуст, chkdsk не находит ошибок в NTFS (Битых кластеров нет, - это уже клон битого диска, и файлы с неполной NTFSFileRecord и с повреждением в теле от бэд-секторов вычищены и помечены), Easy Recovery показывает, что файл не является "cross linked", а является "good".
Нифига не понимаю, на каком этапе и кто подменяет содержимое файла нулями, и при этом откуда берет информацию о его невалидности. Крыша уже едет. Этот файл не нужен, конечно, но некоторые другие из этих 200... В общем уже понятно, что их не восстановить, бог с ними. Но в принципе, что это за х**ня. Начинаешь сомневаться во всем.
P.S. Причем, зараза, различие идет даже не с границы кластера, 0x2F200 - это второй сектор 47 кластера файла.
Это характерно для всех этих файлов, - мусор начиная с некоторого сектора (некоторые файлы - от начала) и до конца файла, и замена его нулями Win API, при этом файлы без перекресных ссылок с другими. Ну откуда он берет информацию о необходимости замены, особенно не от границы кластера (вообще мистика), ткните меня носом, пожалуйста!!!
--------------------
Все, спасибо форуму, пока писал и уточнял, понял, что сам слеп и глуп - хоть флаг файла и не компрессированный, но в поле 0x45С5148 (размер компрессированного потока) как раз 0x2F200. Т.е. место под файл зарезервировано на диске больше, а значимых данных меньше, остальное незначимый мусор, который программы востановления читают с диска, а Win API заполняет нулями. А значит, мои базы данных не битые! Ура!
Это сообщение, демонстрирующее собственную глупость, удалять не стал, вдруг кому пригодится.