| |||||||||||||||||||||||||||||||||
От FAT к NTFS и обратноИгорь Орещенков С выходом операционных систем Windows 2000, а затем и Windows XP стал очевидным переход к новому качественному уровню продуктов как для офисного, так и для бытового использования. Каковы же основные отличия этих версий операционных систем от получивших широкое распространение Windows 9x (к которым, без сомнения, можно отнести и Windows Millennium)? Об этом уже немало писалось на страницах как “Компьютерной газеты”, так и многих других периодических изданий. Однако все авторы особо отмечают использование нового ядра Windows NT, что повысило надежность работы операционной системы с точки зрения корректности выполнения многозадачных приложений, расширило возможности сетевых настроек и позволило использовать файловую систему NTFS (New Technology File System), надежность которой подтверждена годами использования на серверных платформах. Остановимся на последнем отличии. Почему именно NTFS и почему только сейчас? Дело в том, что способ хранения файлов в этой системе аналогичен способу хранения информации в системах управления базами данных, использующих механизм транзакций. Транзакция — это последовательность элементарных операций, которая может быть либо выполнена полностью, либо полностью отменена. Такой подход гарантирует защиту от нарушения файловой структуры даже при выключении питания компьютера в самый неподходящий момент. Однако поддержка механизма транзакций в файловой системе требует дополнительных затрат времени процессора и снижает производительность компьютера, что и являлось основным фактором, сдерживающим широкое распространение системы NTFS в сфере персональных компьютеров. Современные компьютеры, оснащенные оперативной памятью от 64 Мб и процессорами Celeron и лучше, имеют достаточный запас производительности для использования NTFS. Однако сегодня во многих организациях имеется уже сформировавшийся парк компьютеров на базе процессоров Pentium первого поколения, которые вполне успешно справляются с офисными приложениями. Как правило, такие системы работают под управлением Windows 95/98 и используют файловую систему FAT, хотя именно в организациях предъявляются повышенные требования к надежности хранения информации. Последние версии операционных систем, о которых шла речь выше, для компьютеров такого класса являются слишком тяжеловесными. Как же получить преимущества файловой системы NTFS, избежав при этом затрат на модернизацию вычислительной техники? Возможный выход заключается в использовании на рабочих местах операционной системы Windows NT 4.0 Workstation. Несмотря на то, что ее презентация состоялась в девяностых годах прошлого века, при использовании Service Pack 6 и установке Internet Explorer 5.0 с аксессуарами она способна предоставить вполне современный пользовательский интерфейс, аналогичный Windows 98, расширенный набор сетевых настроек и поддержку файловой системы NTFS. Однако при переходе на Windows NT пользователь может столкнуться с неожиданной проблемой. Дело в том, что установка Windows NT возможна только либо на раздел FAT 16 (с последующим преобразованием в NTFS), либо на новый раздел, который формируется из неиспользовавшейся до этого области дискового пространства. Второй вариант очень мало вероятен, потому что, как правило, дискового пространства никогда не бывает слишком много, настолько, чтобы держать значительную его часть не размеченным. Первый вариант возможен, однако FAT 16 слишком расточительна при использовании на разделах большого объема. Поэтому будем предполагать, что пользователь желает установить Windows NT на компьютер, жесткий диск которого разбит на разделы FAT 32. Как быть в такой ситуации? Переформатирование раздела ни к чему, кроме потери информации, не приведет, потому что тип файловой системы, FAT 16 или FAT 32, выбирается на этапе формирования разделов. Изменить же тип раздела без его уничтожения программа FDISK не позволяет, а чтобы уничтожить первый раздел, нужно предварительно уничтожить все последующие, естественно, со всей хранящейся на них информацией. Самым удобной, а в случае, если раздел больше 2 Гб, то и единственной альтернативой является использование специальной программы, позволяющей изменять как тип файловой системы раздела, так и его размер, причем зачастую с сохранением всей имеющейся информации. Примером может служить программа Partition Magic, поддерживающая множество типов файловых систем и имеющая все возможности стандартного менеджера дисков FDISK. Но в этой статье речь пойдет о способе изменения файловой системы раздела без использования какого бы то ни было специализированного программного обеспечения, за исключением того, что содержится на стандартном загрузочном диске Windows 98. Собственно, для реализации такой операции потребуются только загрузочные файлы и редко используемый отладчик Debug.Exe. К сожалению, с помощью такого скромного инструментария не удастся избежать потери всей информации, хранящейся на модифицируемом разделе. Кроме того, в случае малейшей ошибки возможно разрушение системных областей жесткого диска, что приведет к потере всей хранящейся на нем информации. Поэтому подходить к выполнению операции по изменению типа файловой системы нужно с полным осознанием возможности наступления описанных выше последствий. Необходимо в обязательном порядке создать резервную копию всей важной информации, хранящейся на всех разделах жесткого диска с тем, чтобы ее можно было восстановить в случае самого неблагоприятного развития событий. Перед выполнением действия нужно осознавать его суть, для чего лучше не полагаться на текст статьи, в которой возможны опечатки, а обратиться к заслуживающему доверия руководству. Теперь перейдем к рассмотрению сути проблемы. Пусть в распоряжении пользователя имеется жесткий диск, содержащий несколько разделов FAT, причем первый раздел (диск C:), на который предполагается устанавливать Windows NT, имеет файловую систему FAT 32. Так как в случае успешного выполнения описанных ниже действий будет потеряна информация только с раздела C:, то необходимую информацию с него можно временно переписать на другие разделы (диски D:, E:, и т.д.). При этом нельзя забывать, что Windows NT в базовом варианте вообще не обслуживает разделы FAT 32. Поэтому для получения доступа к другим логическим дискам после ее установки следует позаботиться о наличии соответствующей программы-драйвера. Однако следует понимать, что в случае ошибки может быть потеряна вся хранящаяся на жестком диске информация, поэтому еще раз вспомните предупреждение, изложенное выше. Вообще, практика показывает, что удобнее на диске C: хранить операционную систему и приложения (например, Microsoft Office, Photo Shop и т.д.), а все пользовательские данные (документы, таблицы, базы данных) — на каком-нибудь другом разделе. Это позволяет свободно манипулировать с диском C:, выполняя при необходимости даже его форматирование с последующим восстановлением операционной системы и приложений с дистрибутивных носителей информации. При этом данные пользователя находятся в относительной безопасности. Чтобы изменить тип файловой системы, нужно знать, где содержится соответствующая информация. Каждый жесткий диск, используемый на IBM-совместимых компьютерах, имеет так называемую таблицу разделов (Partition Table), которая размещается в самом первом секторе жесткого диска, получившего название MBR (Master Boot Record). Для того чтобы однозначно указать на сектор жесткого диска, необходимо знать три его “координаты”: номер головки, номер цилиндра и номер сектора. Когда речь идет о физических секторах (как, например, в этой статье), головки и цилиндры нумеруются с “нуля”, а сектора — с “единицы”. Таким образом, “координаты” сектора MBR будут следующими: головка 0, цилиндр 0, сектор 1.
Теперь можно прочитать содержащуюся в этом
секторе информацию. Для этого служит
функция операционной системы с номером 13 Однако как же выполнить чтение сектора? Тут-то нам и понадобится загрузочная дискета с программой-отладчиком DEBUG. Сначала желательно загрузить компьютер именно с этой дискеты. Затем из командной строки запускается отладчик. На экране появится приглашение к вводу команд отладчика в виде “дефиса”. В ответ на приглашение нужно ввести команду, позволяющую записать небольшую программу на языке ассемблера, начиная с адреса 100:
A:\>debug
Первые четыре шестнадцатеричные цифры адреса (до “двоеточия”) зависят от конфигурации памяти и указывают на ее сегмент, в котором разместилась программа. Так как выходить за границы этого сегмента не предполагается, то они в тексте статьи заменены на последовательность “XXXX”. Интерес будут представлять только последние четыре цифры адреса.
Приведем краткое описание программы.
Первая команда выбирает функцию чтения
сектора. Вторая (с адресом 102
Теперь все готово для чтения сектора MBR. Еще
раз проверьте правильность ввода программы.
Если обнаружены какие-нибудь ошибки, их
можно исправить, введя команду “a <адрес>”,
где <адрес> — адрес корректируемой
команды. Например, если по адресу 10C
-a 10C
Чтобы снова вывести на экран текст всей программы, надо подать следующую команду: -u 100 l 14
В ней “100 После проверки программу можно выполнить. Для этого подается команда “g” следующим образом:
Нормальное завершение работы программы
Посмотрим теперь, какая
информация содержится в таблице разделов.
Сектор MBR записан по адресу 200 -d 3be l 42
Сектор MBR завершается сигнатурой 55AA Каждая запись таблицы разделов имеет длину 16 байт и содержит следующую информацию об описываемом ею разделе:
Примечание к
таблице.
Деление на сектор/цилиндр по границе байта
принято условно, потому что цилиндры
кодируются 10-разрядным двоичным числом, и
два старших разряда помещаются в байте с
номером цилиндра. При загрузке регистра CX
таким двухбайтовым числом, он готов к
использованию в функции 13
Так как нужно изменить файловую систему
основного раздела (диска C:), то достаточно
рассмотреть первую запись таблицы разделов.
Как следует из приведенных выше таблицы и
распечатки, идентификатор файловой системы
находится по адресу 3С2
-e 3c2
После этого лучше еще раз просмотреть содержимое памяти, соответствующее таблице разделов с помощью команды “d 3be l 42”, чтобы убедиться, что все сделано правильно. Теперь наступило время выполнить самый ответственный шаг — записать измененный сектор MBR на жесткий диск. После этого отменить изменения будет уже невозможно.
Для этого в программе, которая все еще
находится в памяти по адресу 100
-a 100
Остальные параметры менять не следует, так как они остаются такими же, как и при чтении сектора в память. После проверки программы (а ее текст можно вывести на экран командой “u 100 l 14”) ее можно выполнить: -g =100 Нормальное завершение работы программы - Следует учитывать, что запись выполняется в область диска, которая защищается антивирусными средствами BIOS, поэтому перед выполнением всех манипуляций их следует либо отключить, либо разрешить запись при появлении на экране окна с соответствующим запросом. Итак, таблица разделов исправлена. Если теперь перезагрузить компьютер с все той же загрузочной дискеты и запустить программу FDISK, она покажет, что первый раздел имеет файловую систему FAT 16. Однако есть еще один нюанс. Информация о разделе хранится не только в секторе MBR, но и в первом, загрузочном секторе самого раздела. Поэтому попытка переформатировать диск C: с помощью программы FORMAT не удастся.
Для того чтобы полностью подготовить
раздел к форматированию, нужно стереть его
собственный загрузочный сектор. А так как
загрузочный сектор раздела является его
первым сектором, то его “координаты” можно
определить все из той же таблицы разделов,
которая хранится в MBR. Если обратиться к
распечатке памяти, содержащей таблицу
разделов, то “координаты” загрузочного
сектора основного раздела начинаются с
адреса 3BF Перед тем, как очищать загрузочный сектор, желательно убедиться в правильности определения его координат. Для этого после исправления команд, отвечающих за настройку “координат” сектора, нужно первую команду снова настроить на чтение сектора, то есть по адресу 100 записать “mov ah, 2”. Если из таблицы разделов, например, видно, что Hb = 1, Sb = 1, Cb = 0, то программа должна выглядеть следующим образом:
-u 100 l 14
Тогда после ее выполнения командой “g =100”
можно оценить правильность ввода координат,
просмотрев результат считывания с помощью
команды “d 200 l 200”. Последние байты
загрузочного сектора должны содержать
сообщения операционной системы типа “Invalid
system disk” и имена системных файлов “Io.Sys” и
“Msdos.Sys”, а в самом конце записана все та же
сигнатура 55AA
После такой проверки можно предполагать,
что координаты загрузочного сектора
определены правильно. Для его очистки
достаточно записать в сектор 512 нулевых
байтов. Чтобы подготовить образ очищенного
загрузочного сектора в памяти, надо
выполнить команду отладчика “f 200 l 200 0”.
После этого можно настроить программу на
запись (то есть по адресу 100 После перезагрузки компьютера с дискеты (перезагрузку нужно выполнить обязательно!) можно переформатировать диск C: с помощью программы FORMAT, в результате чего на нем будет создана файловая система FAT 16. Теперь можно приступать к установке операционной системы Windows NT и использовать все ее преимущества, в том числе и файловую систему NTFS. Итак, в этой статье был рассмотрен способ изменения файловой системы основного раздела жесткого диска. Отметим, что этот способ работает только в том случае, если размер основного раздела меньше 2 Гб, потому что FAT 16 не поддерживает разделы большего размера. При изменении файловой системы теряется вся информация, содержащаяся на разделе, а в случае ошибки может быть безвозвратно утеряна информация, содержащаяся на всех разделах жесткого диска, поэтому пользоваться сведениями из этой статьи следует с осторожностью, осознавая все возможные последствия. Однако при известной осторожности можно сохранить как структуру разделов жесткого диска, так и информацию на разделах, которых не коснулись изменения. После установки операционной системы желательно убедиться в отсутствии нарушений файловой структуры всех логических дисков, использовав для этого программу Scan Disk или Norton Disk Doctor.
И в заключение остается только добавить,
что сведения, приведенные в данной статье,
можно использовать и для обратного
преобразования NTFS в FAT 16/32, учитывая, что
идентификатор системы NTFS — 07 Источник: http://www.nestor.minsk.by/kg
| |||||||||||||||||||||||||||||||||
Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com |