Логические структуры и файловые системы жестких дисков. Основные дисковые структуры и процесс загрузки, страница 3

Если BIOS нашел загрузочное устройство, начинается процесс загрузки DOS. Вот какие этапы выполняются в процессе загрузки DOS:

1.  BIOS по окончании своих операций загружает загрузочный код из главной загрузочной записи и передает ему управление. Начинается выполнение кода главной загрузочной записи.

2.  Главный загрузочный код анализирует главную таблицу разделов, определяя, имеется ли загрузочный раздел, указанный в таблице разделов.

3.  Если главный загрузочный код находит на диске расширенный раздел, он загружает расширенную таблицу разделов, которая описывает первый логический том в расширенном разделе. Анализируется расширенная таблица - не указывает ли она на другую расширенную таблицу разделов. Если ссылка имеется, то данная таблица содержит информацию о втором логическом томе в расширенном разделе, поэтому она загружается и выполняется. (Напомним, что логические тома в расширенном разделе имеют сцепленные расширенные таблицы разделов.) Этот процесс продолжается до загрузки и опознавания системой всех расширенных разделов.

4.  После загрузки всей информации о расширенном разделе (если она есть) код пытается загрузить первичный раздел, который отмечен как активный (загрузочный). Если нет разделов, отмеченных как активные, процесс загрузки прекращается с сообщением об ошибке. Часто выдается такое же сообщение, какое выдает BIOS при отсутствии загрузочного устройства, и выглядит примерно так "No boot device" (Нет загрузочного устройства).

5.  Если имеется первичный раздел, отмеченный как активный, код загружает его. Последующие этапы предполагают, что им является первичный раздел DOS.

6.  Загрузочный сектор тома загружается и проверяется, а содержащемуся в нем загрузочному коду передается управление остальной частью процесса загрузки.

7.  Загрузочный код тома проверяет правильность структур на диске. Если что-то неверно, процесс загрузки прекращается с сообщением об ошибке.

8.  Код отыскивает в корневом каталоге загрузочного устройства файлы, содержащие операционную систему. Для MS-DOS - это файлы "IO.SYS", "MSDOS.SYS" и "COMMAND.COM".

9.  Если файлы операционной системы не найдены, программа загрузки отображает сообщение об ошибке обычно в виде "Non-system disk or disk error - Replace and press any key when ready" (Несистемный диск или дисковая ошибка - Замените и при готовности нажмите любую клавишу).

10.  Если файлы операционной системы обнаружены, программа загрузки считывает их в память и передает им управление. Эти файлы содержит более полный код операционной системы, который загружает и инициализирует остальные структуры операционной системы. Для MS-DOS это означает загрузку командного интерпретатора, а затем считывание и интерпретацию содержания системных управляющих файлов CONFIG.SYS и AUTOEXEC.BAT.

Загрузка с гибкого диска отличается только несколькими первыми этапами, так как структуры гибкого диска несколько отличаются от структур жесткого диска. На гибких дисках невозможно образовать разделы, поэтому на них нет главной загрузочной записи и разделов. Поэтому для гибких дисков пропускаются этапы поиска главной загрузочной записи, и процесс продолжается с этапа 6.

В случае операционной системы Windows  в ходе загрузки начальные файлы операционной системы управляют загрузкой и выполнением дополнительных процедур.

Вирусы загрузочного сектора

Компьютерные вирусы - это небольшие программы, которые попадают в РС, выполняются без знания об этом пользователя и размножаются, "заражая" другие компьютеры.

Основной целью для вирусов является загрузочный код, который хранится на жестком диске и выполняется при загрузке с диска. Объяснение этому простое: автор вируса хочет, чтобы вирус выполнялся как можно чаще и быстро размножался. Поэтому загрузочный код, который автоматически выполняется при включении РС и при отсутствии в памяти других программ, является наиболее подходящим местом для вируса.

Вирусы одной из двух главных групп - так называемые инфекторы загрузочного сектора (boot sector infectors) - направлены на искажение важных загрузочных областей жесткого диска. Вторая основная группа вирусов "нападает" на отдельные файлы. Некоторые вирусы "заражают" код в главной загрузочной записи, а другие - код в загрузочном секторе тома. Попадая в этот код, вирус гарантирует себе обязательную загрузку в память при загрузке РС с данного тома. На форматированном диске (гибком или жестком) всегда имеется код независимо от наличия или отсутствия системных файлов.

Многие полагают, что при загрузке системы с гибкого или жесткого диска, не имеющего системных файлов (так как они были форматированы без переноса системных файлов), система не загрузится. На самом деле она загружается, но процесс загрузки быстро прекращается из-за отсутствия системных файлов. Фактически сообщение об ошибке "Non-system disk… " выводится загрузочным кодом тома, который считан с загрузочного сектора диска.

Важность понимания указанного обстоятельства связана с размножением вирусов. Так как загрузочный код тома всегда выполняется, когда система пытается загрузиться с устройства, вирус может оказаться на гибком диске, даже если он форматирован без системных файлов. Как только появилось сообщение "Non-system disk...", вирус уже может находиться в системной памяти.

Структуры дискового тома файловой системы FAT

Логическими дисковыми структурами высшего уровня являются главная загрузочная запись и таблицы разделов, которые определяют организацию всего диска. На следующем уровне находятся структуры, определяющие дисковый том. Далее рассмотрены структуры дискового тома, используемые в файловой системе FAT.