Показать полную графическую версию : Восстановление перезаписанных файлов
Не нашел вроде подходящую ветку, спрошу здесь:
Фаил (база аксесса .mdb) был перезаписан файлом с тем же именем, то есть в 2-х каталогах были разные файлы с одинаковым именем, надо было переписать с первого каталога во второй, а переписали случайно из второго в первый. Теперь надо восстановить файл из первой папки; никакие программы, пробовал штук 8, что восстанавливают из удаленных, форматированных, переустановленных и чуть ли не с украденных дисков, ничего не обнаружили.
После перезаписи (обнаружили почти сразу) все работы на машине были остановлены, так что где-то этот файл лежит почти нетронутый, только размер около полгигабайта, и просматрывать физически посекторно нереально.
Есть какой-нибудь метод выхода из этой ситуации?
Есть какой-нибудь метод выхода из этой ситуации? »К сожалению, нет, представьте себе File.doc с десяться страницами, который перезапишется тем же файлом File.doc с одной страницей. Возможно ли будет вернуть перезаписаному файлу File.doc недостающие 9 страниц? Я думаю нет.
maxo, не уверен, но TuneUp, при восстановлении данных, иногда показывает несколько файлов, в т.ч. и перезаписанные. Посмотрите еще с помощью FileScavenger (http://www.google.com/search?hl=ru&client=opera&rls=ru&hs=fUd&ei=Sd-_SZ2iNOLBjAfU6dQ7&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=File+Scavenger&spell=1), хотя вероятность восстановления очень мала. Советую начать со второй программы - она меньше по объему и ее можно установить на флэшку.
Возможно ли будет вернуть перезаписаному файлу File.doc недостающие 9 страниц? »
Ну разве только если новый File.doc запишется на на том же месте; по моему так и есть, не может система сделать такую глупость, но тем не менее найти старый файл невозможно почему-то.
DVDshnik
18-03-2009, 09:24
Cкорее всего при замене файл с таким же именем записывается на том же месте, где и предыдущий располагался. И вряд ли что-то кроме посекторного копирования помочь сможет.
Cкорее всего при замене файл с таким же именем записывается на том же месте, где и предыдущий располагался. И вряд ли что-то кроме посекторного копирования помочь сможет. »
Нет, не думаю.
Во-первых, если записывается на том же месте, то при любом сбое потеряешь и ту и эту; потому и думаю что это было бы глупо со стороны ОС. Глупостей может там и предастаточно, но не в файловой системе.
Во вторых, в таком случае и посекторное копирование вряд ли может помочь.
Во-первых, если записывается на том же месте, то при любом сбое потеряешь и ту и эту »Так Access всегда работает с оригинальной базой данных, а не с копией и вносит изменения прямо в неё.
DVDshnik
18-03-2009, 14:09
maxo Гы, попробуйте самостоятельно написать ОС, причём сложную и сразу без ошибок...
А файл на старом месте расположить проще всего, особенно если он меньше того, который располагался там же ранее. И всего-то приписать в конце файла EOF (End Of the File).
Drongo,
Access–то работает, файловая система не может работать таким образом. Файл просто переписали с одной папки в другой, Access тут непричем.
DVDshnik,
Не вижу резона, почему файл на старом месте расположить проще всего, тем более что не о простоте в данном случае будет думать человек, писавший ФС (а не ОС, который тут также непричем).
Ладно, мы увлеклись, а вопрос открыт.
Ну неужели никто с такой проблемой не сталкивался?
kosmos0111
19-03-2009, 12:04
ONTRACK EASY RECOVERY!!! Вот эта прога тебе поможет...... тама заходишь в подменю "восстановление файлов" >>> восстаналение ms access...
Если бы все было так просто!
Ну неужели никто с такой проблемой не сталкивался? »
Конечно, большинство сталкивалось, и в лучшем случае, процентов 5-10 оказались везунчиками и вытащили данные.
Дело ведь не в программе, их предостаточно, а в том, что на момент работы программы восстановления, данные уже (в подавляющем большинстве случаев) перезаписаны.
Упрощенно, что произошло в вашем случае:
- сначала системой был удален перезаписываемый файл. Фактически он остался на месте, а удалился в таблице расположения файлов, место занимаемое им на диске стало свободным.
- затем записался новый файл, ссылка на него появилась в таблице расположения файлов, а данные записаны в области диска, взятой из свободной.
Если при записи данных нового файла не были затронуты (даже частично, пример Drongo) данные удаленного файла в свободной области - восстановление возможно, в противном случае - не поможет никакая прога, поскольку данные некондиционны.
После перезаписи (обнаружили почти сразу) все работы на машине были остановлены »
Правильно, но не всегда помогает, система многозадачная, могли записываться данные журналов, файла подкачки, приложения или службы могли писать временные файлы и т.п.
Тут уж как повезет.
ab57,
Ну вот и не повезло :(
Дело в том, что система не сразу использует освободившееся пространство, а старается выслать "подальше" (так я когда-то читал в описании файловой системы).
На том диске 70% места свободно; не могла система переписать на том же месте, тем более что не думаю что система (файловая) сначала стирает старый файл, а потом пишет новый - скорее она блокирует его (и то не всегда), пишет новую и потом удаляет из таблицы.
Но непонятно вот что - я экспериментировал - стирал файл, в том числе шифтом, создавал файл с тем-же именем - и всегда получалось восстановить стертый, но именно после перезаписи уже не получилось. Так вот.
Если думать в направлении как вообще восстанавливается стертый файл - вроде все понятно, хотя бы теоретически, а вот что особенное проичходит при перезаписи - непонятно.
Думаю, обнаружен самы надежный способ удаления информации (а это - доволно сложная проблема) :). Зря там некоторые специальные программы для этого пишут и что-то выдумывают :) .
Тут важно одно - никакая программа (имеется в виду программы работающие с файлами) не работает напрямую с файлом - а только через ОС. И невозможно на уровне программы узнать создала она новый файл или работает с оригиналом. И даже ОС не работает напрямую с файлом - а только через ФС, и на уровне ОС тоже не узнаем об этом. А ФС одна из самых имхо продуманных вещей и мало что там пропущено, и даже Виндус ее испортить не смог, но что тут поделаешь, друг Горацио...
- сначала системой был удален перезаписываемый файл. Фактически он остался на месте, а удалился в таблице расположения файлов, »
Это так? :unsure:
Да.
На уровне файловой системы единицой адресации дискового пространства является кластер - группа последовательных секторов диска.
Когда файл создается, в таблице расположения файлов (она различается для FAT, FAT32, NTFS, но принцип тот же) создается запись, где хранится имя файла, размер, адрес расположения собственно данных.
При удалении файлов изменяется только эта запись, файл помечается как удаленный, а адреса данных расположения бывшего файла становятся свободными.
Если при записи какого-либо нового файла будет использована область, ранее принадлежавшая удаленному файлу, то восстановление будет невозможно.
При удалении файлов »
Да речь не об этом. Акцент на том, удаляется ли перезаписываемый файл.
Если он удаляется, но область, занимаемая им, не затрагивается, то восстановить его можно; и невозможно, если область будет затронута.
Если при перезаписи по умолчанию используется часть пространства данных старого файла, скажем, с начала, то (удачное) восстановление будет невозможным в любом случае.
Я не знаю механизма в данном случае, об этом и спрашивал.
А как же иначе, в каталог , где есть файл, например с именем access.mdb, пишется файл с именем access.mdb. Система сначала должна удалить существующий, а затем записать новый.
Если при перезаписи по умолчанию используется часть пространства данных старого файла »
В том то и дело,что нет никакого умолчания. Будет ли использоваться пространство данных старого файла, определяется огромным количеством факторов - тип файловой системы, место располжения удаленного файла, его фрагментированность, размер фрагментов и размер самого файла, заполненность диска, и т.п.
Система сначала должна удалить существующий, а затем записать новый. »
Это не так - существующий файл не удаляется, а только "захватывается", блокируется, записывается новый и только если запись прошла удачно, удаляется уже старый файл (из ФАТ-а), т. е. при перезаписи информация нового файла никак не может попасть на месте старого файла.
Другой вопрос - как удаляется старый файл (из ФАТ-а); Обычно при удалении не удаляется не то что сам файл, даже запись в ФАТ-е не удаляется, а просто файл помечается как удаленный »
- т. е. там остаются имя файла, начальный кластер, дата создания и т. д. Потому и становится возможным восстановление файла, т. е. сохраняется логические атрибуты, которые потом используют восстановливающие программы. А физически файл еще долго может на диске находиться с возможностью физического восстановления, т. е. физического чтения кластеров, хоть после форматирования, но это прокатит в случае текста и небольшого, а базу данных физически очен трудно уследить, и тем более продолжения поймать.
Это не так - существующий файл не удаляется, а только "захватывается", блокируется, записывается новый и только если запись прошла удачно, удаляется уже старый файл (из ФАТ-а), т. е. при перезаписи информация нового файла никак не может попасть на месте старого файла. »
Вы ошибаетесь. Если бы это было так, то в каталоге в один и тот же момент времени присутствовало 2 файла с одинаковым именем ("захваченный" и вновь записываемый). Данные не могут записываться в никуда, сначала создается запись о файле в таблице расположения файлов.
Как это работает на самом деле, можно проверить с помощью утилиты мониторинга файловых операций FileMon.exe (http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx).
При перезаписи файла используется функция "Create" (колонка Request) с опциями Overwriteelf Sequential. При выполнении Create, если файл уже существует, его длина устанавливается в ноль, а указатель данных - на свободную область раздела. После Create выполняется функция "Set Information" и длина нового файла устанавливается равной длине копируемого. И только после этого выполняется само копирование данных последовательностью функций READ для копируемого и WRITE для нового файла.
ab57,
Мог бы и сдаться, конечно :)
Но терзают смутные сомнения:
А что произайдет, если:
1. Будет сбой при записи файла?
2. Пользователь прервет операцию?
3. При процессе будет инициирован новый процесс записи файла с тем же именем?
Эти программы пробовали?
UndeleteMyFiles
Recuva http://recuva.com/
Важно не устанавливать программы на тот же диск, откуда восстанавливаются данные.
Если новый файл меньше, то, по логике, не все сектора будут перезаписаны.
Однако начало файла будет утеряно, следовательно, его целостность будет нарушена.
Не знаю, возможен ли такой глубокий анализ и восстановление, так что не скажу.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.