8.4.4. Утилита UnFormat (UNFORMAT)
UNFORMAT обеспечивает
восстановление информации на диске после ошибочно выполненного его
форматирования. Эта утилита может оказаться полезной также при устранении
логических дефектов системной области диска, а также последствий разрушительных
действий компьютерных вирусов и троянских программ.
UNFORMAT дает
положительный эффект в следующих случаях:
1) когда логический диск на
винчестере был случайно проинициализирован DOS-командой FORMAT или утилитой Safe Format, но перед этим для
него была выполнена утилита Image
или Mirror (последняя
входит в состав MS-DOS 5.0, заимствована из пакета PC Tools и выполняет функции,
аналогичные утилитам Image, Erase Protect и Disk Tools в режиме резервирования
системной информации);
2) если дискета
была ошибочно проинициализирована утилитой
Safe Format (но не в
режиме стандартного, т.е. DOS-форматирования),
а перед этим она была обработана утилитой Image или Mirror;
3) если системная область
диска разрушена (но не из-за физического дефекта), однако до этого он был
обработан утилитой Image или Mirror;
4) когда выполнены условия
одного из трех предыдущих пунктов, но утилитой Image или Mirror соответствующий диск не
обрабатывался;
5) если для дискеты была
выдана DOS-команда FORMAT, но ее выполнение было
отменено пользователем до завершения инициализации дискеты.
Как Вы уже знаете, утилиты Image и Mirror обеспечивают
резервирование системной области диска на этом же диске. DOS-команда FORMAT при
обработке логического диска на винчестере очищает только его системную область,
не «затирая» область данных. Утилита Safe Format (если
используется не в режиме DOS-форматирования) работает аналогичным
образом при инициализации как логического диска на винчестере, так и дискеты.
Кроме того, перед форматированием она способна по Вашему указанию вызвать IMAGE. Поэтому в
перечисленных выше случаях 1—3 возможно полное восстановление информации
на диске, что и реализует утилита UNFORMAT. При этом
важно, чтобы «слепок» системной области был «свежим». Действительно, все
изменения файловой структуры диска после выполнения Image или Mirror не будут
зафиксированы в «слепке», в результате чего возникнет рассогласование его
содержимого и содержимого диска В такой ситуации будет осуществлено только
частичное восстановление информации.
В четвертом случае область данных на диске остается
нетронутой, а системная область частично или полностью теряется. В такой
ситуации UNFORMAT
осуществит сканирование диска и попытается восстановить файловую
структуру только по содержимому области данных. При этом возможно
восстановление на диске всех подкаталогов, а также ряда или всех файлов, в них
содержащихся. Однако восстановление файлов, находящихся в корневом каталоге,
произвести невозможна. Следовательно, в этом случае UNFORMAT осуществляет
частичное восстановление информации.
В последнем, пятом случае оказывается потерянной как
системная область дискеты, так и часть ее области данных. Тем не менее UNFORMAT сделает все от нее
зависящее, чтобы извлечь еще не уничтоженную информацию.
Запуск утилиты осуществляется командной строкой вида
UNFORMAT [d:] [/IMAGE|/MIRROR]
Здесь d — имя
привода, диск в котором требуется восстановить. Если аргумент не задан, то
привод может быть специфицирован в ходе диалога пользователя с утилитой.
Переключатели указывают следующее:
/IMAGE — осуществить восстановление диска
по «слепку» системной области, сделанному утилитой Image;
/MIRROR — осуществить восстановление диска по «слепку»
системной области, выполненному утилитой Mirror.
Если задан один из этих переключателей, то UNFORMAT настраивается на
работу таким образом, что восстановление диска становится возможным только по
«слепку» системной области, сделанному той утилитой, имя которой совпадает с
наименованием переключателя. Когда же переключатель в командной строке не
задан, то пользователь в процессе диалога сможет по своему усмотрению выбрать
«слепок» из тех, которые созданы утилитами Image и Mirror (если таковые имеются).
UNFORMAT работает
только в диалоговом режиме и в максимальной степени автоматизирована: в
основном от пользователя требуются только нажатия клавиш Enter или Esc в диалоговых окнах.
Предположим, что утилита запущена в работу без аргумента и
переключателя. В самом начале ее выполнения на экране открывается окно-заставка
с кратким описанием функций утилиты. После нажатия клавиши Enter (для Continue) пользователю будет
предложено выбрать из списка привод, диск в котором требуется восстановить.
Если привод задан в командной строке, то данный фрагмент диалога опускается.
Затем открывается диалоговое окно (см. рис. 8.30), от сделанного
пользователем выбора в котором существенно зависят дальнейшая работа утилиты и
возможность полного восстановления информации. Когда же в командной строке был
задан переключатель, то вопрос в диалоговом окне будет содержать наименование
лишь одной утилиты резервирования системной информации. Если Вы полностью
уверены в том, что данный диск утилитой Image или Mirror не обрабатывался, то
выберите No, а иначе — Yes (в последнем случае будет
производиться поиск «слепка» системной области).
Рис. 8.30.
Важнейшее диалоговое окно
утилиты UNFORMAT
Сначала рассмотрим работу утилиты после ответа Yes.
В этом случае просматривается корневой каталог диска и на экран
выдается его содержимое. Утилита в этом же окне предупреждает о том, что в
результате восстановления существующая файловая структура будет разрушена и
предлагает сделать выбор, ответив Yes для продолжения работы и No для возврата в исходное состояние (в начало диалога). Это
предупреждение не совсем корректно, так как существующая файловая структура
будет действительно разрушена только в том случае, если она не зафиксирована в
«слепке» системной области. Это может произойти, в частности, тогда, когда диск
был обработан утилитой Image
или Mirror,
отформатирован, а затем на нем была создана файловая структура В этом случае
выйдите из утилиты и скопируйте файлы в безопасное место. Если же диск обработан
утилитой Image или Mirror, а затем вызвана UNFORMAT, то его текущее
содержимое в результате восстановления не разрушится.
После нажатия клавиши Enter (для ответа Yes) на
экране может появиться карта диска (аналогичная карте утилиты DISKTOOL), на которой приняты
следующие обозначения блоков (фрагментов) диска:
▓ — неиспользуемый
«слепком» системной области блок;
В — дефектный
блок;
◘ — блок со
«слепком» системной области.
Эта карта наглядно отражает процесс поиска «слепка», созданного
утилитой Image или Mirror. «Слепок» по карте ищется тогда, когда
требуемые файлы в корневом каталоге не найдены. Сканирование диска в данном
случае осуществляется с конца и поиск осуществляется по содержимому этих,
возможно, удаленных файлов.
Если «слепок» системной области, созданный,
например, утилитой Image, найден,
то открывается диалоговое окно, показанное на рис. 8.31. В нем сообщается
об этом, а также указываются:
— дата и время снятия
последнего (Resent) «слепка»;
—
дата и время снятия предыдущего (There is also IMAGE information...) «слепка», если он на диске имеется.
Рис. 8.31. Диалоговое
окно после отыскания «слепка» системной области
диска
В области подкоманд окна предлагается выбрать:
Resent — для восстановления с использованием
последней версии «слепка»;
Previous — для восстановления с использованием
предыдущей версии «слепка»;
Cancel — для отмены восстановления (можно
нажать клавишу Esc).
Обычно восстановление осуществляется по последней версии «слепка».
Предпоследнюю же версию следует использовать тогда, когда Image вызывается из файла AUTOEXEC.BAT и Вы отформатировали диск, а
затем перезагрузили DOS (т.е.
снова сделали «слепок»).
После выбора Resent
или Previous открывается
окно, в котором еще раз делается предупреждение о возможности разрушения
существующей файловой структуры при восстановлении и предлагается выбрать Yes для продолжения работы или No для завершения.
При нажатии Enter
(для Yes)
открывается диалоговое окно, в котором предлагается выбрать режим полного (Full) или частичного (Partial) восстановления системной
области диска. При полном восстановлении будут перезаписаны все три
компонента системной области — BR, FAT и RDir. При частичном же восстановлении
можно управлять восстановлением каждого из трех перечисленных компонентов явно.
Оно используется в следующих случаях:
— «слепок» является
достаточно старым (после
его создания файловая
структура диска существенно модифицировалась);
— Вы прервали деструктивное
DOS-форматирование до его
завершения (при этом возможно частичное восстановление RDir и/или FAT);
— Вы хорошо знакомы с
размещением информации на магнитных дисках и хотите (частично) восстановить ее
вручную утилитой UnErase или Disk Editor (при этом
целесообразно восстановить посредством UNF0RMAT только BR).
Если выбрана подкоманда Full, то UNFORMAT продолжает свою
работу автоматически.
Когда же выбрана подкоманда Partial то открывается диалоговое
окно, изображенное на рис. 8.32. В нем Вы можете указать подлежащие
восстановлению компоненты системной области, включив соответствующие опции:
Boot Record — для восстановления BR;
File Allocation Table — для восстановления FAT;
Root Directory — для восстановления RDir.
Затем нажмите Enter
(для OK), и
восстановление будет выполнено автоматически.
О результатах своей работы UNFORMAT сообщит
на экране дисплея. Будет предложено также выполнить утилиту NDD с
переключателем /QUICK. Последняя может выдать ошибки из-за изменения файловой структуры
диска после снятия «слепка» системной области.
Рис. 8.32. Диалоговое окно Partial
Restore
Если «слепок» системной области
диска утилитой UNFORMAT не
найден, то она может осуществить
частичное восстановление информации путем сканирования содержимого диска. Это
полностью совпадает с режимом работы, устанавливаемым при выборе No в диалоговом окне, показанном на
рис. 8. 30. В данном случае утилита требует подтверждения на восстановления и
при ответе Yes продолжает
работать автоматически. Процесс восстановления отражается на карте диска,
идентичной карте, отображаемой утилитой DISKTOOL.
Прервать
работу утилиты UNFORMAT
можно на любом этапе, просто нажав Esc. При этом открывается окно с двумя подкомандами: Cansel (Прервать) и Resume (Возобновить). Выберите требуемую.
Заметим, что нажатие Esc
здесь эквивалентно выбору Resume.