Загрузчик ОС Windows NT/2K/XP В корневой директории системного раздела жесткого диска с установленной ОС Windows NT / 2000 / XP находятся загрузочные файлы ntldr, boot.ini, ntdetect.com, ntbootdd.sys и bootsect.dos, необходимых для загрузки установленных на компьютере операционных систем. Раздел диска или диск, на котором располагается папка Winnt для Windows NT или Windows для XP и системные файлы, необходимые для работы ОС (в том числе ntoskrnl.exe, ядро Windows) принято называть загрузочным. Загрузочный раздел может не совпадать с системным разделом, и, поэтому при запуске ПК необходимо, чтобы загрузчик Windows без труда нашел системные файлы. При включении ПК ход загрузки операционной системы проходит в несколько этапов: 1. BIOS компьютера считывает и загружает в оперативную память главную загрузочную запись Master Boot Record (MBR), в которой находится таблица разделов диска и небольшая программа — эта программа находит начальный адрес системного раздела на диске и загружает в память копию его загрузочного сектора (сектор 0), а затем, если раздел помечен как "активный" в таблице разделов, передает управление другой программе — загрузчику Windows из только что перенесенного в память загрузочного сектора. 2. В нулевом секторе жесткого диска находится загрузочный код, который распознает файловую систему, а затем находит, загружает в память и запускает следующую специальную программу из корневой директории системного диска — ntldr (от NT Loader), предназначенную для инициализации загрузки самой операционной системы, задания некоторых параметров ее работы и для вывода меню вариантов загрузки в мультизагрузочной системе. После этого уже начинается выполнение обычных программ из файлов, находящихся на диске, что и приводит к полной загрузке всей операционной системы и к возможности запускать прикладные программы. При загрузке NTLDR выполняет следующие шаги: 1. Переводит процессор в «плоский» 32-битный режим работы (32-bit flat memory mode); 2. Организует доступ к текущей файловой системе (FAT или NTFS); 3. Если присутствует файл hiberfil.sys и загрузчик обнаруживает образ «спящего» режима, содержимое образа загружается в оперативную память и система восстанавливается в предыдущее состояние. 4. В противном случае, он читает файл boot.ini и выводит пользователю соответствующее меню для выбора запускаемой ОС: o если была выбрана не-NT система (например Windows 98), тогда он загружает файл, указанный в boot.ini (bootsect.dos, если не указан иной файл, являющийся полноценной загрузочной записью), и управление передаётся этому файлу, либо он загружает операционную систему на базе DOS. o если же была выбрана система на базе Windows NT, то запускается программа ntdetect.com, которая собирает информацию о составе оборудования. 5. Запускает файл Ntoskrnl.exe (ядро операционной системы), передавая ему собранную информацию о составе оборудования, после чего происходит запуск операционной системы. NTLDR позволяет пользователю выбрать желаемую операционную систему для запуска из обычного меню; также, для операционных систем Windows NT и более поздних, могут быть указаны дополнительные опции загрузки ядра. Все эти настройки хранятся в файле boot.ini, который должен находиться в корне того же логического диска, что и NTLDR. Функции файла boot.ini: управление содержимым меню выбора операционной системы во время загрузки ПК; управление самим процессом загрузки системы, а также задание некоторых параметров ее дальнейшего функционирования. Файл boot.ini составлен по стандарту ini-файлов. Он содержит разделы с названиями в квадратных скобках и параметры в каждом из разделов. В boot.ini предусмотрены разделы [boot loader] и [operating systems], но можно добавить и другие разделы, они системой будут проигнорироваться — это нередко используется для того, чтобы временно закомментировать тот или иной параметр. Редактирование файла производится в любом текстовом редакторе. Кроме того, возможны специальные способы редактирования через: MSCONFIG.EXE или BOOTCFG.EXE. Для работы со скрытым файлом boot.ini, находящимся в корневой директории загрузочного диска, необходимо снять с него атрибут "только чтение", иначе текстовый редактор не сможет сохранить внесенные в boot.ini изменения. Пример файла boot.ini: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Windows Server 2008, Enterprise RU" /noexecute=optout /fastdetect multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect C:\="Microsoft Windows" Секция [boot loader] timeout= — время ожидания, пока пользователь выберет вариант загрузки (задаётся в секундах). default= — ОС по умолчанию. То есть та ОС, которая будет выбрана по истечении времени «timeout», если пользователь не сделает никакого выбора. redirect= — имя порта. redirectbaudrate= — скорость порта. Секция [operating systems] содержит информацию об установленных ОС и откуда и как их загружать. scsi(x) — указывается при использовании контроллера SCSI с отключённым BIOS, где x — номер адаптера, с которого будет производиться загрузка. multi(0) — порядковый номер адаптера, с которого осуществляется загрузка. (multi(*) или scsi(*) или signature(*)). disk(0) — обычно равен 0 (в случае использования multi(*)). rdisk(n) — порядковый номер жёсткого диска, с которого осуществляется загрузка. От 0 до 3. partition(n) — порядковый номер раздела жёсткого диска, с которого загружается ОС. Нумерация начинается с 1. Файл boot.ini может также содержать другие секции: [multiboot] и [flexboot]. Вопросы 1. Что такое MBR? Как восстановить MBR? 2. Что произойдет, если в файле boot.ini указать в секции [boot loader] параметр timeout равным 0? 3. Для записи чего используется формат ARC (Advanced RISC Computing)? Каковы его правила? 4. Что означают параметры /bootlog, /fastdetect[=<порт>], /safeboot:<значение>, если их указать в файле boot.ini? 5. Как называется файл протоколирования загрузки? Где он сохраняется? Какая информация содержится в файле протоколирования загрузки? 6. Напишите параметры в файле boot.ini для операционной системы, которая установлена на втором разделе второго физического жесткого диска.