Вынимание файлов вручную с дискеты, имеющей нарушенную логическую структуру каталогов
С.Лебедев (Sir Serge)
Здесь приводиться всего лишь один из способов, как решить проблему, причем способ, работающий только при определенном стечении обстоятельств. Можно, конечно, восстановить информацию с такого диска путем использования специализированных программ... но... я думаю, в конкретном случае это бы не помогло.
Итак, имеем дискету (файловая система - fat), на которую записан один документ MS Word. Дискета не идентифицируется. Под Linux fsck -t vfat сообщает, что рассчитана на работу всего с двумя экземплярами fat, а не 256-ю. То есть: имеет место логическое разрушение fat и загрузочного сектора. Носитель физически не поврежден. О причинах повреждения гадать не будем – возможно, неудачная попытка форматирования с выниманием диска при начале процесса. :)
Фаза 1.
Все содержимое диска посекторно необходимо выпустить в файл. В DOS/Windows системных средств для этого нет. Можно воспользоваться какой-нибудь сторонней программкой для копирования образов дискет – diskdupe, например. Следите только за тем, чтобы полученный “образ” не подвергнулся компрессии. Под Linux все делается очень просто: cp /dev/fd0 filename
Фаза 2.
Осматриваем дискету. Для этого, наверное, лучше всего использовать FAR Commander. Причины достаточно просты: то, что мы ищем, текст содержит в Unicode; Например, под Linux я не нашел средств, которые бы мне отобразили русские буквы на файле образа дискеты. Спасовали все – от mc до Mozilla. То ли уникод в линуксе другой, то ли какие-то знаки сбивают с толку. Но и в самом FAR commander должна быть включена соответствующая таблица кодировок, а для этого желательно один раз зайти в подкаталог far/addons/cyrillic/russian и прощелкать все файлы *.reg в нем. Таблица кодировок в вьюере фара переключается через Shift+F8. Цель осмотра – выяснить, уцелело ли что-то из того, что нам нужно. С удовлетворением отмечаем, что нужный нам текст присутствует... в двух экземплярах. У первого экземпляра подтёрто начало.
Фаза 3.
Поиск начала файла.
Просматриваем в шестнадцатиричном виде какой-либо документ, созданный той же версией Word. В даном случае легко заметить, что любой документ начинается с сигнатуры D0 CF 11 E0 A1. Грузим FAR и поиском определяем смещение сигнатуры от начала файла. “На глаз” убеждаемся, что дальнейшая информация похожа на то, что обычно бывает в вордовых файлах. В нашем случае смещение получилось 43C00.
Фаза 4.
Подрезание образа диска.
Довольно наглый способ, основанный на том, что файлы Word – контейнер, в хвосте которого может быть дописана произвольная информация, на действия редактора не влияющая никак. Для этого придется написать программу, текст ниже (компилятор в данном случае – delphi; Turbo Pascal для компиляции этой программы непригоден. главное – не то, чем написано, а суть явления; однако, бейсиком для этого пользоваться не рекомендую):
program ree;
{$APPTYPE CONSOLE}
Var f:file;
q:PChar;
i:integer;
begin
assign(f,'исходный_файл');
reset(f,1);
i:=FileSize(f);
GetMem(q,i);
BlockRead(f,q^,i);
CloseFile(f);
assign(f,'файл_результата.doc');
rewrite(f,1);
BlockWrite(f,(q+$43C00)^,i-$43C00);
closefile(f);
FreeMem(q);
end.
Получившийся в результате .doc в моем случае благополучно был прочитан. Отмечаю, что в данном случае имеется определенная доля везения – хотя бы в том, что файл не был фрагментирован и не был поврежден.
Barnaul, RF
1.06.2004
Igor OC: Windows XP 2005-09-19 22:25:21
Власенко Михаил Викторович OC: Windows XP 2009-02-24 05:58:23
Текст опубликован: 2004-06-01
Последние изменения текста: 2004-06-14
Вы можете добавить свои комментарии.
Комментарий появится на сайте только после того, как он будет проверен администрацией на запрещённую законодательством информацию.
Для возможности внесения комментариев в браузере должна быть включена поддержка JavaScript. Реклама и ссылки на сайты, не относящиеся к делу, являются прямым основанием удаления комментария. Поля "E-mail" и "WWW" обязательными для заполнения не являются, поле E-Mail не публикуется. Если хотите просто что-то написать автору статьи, без публикации на сайте - воспользуйтесь специальной формой под пунктом меню "О сайте". Администрация оставляет за собой право публиковать или не публиковать адреса, введенные в поле www, а также при необходимости редактировать текст вашего сообщения. Ответы на ваши сообщения по введенному вами E-mail автоматически сайтом не высылаются. Теги PHPBB и HTML не действуют.