3. Рассчитывается новая контрольная сумма загрузочного сектора, которая затем записывается по смещению 50h
4. Создается новый файл $MFT
$MFT
. Исключения из этого правила бывают, но они крайне редки. Обычно они происходят, если прежний файл $MFT
был заблаговременно перемещен дефрагментатором, или если при переформатировании был назначен новый размер кластера. Во всех остальных случаях первые 24 файловых записи (FILE Record) погибают безвозвратно. Эти записи содержат непосредственно сам файл $MFT
, $MFTMirr
, корневой каталог, /$LogFile
— файл транзакций, /$BITMAP
— карту свободного пространства, /$Secure
— дескрипторы безопасности, а также ряд других служебных файлов.5. Инициализируется файл $MFT:$DATA
$MFT:$30.AllocatedSize
, $MFT:$30.RealSize
, $MFT:$80.AllocatedSize
, $MFT:$80.RealSize
, $MFT:$80.CompressionSize
, $MFT:$80.InitializedSize
и $MFT:$80.LastVCN
), дата и время создания и последней модификации (инициализируются $MFT:$10.FileCreationTime
, $MFT:$10.FileAlertedTime
, $MFT:$10.FileReadTime
, $MFT:$30.FileCreationTime
, $MFT:$30.FileAlertedTime
, $MFT:$30.MFTChangeTime
и $MFT:$30.FileReadTime
) и, самое главное, создается новый список отрезков (data-runs), необратимо затирающий старый. Это значит, что собирать фрагментированный файл $MFT
нам придется по частям.6. Создается новый файл /$MFT:$BITMAP
FileRecord.flags
остается нетронутым), благодаря чему процедура восстановления заметно упрощается. Чаще всего $MFT:$BITMAP
располагается на том же самом месте, что и старый (т.е. между загрузочным сектором и MFT), забивая прежнее содержимое нулями, однако с помощью утилиты chkdsk его можно восстановить.7. Создается новый файл /$BITMAP
/$BITMAP
, который, тем не менее, может быть восстановлен с помощью chkdsk.8. Создается новый файл журнала транзакций — /$LogFile
9. В заголовок файловой записи $MFT
10. $MFT
11. Создается новое зеркало $MFTMirr, необратимо затирающее старое (в текущих версиях файловых систем оно расположено в середине раздела NTFS).
12. Создаются новые /$Volume
/$AttrDef
и другие служебные файлы, играющие сугубо вспомогательную роль и легко восстанавливаемые утилитой chkdsk. Следует отметить, что хотя /$Volume
и присутствует в зеркальной копии MFT, его ценность явно преувеличена.13. Осуществляется проверка целостности поверхности диска, и все обнаруженные плохие кластеры заносятся в файл /$BadClus
14. Формируется новый корневой каталог.
15. Если до форматирования тома на нем присутствовал файл /System Volume Information
/System Volume Information
создается только после перезагрузки.На самом деле процесс форматирования протекает намного сложнее. Тем не менее, для восстановления данных с непреднамеренно переформатированных разделов приведенной здесь информации вполне достаточно. Углубленное обсуждение этих технических деталей требуется только программисту, разрабатывающему собственную нестандартную утилиту форматирования. Заинтересованные читатели могут самостоятельно дизассемблировать утилиту format.com (рекомендуется делать это с помощью IDA Pro).