Загрузка
О файле Boot.ini
Содержимое экранного меню (если оно появится) определяется файлом Boot.ini. Однако в этом файле определяются не только варианты выбора для пользователей. Этот файл является важным элементом управления процессом загрузки операционной системы.
Содержимое Boot.ini
Boot.ini – это текстовый файл, содержащий информацию, необходимую для выполнения процесса загрузки. Вы можете редактировать этот файл в любом текстовом редакторе (этот файл является скрытым и доступен только по чтению, поэтому вы должны изменить соответствующие атрибуты, чтобы можно было сохранить ваши изменения, и не забудьте снова изменить эти атрибуты по окончании редактирования).
Как и в любом .ini-файле, каждая секция этого файла содержит заголовок в прямоугольных скобках. Информация этого файла создается во время установки операционной системы и конкретно представляет данный компьютер. Файл содержит две секции:
Секция [boot loader] содержит значение тайм-аута и путь к загружаемой по умолчанию операционной системе. Значение тайм-аута – это время (в секундах), в течение которого пользователь может сделать выбор в экранном меню. По умолчанию это значение равно 30 секундам, и пользователь видит на экране обратный отсчет времени (до 0). Если пользователь не смог сделать выбор в течение этого времени, то загружается заданная по умолчанию операционная система.
Вы можете указать другую операционную систему по умолчанию и изменить длительность тайм-аута без редактирования файла Boot.ini.
- Откройте апплет System в панели управления (Control Panel); можно также щелкнуть правой кнопкой на My Computer и выбрать пункт Properties.
- Перейдите во вкладку Advanced.
- В секции Startup And Recovery (Загрузка и восстановление) щелкните на кнопке Settings (Параметры), чтобы внести изменения в полях для ОС по умолчанию (Default operating system) и времени, в течение которого меню будет представлено на экране (Time to display list of operating systems), см. рис. 5.2.
В секции [operating systems] задаются пути к операционным системам, установленным на данном компьютере. На компьютерах x86 каждый путь вводится в его собственной строке. Формат этой информации определяется спецификациями ARC (Advanced Risk Computing).
Текстовые строки в кавычках задают текст, который выводится в пунктах экранного меню. Ниже приводится пример файла Boot.ini, автоматически помещенного в корневую папку на загрузочном диске во время установки Windows Server 2003 на новом диске.
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003" /fastdetect
ARC-путь для компьютеров x86
На компьютерах x86 имеются две структуры, доступные для ARC-пути, – строка, которая начинается с multi(), или строка, которая начинается со scsi():
multi(A)disk(B)rdisk(C)partition(D)\<%SystemRoot%> scsi(A)disk(B)rdisk(C)partition(D)\<%SystemRoot%>
где
- A – порядковый номер адаптера (первый адаптер 0, и он должен быть адаптером для загрузки).
- B – параметр для диска, и он используется только с синтаксисом scsi().
- C – порядковый номер для диска, подсоединенного к адаптеру.
- D – номер раздела, начиная с 1 (в отличие от адаптеров и дисков, нумерация которых начинается с 0).
Использование параметров A, B, C и D для синтаксиса multi() отличается от синтаксиса scsi(), см. следующие разделы.
Синтаксис multi()
Для компьютеров x86 синтаксис multi() отличается от синтаксиса scsi(). Синтаксис multi() указывает Windows, что загрузка системных файлов должна зависеть от BIOS данного компьютера. Это означает, что данная операционная система использует вызовы INT 13 BIOS для поиска и загрузки Ntoskrnl.exe и любых других файлов, необходимых для загрузки операционной системы. В ранних версиях Windows NT синтаксис multi() действовал только для дисков IDE и ESDI, но, начиная с версии Windows NT 3.5, этот синтаксис можно также использовать для дисков SCSI, если устройство SCSI сконфигурировано для использования вызовов INT 13 BIOS.
Вы можете использовать синтаксис multi() для запуска Windows на любом диске, если такие диски идентифицируются посредством стандартного интерфейса INT 13. Но поскольку поддержка вызовов INT 13 варьируется среди контроллеров дисков и поскольку большинство системных BIOS могут идентифицировать только один контроллер диска с помощью INT 13, то реально синтаксис multi() можно использовать для запуска Windows только с первых двух дисков, подсоединенных к первичному (primary) контроллеру диска (или с первых четырех дисков, если у вас имеется двухканальный контроллер EIDE).
- В системе с интерфейсом IDE синтаксис multi() можно применять максимум к четырем дискам (максимальное количество дисков, допустимых по первичному и вторичному каналам двухканального контроллера).
- В системе, где используется только интерфейс SCSI, синтаксис multi() действует только для первых двух дисков контроллера SCSI, который загружается первым во время загрузки.
- В смешанной системе (SCSI и IDE) синтаксис multi() действует только для первых двух дисков IDE, подсоединенных к первому контроллеру IDE.
Используя пояснения к параметрам выше в этом разделе, можно уточнить специфику ARC-пути при использовании синтаксиса multi().
- A – порядковый номер адаптера (первый адаптер 0, и он должен быть адаптером для загрузки).
- B – всегда равен 0, поскольку в синтаксисе multi() используются вызовы INT 13 и не используется информация параметра disk().
- C – порядковый номер для диска, подсоединенного к адаптеру (число от 0 до 3 в зависимости от количества дисков на этом адаптере).
- D – номер раздела, начиная с 1 (в отличие от адаптеров и дисков, нумерация которых начинается с 0).
Синтаксис scsi()
Для компьютеров x86 обычно используют синтаксис scsi(), если Windows Server 2003 загружают с устройства SCSI. Синтаксис scsi() указывает Windows Server 2003, что для доступа к загрузочному разделу нужно загружать и использовать драйвер устройства. Для компьютера x86 таким драйвером является Ntbootdd.sys, помещаемый в корень системного раздела во время установки (это переименованная копия драйвера устройства для конкретного адаптера).
Ниже приводится специфика ARC-пути при использовании синтаксиса scsi() на компьютере x86.
- A – порядковый номер адаптера, связанного с драйвером Ntbootdd.sys.
- B – идентификатор SCSI для соответствующего диска.
- C – логический номер устройства (LUN) SCSI. Поскольку это может быть отдельный диск, в большинстве конфигураций SCSI имеется только один LUN на один идентификатор SCSI.
- D – номер раздела.
Если у вас несколько контроллеров SCSI, для каждого из которых используется свой драйвер устройства, то значение A соответствует контроллеру, связанному с драйвером Ntbootdd.sys. Во время установки Windows Server 2003 диск, подсоединенный к одному из этих контроллеров, определяется как загрузочный диск. Программа установки копирует драйвер для этого контроллера в корневую папку системного раздела, изменяя имя драйвера на Ntbootdd.sys.
Технически вы не обязаны использовать синтаксис scsi() для дисков SCSI, кроме случаев, когда выполняется одно из двух следующих условий (оба условия препятствуют использованию вызовов INT 13 BIOS).
- BIOS отключена на контроллере, подсоединенном к диску, на котором установлена Windows Server 2003.
- Загрузочный раздел начинается с 1024-го цилиндра диска или выходит за его пределы.
Но даже если ваш диск SCSI может работать с вызовами INT 13 BIOS, предпочтительно использовать синтаксис scsi(), который вызывает использование Ntbootdd.sys для продолжения запуска операционной системы.
Синтаксис signature()
В Windows Server 2003 синтаксис signature() поддерживается в записи ARC-пути файла Boot.ini. Этот синтаксис может быть использован при выполнении одного из следующих условий.
- Раздел, в котором устанавливается Windows Server 2003, больше 7.8 Гб, или номер конечного цилиндра для этого раздела больше 1024.
- Диск, на котором вы устанавливаете Windows Server 2003, подсоединен к контроллеру SCSI, у которого отключена BIOS (вызовы INT 13 BIOS не могут быть использованы во время загрузки).
Синтаксис signature() технически одинаков с синтаксисом scsi(), но он используется для поддержки архитектуры Plug and Play, имеющейся в Windows Server 2003. При использовании синтаксиса signature() Ntldr ищет диск, сигнатура которого указана значением в круглых скобках, даже если этот диск подсоединен к контроллеру SCSI с другим номером. Это важно, если вы добавляете контроллеры SCSI.
Значение, которое помещается в скобки, берется из главной загрузочной записи (MBR) физического диска, и это уникальное шестнадцатеричное число. Это значение записывается в MBR во время работы программы установки в текстовом режиме. Как и в случае синтаксиса scsi(), для синтаксиса signature() требуется, чтобы определенный драйвер SCSI, переименованный в Ntbootdd.sys, находился в корневой папке вашего диска.