Процесс загрузки 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 процесс загрузки происходит аналогичным образом.
Адресом вторичного загрузчика может являться указание на конкретный раздел диска или на файл загрузчика. Вот пример файла 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.