Настройка и работа в Linux
adb5321d

Процесс загрузки Windows


При включении компьютера прежде всего запускается программа тестирования аппаратной части POST (Power On Self Test). После ее завершения выдается прерывание Int 19h, задача которого - попытаться найти загрузочное устройство. Поиск производится в порядке, заданном в Setup BIOS и осуществляется путем опроса нулевых секторов соответствующих устройств. Если диск загрузочный, то в его нулевом секторе находится главная загрузочная запись, MBR. Последние два байта MBR - это , служащее признаком того, что данный сектор и есть MBR, а, следовательно, диск является загрузочным. Помимо типичная MBR содержит таблицу разделов диска и программу - первичный загрузчик размером 446 байт.

Но вернемся к описанию процесса загрузки. Прерывание 19h BIOS загружает из MBR и запускает первичный загрузчик, задача которого - найти в таблице разделов активный раздел и загрузить вторичный загрузчик, который располагается начиная с первого логического сектора активного раздела. Обратим внимание на слово . Дело в том, что вторичный загрузчик в разных системах имеет разную длину. В разделе, сформатированном под файловую систему FAT, вторичный загрузчик занимает один сектор (512 байт). В разделе, сформатированном под NTFS, вторичный загрузчик занимает уже несколько секторов. Вторичный загрузчик загружает первый слой программ, необходимых для запуска операционной системы. Так, в случае MS-DOS это IO.SYS, затем

MSDOS.SYS и потом SYSINIT модуля IO.SYS.

Для других операционных систем от Microsoft процесс загрузки происходит аналогичным образом.

  • Windows 95 загружается так же, как и DOS, но заменяет IO.SYS и MSDOS.SYS своими файлами. Файлы DOS сохраняются в файлах IO.DOS и MSDOS.DOS соответственно. Когда же выбирается загрузка сохраненного DOS, Windows 95 переименовывает свои файлы в файлы с расширением *.W40 и восстанавливает первоначальные имена системных файлов DOS. Процесс продолжается с загрузки IO.SYS. Таким образом, загрузочные сектора DOS и Windows 95 одинаковы.
  • Windows NT 4 использует главную загрузочную запись DOS, но заменяет загрузочную запись активного раздела таким образом, что вместо IO.SYS загружается NTLDR. Это уже мощная программа, многое способная сделать. В частности, она находит файл boot.ini и, если значение параметра timeout больше нуля, предлагает меню загрузки. Каждая строка секции [operating systems] файла boot.ini определяет один из вариантов загрузки и строится по шаблону: адрес_вторичного_загрузчика=.

  • Адресом вторичного загрузчика может являться указание на конкретный раздел диска или на файл загрузчика. Вот пример файла boot.ini:

    [operating systems] multi(0)disk(0)rdisk(0)partition(3)\ WINNT =

    multi(0)disk(0)rdisk(0)partition(3)\ WINNT = /basevideo /sos C:\= C:\BOOTSECT.LNX=


    В строке, соответствующей Microsoft Windows, указан просто диск , так как имя загрузочного файла берется по умолчанию: bootsect.dos. Файл грузится в память и загрузка продолжается так, как если бы загрузочная запись раздела была загружена программным кодом из главной загрузочной записи. Для загрузки других систем нужно добавить в boot.ini строки, содержащие ссылки на другие загрузочные файлы. При выборе такой строки будет загружаться соответствующая операционная система. В приведенном примере так организуется загрузка Linux. Для этого в файле C:\BOOTSECT.LNX должно быть предварительно записано содержимое загрузочной записи LILO.


    Содержание раздела