Редкая птица

Автор: Петр Каньковски
Опубликовано в журнале "Компьютерра" №25

Хорошие редакторы диска под Windows, с подробной справкой и удачным интерфейсом, встречаются редко, а для NTFS — и того реже. По структуре эта файловая система гораздо сложнее FAT, к тому же она плохо документирована, поэтому немногие программисты берутся за написание подобных продуктов.

Созданный в 1991 году Norton Disk Editor (www.geocities.com/SiliconValley/Sector/7256 ) и по сей день остается самой популярной утилитой для низкоуровневой работы с винчестером. Казалось бы, старая программа, под DOS, с текстовым интерфейсом, не умеющая работать с NTFS. Однако альтернатив ей раз-два и обчелся. Две российские программы — от Acronis (www.acronis.ru ) и «ФизТехСофта» (www.phystechsoft.com ) — не выдерживают никакого сравнения с NDE: ни одна из них не позволяет наглядно редактировать таблицы FAT, быстро переключаться между FAT и содержимым соответствующих кластеров, двумя щелчками мыши переходить из одного каталога диска в другой. Бесплатный редактор DE (www.geocities.com/SiliconValley/Sector/7256 ) не работает с дисками FAT32, а его интерфейс отбрасывает нас лет на двадцать назад1.

Но конкуренты у корпорации Symantec все-таки есть. На сайте немецкой фирмы Runtime Software (www.runtime.org ) я обнаружил редакторы диска для FAT и NTFS, которые ничуть не хуже знаменитого нортоновского продукта, а в чем-то даже превосходят его.

Рис. 1. Disk Explorer для FAT.

Редактор Disk Explorer for FAT (shareware, 30 дней, $49, дистрибутив 1,5 Мбайт) позволяет просматривать и изменять загрузочную запись, таблицы FAT, каталоги. Интерфейс сразу напоминает об NDE: те же клавиши для переключения между видами, почти такое же окно поиска, и даже некоторые пункты меню совпадают (хотя, должно быть, это удел всех редакторов диска — быть похожими на детище Питера Нортона).

Есть, впрочем, и отличия. Для редактирования выделенного поля нужно нажимать F2, предварительно включив режим Tools ® Options ® Read/Write. Вместо неочевидной и неудобной команды Write to Sector в Disk Explorer введена Paste From File, которая записывает данные в текущий сектор. Обратите внимание, что Copy to File и Paste From File сохраняют не сектор целиком, а только видимые в текущий момент данные (например, в загрузочной записи не будет сохраняться код загрузчика). Чтобы скопировать весь сектор, нужно переключиться в шестнадцатеричный режим (View ® As Hex).

Стоит также упомянуть «браузерные» кнопки Back и Forward, которых иногда так не хватает в NDE. В нижней части окна указаны все каталоги, загрузочные сектора и таблицы разделов, которые прошел пользователь, прежде чем добраться до текущего кластера (строка Path).

В отличие от NDE, Disk Explorer не выполняет проверку диска и не устанавливает соответствие между номерами кластеров и хранящимися в них файлами. Поэтому при работе с таблицами FAT не видно, какие из кластеров принадлежат одному файлу.

Кроме обычных физических и логических дисков Disk Explorer может открывать файлы образов (создавать которые можно с его же помощью), а также диски на другом компьютере. Компьютеры соединяются через COM-порт или по протоколу TCP/IP. На одном из них должен быть установлен Disk Explorer, а на другом — бесплатная программа HDHost с сайта Runtime Software. Прочие возможности Disk Explorer включают в себя восстановление удаленных файлов и монтирование (подключение) частично поврежденных дисков.

Особый интерес представляет Disk Explorer for NTFS — чуть ли не единственный редактор диска для этой файловой системы (shareware, 30 дней, $69, дистрибутив 1,6 Мбайт). Редактировать записи MFT и каталоги, отображая процесс в наглядной форме, он пока не умеет. Можно либо просматривать эти данные (в удобном и понятном виде), либо редактировать их в шестнадцатеричных кодах2.

Рис. B. Каталог в Disk Explorer для NTFS.

Сохранение в файл и вставка из файла ничем не отличаются от аналогичных операций в Disk Explorer для FAT. Вы также можете работать с образами дисков и подключаться к винчестеру удаленного компьютера. Зашифрованные файлы программа не открывает, но со сжатыми работает без проблем. Disk Explorer for NTFS можно запустить как под Windows NT/2000/XP, так и под Windows 9x.

В своем сегодняшнем состоянии DE может пригодиться для изучения устройства NTFS, для восстановления удаленных файлов и для чтения информации с диска NTFS из-под Windows 9x. Если авторы добавят наглядное редактирование записей MFT и каталогов, мы получим полнофункциональный редактор диска, позволяющий исправлять ошибки, изменять и удалять дополнительные потоки файлов, а также экспериментировать с другими возможностями NTFS.

Несомненное достоинство Disk Explorer для FAT и NTFS в том, что это Windows-программа. Не нужно выходить в DOS, чтобы разделить цепочки пересекающихся кластеров или восстановить ошибочно удаленный файл. Хотя это достоинство превращается в недостаток, если из-за серьезных повреждений на диске пользователь не может запустить Windows — тогда ему все же придется достать загрузочную дискету со старым добрым Norton Disk Editor.

Секреты NTFS

Статей и книг, описывающих структуру FAT, издано немало. Кроме того, информация на эту тему есть в справке к NDE (на английском языке) или к Acronis Disk Editor (на русском). А вот сведения об NTFS разыскать непросто. Microsoft никогда не публиковала полного описания этой файловой системы, и многие детали ее устройства для широкой аудитории остаются тайной за семью печатями. Однако почти все заголовки и атрибуты уже расшифрованы группой хакеров, разрабатывающих драйверы для использования NTFS под Linux (см. www.linux-ntfs.sourceforge.net/ntfs/index.html).

Информации, представленной на сайте, вполне достаточно, чтобы прочитать записи Master File Table (MFT) в шестнадцатеричном представлении. Чтобы читателю было проще вникнуть в технические описания и начать работать с Disk Explorer for NTFS, расскажу об устройстве NTFS в самых общих чертах.

Любой файл на диске NTFS описан в MFT. Эта таблица состоит из записей, длина которых обычно равна 1 Кбайт. Каждая запись содержит сведения об одном файле, каталоге или метафайле. К метафайлам относятся метка диска, корневой каталог, списки сбойных и свободных кластеров и, наконец, сама MFT. Она расположена в начальной области диска, а остальное пространство занимают файлы и каталоги.

Запись MFT содержит атрибуты — это любые сведения о файле. Имя, дата создания и даже содержимое файла — всё это атрибуты, причем в будущих операционных системах их список может быть расширен без кардинального изменения структуры MFT. В Disk Explorer можно просмотреть сведения, содержащиеся в каждом из атрибутов (рис. А).

Рис. А. Пример записи MFT для обычного файла.

Атрибуты могут быть резидентными и нерезидентными. Первые находятся в самой записи MFT, вторые содержат ссылки на кластеры. Если FAT тупо записывает для каждого файла возрастающий ряд номеров кластеров, то NTFS сохраняет лишь первый кластер в цепочке и длину цепочки. Цепочек может быть несколько, и тогда атрибут становится фрагментированным. Его цепочки выглядят примерно так:

- три кластера, начиная с кластера 200;
- два кластера, начиная с кластера 205, и так далее.

Цепочки сохраняются в запись MFT, где номера следующих кластеров отсчитываются относительно номеров предыдущих; кроме того, номер кластера и длина цепочки записываются переменным количеством байтов. Смысл этих ухищрений в том, чтобы сократить размер цепочек и увеличить максимальное количество кластеров на диске до 264. Однако Windows 2000/XP не поддерживает 64-разрядные номера кластеров. Теоретический предел размера диска для NTFS — 16 экзабайт (16 млрд. гигабайт). Существующие операционные системы работают с дисками до 2 Тбайт (2048 Гбайт).

Содержимое файла является нерезидентным атрибутом $80 ($DATA). Таких атрибутов может быть несколько — в этом случае говорят, что файл содержит дополнительные потоки. Каждый из потоков имеет свое имя, которое отделяется от имени файла двоеточием. С помощью перенаправления ввода-вывода вы можете создать новый поток или прочитать данные из существующего потока:

rem создать и прочитать поток mystream файла new.txt
echo ”Hello, NTFS!” > new.txt:mystream
more < new.txt:mystream

То, что мы привыкли считать содержимым файла, для NTFS является всего лишь главным потоком. Его размер принимается за размер файла. Остальные потоки невозможно просмотреть в большинстве файловых менеджеров, так что в этих потоках нетрудно скрыть любую информацию от посторонних глаз.

Рис. B. Каталог в Disk Explorer для NTFS.

Каталоги хранят список файлов в четырехпутевом сбалансированном дереве. Проще говоря, каталог в NTFS — это упорядоченный по алфавиту список файлов (напомню, что в каталогах FAT имена файлов не отсортированы). Сортировка помогает ускорить обращение к файлам. Для каждого файла каталог содержит копию некоторых данных из MFT (имя, размер, атрибуты, дата создания) и ссылку на запись MFT, позволяющую получить всю остальную информацию, например о потоках и порядке следования кластеров в них. Используя Disk Explorer, вы можете убедиться, что кроме длинных имен файлов каталоги NTFS сохраняют короткие — для совместимости с программами DOS и Windows 3x.

NTFS — быстрая, надежная и расширяемая файловая система, которую выгодно использовать на жестких дисках объемом больше 8 Гбайт. На небольших дисках MFT и каталоги NTFS занимают слишком много места, поэтому для таких дисков лучше выбрать файловую систему FAT.

Долгое время недостатком NTFS являлась слабая поддержка со стороны других операционных систем (не Windows NT), а также небогатый выбор программ для восстановления данных и низкоуровневой работы с дисками. Во многом виновата сама Microsoft, не пожелавшая раскрыть все секреты NTFS. Но это не остановило сторонних разработчиков, которые вовремя ухватились за столь выгодную идею (взгляните еще раз на цену Disk Explorer for NTFS) и заполнили образовавшуюся рыночную нишу.


1 Например, чтобы просмотреть номера кластеров файла, нужно выучить такую последовательность горячих клавиш: F7, затем выбрать нужный файл, нажать Enter и Shift+F7. Меню в DE нет, мышь не поддерживается.
2 Вряд ли кто-то отважится этим заняться. Слишком уж сложна и запутана структура NTFS.


<<Танк в миниатюре
Все материалы номера
Безопасные нанотехнологии >>