Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Компьютер IBM PC/AT, MS-DOS и Windows. Вопросы и ответы

© Александр Фролов, Григорий Фролов
Том 10, М.: Диалог-МИФИ, 1993, 218 стр.

[Назад] [Содеожание] [Дальше]

1.36. Как восстановить стертые файлы

При удалении файла с диска (жесткого или гибкого) сами данные из файла остаются на диске нетронутыми, только в дескрипторе файла стирается первый символ названия файла и все кластеры файла в таблице размещения файлов помечаются как свободные.

Если файловая система не заняла освобожденные кластеры, записав на освободившееся место другие файлы, то существует возможность восстановить стертый файл.

Для восстановления стертых файлов следует восстановить первый символ в дескрипторе файла и восстановить цепочку кластеров стертого файла в таблице размещения файлов.

Для быстрого и эффективного восстановления стертых файлов вы можете воспользоваться командой UNDELETE, входящей в комплект поставки MS-DOS или программой UnErase (UNERASE.EXE) из пакета Norton Utilities фирмы SYMANTEC.

Какой из программ вы воспользуетесь - это дело вашего вкуса. Команда UNDELETE работает в пакетном режиме и не может восстановить удаленные каталоги, но зато вам нет необходимости отдельно приобретать пакет Norton Utilities, так как UNDELETE входит в комплект поставки MS-DOS.

Программа UnErase работает в диалоговом режиме, очень удобна для использования. С помощью unerase вы сможете восстановить удаленные каталоги.

Теперь рассмотрим обе эти программы подробнее.

Команда UNDELETE

Команда MS-DOS UNDELETE позволяет восстановить файлы, удаленные с жестких и гибких дисков. Данная команда может работать в трех различных режимах - режиме часового (Delete Sentry), режиме филера (Delete Tracker) и стандартном режиме. Описание данных режимов приведено ниже.

К основным недостаткам команды UNDELETE можно отнести невозможность восстановления удаленных каталогов и наличие только одного, пакетного, режима работы.

Режим часового

При работе UNDELETE в режиме часового, обеспечивается наивысший уровень защиты от удаления нужных файлов. Гарантируется возможность восстановления удаленных файлов. Данный режим требует предварительной загрузки резидентного модуля и некоторого свободного пространства на жестком диске.

После запуска UNDELETE, например из файла AUTOEXEC.BAT, в памяти остается небольшой резидентный модуль (размером 13.5 Кбайт), который отслеживает операции удаления файлов и переносит удаленные файлы в специально созданный, скрытый каталог с именем SENTRY. Таким образом, удаленные файлы не удаляются с диска, а только переписываются в специальный каталог. При выполнении операции восстановления удаленный файл просто копируется на свое старое место из каталога SENTRY.

Общий объем файлов, которые могут сохраняться в каталоге SENTRY, по умолчанию, достигает двадцати процентов от общего объема диска. При превышении данного ограничения файлы, удаленные раньше других, стираются из каталога SENTRY и таким образом окончательно удаляются с диска. Кроме того, через определенный промежуток времени файлы перенесенные в каталог SENTRY автоматически удаляются. По умолчанию удаленные файлы хранятся в каталоге SENTRY семь дней.

Режим филера

Данный режим обеспечивает средний уровень защиты файлов от удаления.

В режиме филера, команда UNDELETE также оставляет в памяти компьютера небольшой резидентный модуль размером 13.5 Кбайт. При удалении файла его расположение и полное имя записывается в скрытом файле PCTRACKER.DEL.

Если после удаления файла на его место не записаны другие файлы, он может быть восстановлен. В противном случае возможно частичное или полное разрушение стертого файла.

Стандартный режим

В стандартном режиме резидентные модули не используются и вам нет необходимости предварительно выполнять команду UNDELETE или выполнять другие действия.

Стандартный режим обеспечивает наименьший уровень защиты файлов. Восстановление удаленного файла возможно только в том случае, если другие файлы не были записаны на его место. В некоторых случаях возможно неправильное восстановление, даже если после удаления файла его место не было занято другими файлами.

Формат вызова команды UNDELETE

Команда UNDELETE имеет два различных формата. Выполняя команду UNDELETE с различными параметрами, можно выполнять восстановление удаленных файлов, устанавливать различные режимы и выполнять некоторые другие действия.

Приведем возможные форматы вызова команды UNDELETE:

UNDELETE [[drive:][path]filename] [/DT|/DS|/DOS]
  или
UNDELETE [/LIST|/ALL|/PURGE[drive]|/STATUS|/LOAD|/UNLOAD|
         /S[drive]| /Tdrive[-entries]]

Рассмотрим отдельные параметры команды UNDELETE:

Параметр Назначение
[drive:][path]filename Определяет полный путь файла или набора файлов, которые вы желаете восстановить. По умолчанию UNDELETE восстанавливает все файлы в текущем каталоге
/DOS Восстанавливает удаленные файлы. При этом не используется информация, записанная в режиме часового и филера.
/DT Восстанавливает только те файлы, которые описаны в скрытом файле PCTRACKER.DEL. С параметром /DT можно восстановить только файлы, стертые в режиме филера. Для установления режима филера можно загрузить резидентный модуль команды UNDELETE записав соответствующую команду в файл AUTOEXEC.BAT
/DS Восстанавливает только файлы, содержащиеся в скрытом каталоге SENTRY. Для этого необходимо, чтобы в момент удаления файла был загружен резидентный модуль команды UNDELETE в режиме часового. Чтобы установить режим часового, можно загрузить резидентный модуль команды UNDELETE, указав вызов данной команды с необходимыми параметрами в файле AUTOEXEC.BAT
/LIST Выводит на экран список всех файлов, которые можно восстановить. Восстановление файлов не происходит
/ALL Автоматически восстанавливает все удаленные файлы. Если команда UNDELETE выполняется в режиме часового, то восстанавливаемый файл просто копируется в его прежнюю позицию из каталога SENTRY. Если команда UNDELETE выполняется в режиме филера, то файл восстанавливается в соответствии с данными расположенными в скрытом файле PCTRACKER.DEL. Еще раз подчеркнем, что для использования этих двух методов необходимо, чтобы до удаления файла был загружен резидентный модуль команды UNDELETE (смотри параметр /LOAD). Если при удалении файла резидентный модуль не был загружен (стандартный режим), при восстановлении вместо первого символа имени файла используется символ '#'. В случае если такое имя уже существует, то для получения уникального имени последовательно используются символы из последовательности #%&0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
/LOAD Загружает резидентный модуль команды UNDELETE. При этом используется файл конфигурации UNDELETE.INI. Этот параметр указывается для инициализации режима часового и режима филера
/UNLOAD (/U) Выгружает из оперативной памяти резидентный модуль команды UNDELETE
/PURGE[drive] Стирает содержимое каталога SENTRY диска drive. Если диск не определен, стирается содержимое каталога SENTRY текущего диска
/STATUS Отображает на экране дисплея режим, в котором работает UNDELETE
/S[drive] Устанавливает режим часового для файлов диска drive и загружает резидентный модуль в оперативную память (в соответствии с файлом UNDELETE.INI). Резидентный модуль записывает информацию об удаленных файлах на указанном диске. Если диск не определен, подразумевается текущий диск
/Tdrive[-entries] Устанавливает режим филера для файлов диска drive и загружает резидентный модуль в оперативную память. Резидентный модуль записывает информацию об удаленных файлах в скрытом файле PCTRACKR.DEL на указанном диске. Дополнительный параметр -entries определяет максимальное количество удаленных файлов, информация о которых будет храниться. Он может находиться в пределах от 1 до 999. Если дополнительный параметр не определен, используется значение по умолчанию

Формат файла UNDELETE.INI

Файл UNDELETE.INI содержит информацию, необходимую при загрузке в память резидентного модуля команды UNDELETE. Если файл отсутствует на диске, он создается с секциями (полями), заполненными значениями по умолчанию.

Файл UNDELETE.INI содержим пять секций: [sentry.drives], [sentry.files], [mirror.drives], [configuration] и [defaults]. Рассмотрим данные секции более подробно.

  • [sentry.drives] - определяет диски, файлы которых защищены от случайного удаления в режиме часового. Символ '-' указывает, что следующие файлы сохранять не нужно. Значения принятые по умолчанию для данной секции следующие:
[sentry.files]
*.* -*.TMP -*.VM? -*.WOA -*.SWP -*.SPL  -*.RMG -*.IMG -*.THM -*.DOV
  • [mirror.drives] - определяет диски, файлы которых защищены от случайного удаления в режиме филера.
  • [configuration] - определяет:
    • Будут ли защищаться от удаления файлы с установленным архивным битом. Если файлы с установленным архивным битом защищать не надо, то секция [configuration] содержит строку archive=FALSE в противном случае archive=TRUE.
    • Число дней, в течении которых будет возможно восстановление стертых файлов. По умолчанию секция [configuration] содержит строку days=7, что означает возможность восстановления стертых файлов в течении семи дней.
    • Процент от общего объема диска, резервируемый для сохранения удаленных файлов (для режима часового). По умолчанию секция [configuration] содержит строку percentage=20. То есть 20 процентов общего дискового пространства используется для сохранения удаленных файлов.
    • [defaults] - определяет режим защиты файлов от удаления. По умолчанию данная секция содержит следующую запись, устанавливающую режим часового:
[defaults] d.sentry=TRUE d.tracker=FALSE

Для изменения режима работы команды UNDELETE необходимо выполнить следующие действия:

  • 1. Выгрузить резидентный модуль команды UNDELETE из оперативной памяти компьютера, используя следующую команду:
UNDELETE /U
  • 2. Установить новый режим защиты и снова загрузить резидентный модуль команды UNDELETE в оперативную память компьютера. Например, для установления режима часового на текущем диске можно воспользоваться следующей командой:
UNDELETE /S

Команда UNDELETE защищает все диски перечисленные в файле конфигурации UNDELETE.INI в независимости от того, защиту каких дисков вы установили при запуске команды UNDELETE.

Например, предположим, что файл UNDELETE.INI содержит следующую запись:

[sentry.drives] C= D= 

Тогда команда

UNDELETE /SC

устанавливает режим часового для защиты файлов на дисках C: и D:.

Для того, чтобы установить защиту только на диск C:, вы должны выполнить следующие действия:

  • Используя любой текстовый редактор, удалить из секции [sentry.drives] файла конфигурации UNDELETE.INI запись D=
  • Установить режим защиты (для диска C:) командой
UNDELETE /SC

Примеры использования команды UNDELETE

Для восстановления в текущем каталоге всех удаленных файлов вы можете воспользоваться следующей командой:

UNDELETE

При этом, если не установлены режимы часового и филера, для каждого восстанавливаемого файла будет запрашиваться первый символ его имени. Для восстановления файлов будет использоваться самый надежный из доступных режимов.

Следующая команда восстанавливает все файлы с расширением DOC из корневого каталога диска C:. Восстановление файлов происходит автоматически без запроса первого символа имени файла:

UNDELETE C:\*.BAT /ALL

В примере, приведенном ниже, команда UNDELETE загружает в оперативную память резидентный модуль и создает скрытый каталог с именем SENTRY. Резидентный модуль будет копировать все удаляемые с диска C: файлы в каталог SENTRY (для диска C: устанавливается режим часового).

UNDELETE /SC

Следующая команда загружает в память резидентный модуль и создает скрытый файл с именем PCTRACKER.DEL. Резидентный модуль будет записывать полные имена и место расположения файлов, удаляемых с диска C: (режим филера). Файл PCTRACKER.DEL может хранить информацию о 400 удаленных файлах:

UNDELETE /TC-400

Программа UnErase

В отличие от команды MS-DOS UNDELETE, данная программа, входящая в состав пакета Norton Utilities фирмы SYMANTEC работает в диалоговом режиме и значительно более удобна в использовании.

По сравнению с командой MS-DOS UNDELETE, программа UNERASE может восстанавливать не только удаленные файлы, но также удаленные каталоги с подкаталогами и содержащимися в них файлами. Как это ни странно, команда UNDELETE, даже при работе в резидентных режимах (режиме часового и режиме филера), на это не способна.

[Назад] [Содеожание] [Дальше]