Крис Касперски - Восстановление данных. Практическое руководство
- Название:Восстановление данных. Практическое руководство
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2006
- Город:Санкт-Петербург
- ISBN:5-94157-455-X
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Крис Касперски - Восстановление данных. Практическое руководство краткое содержание
Книга представляет собой пошаговое руководство по восстановлению поврежденных данных на жестких и оптических дисках. Подробно рассмотрена структура популярных файловых систем: NTFS, ext2/ext3, UFS/FFS и др. Описаны автоматические методы восстановления данных для операционных систем Windows и Linux. Приведены способы ручного восстановления, используемые в случае, когда автоматическое восстановление невозможно. Материал сопровождается большим количеством полезных советов и исчерпывающим справочным материалом. На компакт-диске помешены полезные утилиты и исходные коды, приведенные в книге.
Для пользователей ПК
Восстановление данных. Практическое руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Таким образом, подопытный файл состоит из трех отрезков, разбросанных по диску в следующем живописном порядке: 342573h
– 3425ABh
; 0211E5h
– 212F9h
; 0300AAh
– 300ECh
. Остается только прочитать его с диска! Нет ничего проще!
Начиная с версии 3.0, NTFS поддерживает разреженные (sparse) атрибуты, т.е. такие атрибуты, которые не записывают на диск кластеры, содержащие одни нули. При этом поле номера начального кластера отрезка может быть равным нулю, что означает, что данному отрезку не выделен никакой кластер. Поле длины содержит количество кластеров, заполненных нулями. Их не нужно считывать с диска. Вы должны самостоятельно изготовить их в памяти. Между прочим, далеко не все дисковые доктора знают о существовании разреженных атрибутов (если атрибут разрежен, его флаг равен 8000h
), и интерпретируют нулевую длину поля номера начального кластера весьма странным образом. Последствия такого "лечения" обычно оказываются весьма печальными.
Пространства имен
NTFS изначально проектировалась как файловая система, не зависящая от платформы, способная работать с большим количеством различных подсистем, в том числе: Win32, MS-DOS, POSIX. Так как каждая из перечисленных подсистем налагает собственные ограничения на набор символов, допустимых для использования в имени файла, NTFS вынуждена поддерживать несколько независимых пространств имен (name spaces).
Допустимы все символы UNICODE (с учетом регистра), за исключением символа нуля ( NULL
), обратной косой черты ( \
) и знака двоеточия ( :
). Последнее из перечисленных ограничений, кстати говоря, не есть ограничение POSIX. Напротив, это — внутреннее ограничение файловой системы NTFS, использующей этот символ для доступа к именованным атрибутам. Максимально допустимая длина имени составляет 255 символов.
Доступны все символы UNICODE (без учета регистра), за исключением следующего набора: кавычки ( "
), звездочка ( *
), косая черта ( /
), двоеточие ( :
), знак "меньше" ( <
), знак "больше" ( >
), вопросительный знак ( ?
), обратная косая черта ( \
), а также символ конвейера ( |
). Кроме того, имя файла не может заканчиваться точкой или пробелом. Максимально допустимая длина имени составляет 255 символов.
Доступны все символы пространства имен Win32 (без учета регистра), за исключением следующих: знак плюса ( +
), запятая ( ,
), точка ( .
), точка с запятой ( ;
), знак равенства ( =
). Длина имени файла не должна превышать восьми символов, за которыми следует необязательное расширение имени файла, имеющее длину от одного до трех символов.
Назначение служебных файлов
NTFS содержит большое количество служебных файлов (метафайлов) строго определенного формата. Важнейший из метафайлов, $MFT
, мы только что рассмотрели. Остальные метафайлы играют вспомогательную роль. Для восстановления данных детально знать их структуру необязательно. Тем не менее, если они окажутся искажены, то штатный драйвер файловой системы не сможет работать с таким томом, поэтому иметь некоторые представления о назначении каждого из них все же необходимо.
Краткие сведения о назначении важнейших метафайлов приведены в табл. 6.11. К сожалению, в пределах одной главы нет возможности подробно рассмотреть структуру всех существующих метафайлов, поэтому заинтересованным читателям рекомендуется искать эту информацию в документации к Linux-NTFS Project.
Таблица 6.11. Назначение основных метафайлов NTFS
Inode | Имя файла | ОС | Описание |
---|---|---|---|
0 | $MFT |
Любая | Главная файловая таблица (Master File Table, MFT) |
1 | $MFTMirr |
Любая | Резервная копия первых четырех элементов MFT |
2 | $LogFile |
Любая | Журнал транзакций (transactional logging file) |
3 | $Volume |
Любая | Серийный номер, время создания, флаг не сброшенного кэша (dirty flag) тома |
4 | $AttrDef |
Любая | Определение атрибутов |
5 | . (точка) |
Любая | Корневой каталог (root directory) тома |
6 | $Bitmap |
Любая | Карта свободного/занятого пространства |
7 | $Boot |
Любая | Загрузочная запись (boot record) тома |
8 | $BadClus |
Любая | Список плохих кластеров (bad clusters) тома |
9 | $Quota |
Windows NT | Информация о квотах (quota information) |
9 | $Secure |
Windows 2000 | Использованные дескрипторы безопасности (security descriptors) |
10 | $UpCase |
Любая | Таблица заглавных символов (uppercase characters) для трансляции имен |
11 | $Extend |
Windows 2000 | Каталоги: $ObjId , $Quota , $Reparse , $UsnJrnl |
12-15 | не используется | Любая | Помечены как использованные, но в действительности пустые |
16-23 | не используется | Любая | Помечены как неиспользуемые |
Любой | $ObjId |
Windows 2000 | Уникальные идентификаторы каждого файла |
Любой | $Quota |
Windows 2000 | Информация о квотах (quota information) |
Любой | $Reparse |
Windows 2000 | Информация о точке передачи (reparse point) |
Любой | $UsnJrnl |
Windows 2000 | Журнал шифрованной файловой системы (journaling of encryption) |
>24 | Пользовательский файл | Любая | Обычные файлы |
>24 | Пользовательский каталог | Любая | Обычные каталоги |
Практический пример
Рассказ о файловой системе NTFS был бы неполным без практической иллюстрации техники разбора файловой записи вручную. До сих пор мы витали в облаках теоретической абстракции. Пора спускаться на грешную землю.
Воспользовавшись любым дисковым редактором, например, Disk Probe, попробуем декодировать одну файловую запись вручную. Найдем сектор, содержащий сигнатуру FILE
в его начале (не обязательно брать первый встретившийся сектор). Он может выглядеть, например, как в листинге 6.4.
Листинг 6.4. Ручное декодирование файловой записи (разные атрибуты выделены разным цветом)
: 00 01 02 03 04 05 06 07 | 08 09 0A 0B 0C 0D 0E 0F
00000000: 46 49 4C 45 2A 00 03 00 | 60 79 1A 04 02 00 00 00 FILE*...`y......
00000010: 01 00 01 00 30 00 01 00 | 50 01 00 00 00 04 00 00 ....0...P.......
00000020: 00 00 00 00 00 00 00 00 | 04 00 03 00 00 00 00 00 ................
00000030: 10 00 00 00 60 00 00 00 | 00 00 00 00 00 00 00 00 ................
00000040: 48 00 00 00 18 00 00 00 | B0 D5 C9 2F C6 0B C4 01 H.......░╒╔/╞.─.
00000050: E0 5A B3 7B A9 FA C3 01 | 90 90 F1 2F C6 0B C4 01 рZ│{й·├.PPё/╞.─.
00000060: 50 7F BC FE C8 0B C4 01 | 20 00 00 00 00 00 00 00 P⌂╝■╚.─. .......
Интервал:
Закладка: