Загрузка: Windows XP, Windows, 7 Windows Vista. Загрузочный
сектор: Ntldr, Bootmgr, Параметры Boot.ini.
Перед Установкой Операционной системы (ОС) программа установки должна
произвести запись в загрузочный сектор, выяснив формат раздела,
поскольку от него зависит содержимое загрузочного сектора. Если этот
раздел FAT, происходит запись в загрузочный раздел кода, поддерживающего
файловую систему FAT. Если раздел NTFS, в загрузочный сектор запишется
код, соответствующий NTFS. Задачей кода загрузочного сектора является
предоставление Windows информации о структуре и формате тома и
считывание из его корневого каталога файла Ntldr. После считывания Ntldr
в память, код загрузочного сектора передает управление в точку входа
Ntldr. Если код загрузочного сектора не может найти Ntldr в корневом
каталоге тома, он выдаст сообщение об ошибке такого плана:
"BOOT: Couldn't find NTLDRP" (FAT)
"NTLDRP is missing" (NTFS)
Если диск, содержащий загрузочный или системный том, является
SCSI-устройством и недоступен через BIOS, Ntldr загружает файл
Ntbootdd.sys и использует его функции доступа к диску вместо аналогичных
функций загрузочного кода.
Ntbootdd.sys - это экземпляр минипорт-драйвера SCSI, применяемый Windows
для полноценного доступа к загрузочному диску.
Затем Ntldr с помощью встроенного кода файловой системы считывает из
корневого каталога файл Boot.ini. В отличие от кода загрузочного сектора
код Ntldr способен читать и подкаталоги. Далее Ntldr очищает экран. Если
в корневом каталоге системного тома присутствует допустимый файл
Hiberfil.sys, Ntldr считывает его содержимое в память и передает
управление коду в ядре, восстанавливающему спящую (hibernated) систему.
Этот код отвечает за перезапуск драйверов, которые были активны на
момент выключения системы. Hiberfil.sys считается допустимым, только
если при последнем выключении компьютер был переведён в спящий режим.
Если в файле Boot.ini имеется более одной записи о доступных для
загрузки операционных системах, Ntldr выводит загрузочное меню.(Если в
файле Boot.ini только одна запись, Ntldr пропускает загрузочное меню и
сразу выводит стартовый индикатор процесса загрузки). Информация из
Boot.ini адресует Ntldr к разделу, в котором находится системный каталог
Windows(обычно \Windows). Этим разделом может быть как загрузочный, так
и другой главный раздел.
Если запись Boot.ini ссылается на MS-DOS, Ntldr считывает в память
содержимое файла Bootsect.dos, переключается обратно в 16-разрядный
реальный режим и вызывает из Bootsect.dos код MBR. В результате код из
Bootsect.dos выполняется аналогично коду, считанному MBR с диска. Код из
Bootsect.dos инициирует процесс загрузки, специфичный для MS-DOS. Так же
происходит загрузка Windows 95\98\Me если они установлены вместе с
поздними версиями Windows.
Записи Boot.ini могут включать ряд необязательных параметров,
интерпретируемых Ntldr и другими компонентами в процессе загрузки.
Полный список этих параметров ниже. В Windows XP появилась утилита
bootcfg.exe, которая предоставляет консольный интерфейс для задания ряда
параметров. Любые параметры, включаемые Boot.ini, сохраняются в
параметре реестра HKLM\System\CurrentControlSet\Control\SystemStartOptions
Таблица параметров файла Boot.ini
/3GB (32x only) |
Увеличивает пользовательскую часть адресного пространства процессов с 2 до 3Гб, тем самым уменьшая размер системной части пространства с
2 до 1 Гб. Позволяет повысить производительность приложений, интенсивно использующих виртуальную память(н-р сервер БД),
предоставляя им большее адресное пространство. Требования: Windows XP\2003 Server\2000 Advanced Server. В исполняемом файле приложения
должен присутствовать флаг поддержки 3х Гб -го пользовательского адресного пространства |
/BASEVIDEO |
Заставляет Windows использовать стандартный драйвер VGA-видеоадаптера для работы в GUI-режиме |
/BAUDRATE= |
Включает отладку в режиме ядра и позволяет изменить устанавливаемую по умолчанию скорость передачи по соединению с
удаленным хостом, используемым для отладки ядра(19200))Н-р: /BAUDRATE=115200 |
/BOOTLOG |
Заставляет Windows вести журнал загрузки и записывать его в файл %SystemRoot%\Ntbtlog.txt |
/BOOTLOGO |
Позволяет отображать собственный экран-заставку при загрузке WindowsXP\2003 Server вместо стандартного. Для это нужно
16-цветное растровое изображение размером 640х480 сохранить в каталоге Windows по имени Boot.bmp. Затем добавить /bootlogo/noguiboot
в boot.ini |
/BREAK |
Вызывает остановку HAL на точке прерывания в процессе инициализации. Первое, что делает ядро Windows,- инициализирует
HAL. Так что данная точка прерывания является первой из возможных.HAL может неопределенно долго ждать соединения с
удаленным отладчиком ядраю При использовании этого параметра без /DEBUG появляется "синий экран" со стоп-кодом 0х00000078
(PHASE0_EXCEPTION) |
/BURNMEMORY= |
Указывает объем памяти, запрещаемой для использования ОС(по аналогии с параметром /MAXMEM). Значения задаются в мегабайтах.
Н-р, /BURNMEMORY=128 означает, что 128 Мб физической памяти компьютера недоступны для Windows |
/CHANNEL= |
Используется в сочетании с /DEBUGPORT=1394, чтобы задать канал IEEE 1394, через который осуществляется коммуникационное
взаимодействие при удаленной отладке ядра. Принимает любое значение из диапазона 0-62 и по умолчанию равен 0. |
/CLKLVL |
Перенастраивает стандартную многопроцессорную версию HAL для систем типа x86 (Halmps.dll) на распознавание сигналов
системного таймера по потенциалу, а не по фронту |
/CMDCONS |
Передается при загрузке консоли восстановления(Recovery Console) |
/CRASHDEBUG |
При загрузке системы загружает и отладчик ядра, который остается неактивным до момента краха. Этот параметр освобождает
последовательный порт, который иначе был бы постоянно задействован отладчиком. Пока не произошел крах, порт может
использоваться системой(параметр /DEBUG, напротив, заставляет отладчик ядра постоянно занимать последовательный порт. |
/DEBUG |
Включает отладку в режиме ядра |
/DEBUGPORT= |
Включает отладку в режиме ядра и назначает последовательный порт для подключения удаленного хоста с отладчиком ядра, отличный от
заданного по умолчанию(обычно СОМ2 в системах минимум с двумя последовательными портами).Windows XP\2003 Server поддерживают
удаленную отладку и через порты IEEE 1394. Н-р, /DEBUGPORT=СОМ2, /DEBUGPORT=1394 |
/EXECUTE |
Отключает защиту "запрет выполнения", (см. также /NOEXECUTE) |
/FASTDETECT |
Параметр загрузки Windows по умолчанию. Заменяет /NOSERIALMICE, применяемый в WindowsNT 4. Введен для поддержки модулем NTDETECT
альтернативной загрузки WindowsNT 4. В Windows устройства, подключенные к параллельным и последовательным портам,
определяются PnP-драйверами устройств, тогда как в WindowsNT 4 эти функции возлагаются на NTDETECT. Параметр /FASTDETECT
заставляет NTDETECT пропускать перечисление устройств, подключенных к параллельным и последовательным портам(не
требуемое при загрузке Windows). А в отсутствии этого параметра NTDETECT перечисляет такие устройства, что необходимо для загрузки NT4 |
/INTAFFINITY |
Указывает стандартной многопроцессорной версии HAL для систем типа x86 (Halmps.dll) так настроить привязку прерываний, чтобы
лишь один процессор(с наибольшим порядковым номером)принимал запросы на прерывания. В отсутствии этого параметра(по умолчанию)
HAL разрешает принимать запросы на прерывания всем процессорам. |
/KERNEL= /HAL= |
Позволяет задавать имена файлов образа ядра и/или HAL, отличные от используемых по умолчанию(Ntoskrnl.exe и Hal.dll). Эти
параметры предназначены для переключения между проверочными (отладочными) и рабочими версиями ядра, а также для выбора HAL
вручную. Если вы хотите загрузить отладочную среду, состоящую только из проверочных версий ядра и HAL(этого вполне достаточно
для тестирования драйверов), выполните следующие операции:
-
Скопируйте отладочные версии ядра с дистрибутива в каталог \Windows\System32, изменив при этом их имена. Н-р, на
однопроцессорной системе скопируйте Ntoskrnl.exe в Ntoschk.exe и Ntkrnlpa.exe Ntosckpa.exe, а на
многопроцессорной Ntkrnlpm.exe в Ntoschk.exe и Ntkrpamp.exe в Ntoschkpa.exe. Файлу ядра нужно присвоить краткое имя в
формате "8.3".
-
Скопируйте с дистрибутива \I386\Driver.cab подходящую проверочную версию HAL в файл Halchk.dll в каталоге
\Windows\System32. Чтобы узнать, какую именно версию HAL нужно скопировать, найдите в \Windows\Repair\Setup.log
строку с Hal.dll. Она выглядит примерно так:\Windows\system32\hal.dll="halacpi.dll","ld8al". Искомое
имя файла HAL находится сразу после знака равенства. Файлу HAL нужно присвоить краткое имя в формате "8.3".
-
Сделайте копию строк, присутствовавших в файле Boot.ini по умолчанию.
-
В строку с определением элемента загрузочного меню добавте новый элемент для отладочной среды (Н-р, "Windows XP
Professional Checked")
-
В конец нового элемента добавте /KERNEL=NTOSCHCK.EXE /HAL=HALCHK.DLL
Учтите, что теперь в загрузочном меню доступны 2 элемента: новый - для загрузки отладочной среды и старый - для загрузки рабочей среды |
/LASTKNOWNGOOD |
Заставляет систему загружаться так, будто в загрузочном меню была выбрана команнда загрузки последней удачной конфигурации |
/MAXMEM= |
Ограничивает объём памяти доступный Windows. Физическая память, лежащая за пределами указанного значения, системой
игнорируется(не используется). Значение задаётся в мегабайтах. Н-р, при /MAXMEM=32 система использует только первые 32Мб физической памяти |
/MAXPROCPERCLUSTER= |
При использовании стандартной микропроцессорной версии HAL для систем x86 (Halmps.dll) включает кластерный режим адресации
контроллера прерываний APIC. Не поддерживается при использовании внешнего APIC-контроллера 82489DX |
/MININT |
Этот параметр используется Windows PE(Preinstallation Environment) и заставляет диспетчер конфигурации загрузить
раздел реестра SYSTEM как изменяемый (volatile), чтобы его изменения в памяти не сохранялись в соответствующем образе на диске |
/NODEBUG |
Запрещает инициализацию отладки режима ядра. Имеет болший приоритет чем остальные параметры, применяемые для отладки(/DEBUG, /DEBUGPORT и /BAUDRATE) |
/NOEXECUTE |
Доступен только в 32-х разрядных Windows при выполнении на процессорах AMD64 и только при включенной поддержке PAE.
Включает защиту "запрет использования" (no-execute protection), что заставляет диспетчер памяти помечать страницы с данными как
не исполняемые, чтобы их нельзя было выполнить как код. Это полезно для предотвращения попыток зловредного кода использовать ошибки с переполнением
буферов для запуска произвольного кода. Такая защита всегда включена в 64-разрядных версиях Windows на базе AMD64 |
/NOGUIBOOT |
Запрещает Windows инициализацию VGA-драйвера, ответственного за вывод растровой графики в процессе загрузки. Этот драйвер используется
для вывода информации о ходе загрузки, поэтому при его отключении Windows не будет выводить эту информацию. |
/NOLOWMEM |
Применяется только с параметром /PAE и только при наличии в системе более 4Гб физической памяти. Если эти условия соблюдены,
PAE-версия ядра Windows, Ntkrnlpa.exe, не использует первые 4Гб физической памяти. Для загрузки драйверов и приложений, а также
для создания всех пулов памяти используется область выше этой границы. Данный параметр предназначен для тестирования драйверов
на совместимость с системами, в которых установлено более 4Гб памяти |
/NOPAE |
Заставляет Ntldr загружать версию ядра, не поддерживающую PAE(Physical Address Extensions) даже в том случае, когда х86-система
поддерживает такой механизм и имеет более 4Гб физической памяти. |
/NOSERIALMICE=[COMx|COMx,y,z...] |
Устаревший спецификатор WindowsNt4, заменённый на /FASTDETECT. Отключает распознавание мыши на указанных COM-портах.
Применяется в том случае, если к последовательному порту подключено устройство отличное от мыши. |
/NUMPROC= |
Указывает число процессоров, которые ОС может использовать в многопроцессорной системе. Н-р, указав /NUMPROC=2 в 4-х
процессорной системе, мы запретим использование двух из четырёх процессоров. |
/ONECPU |
В многопроцессорных системах заставляет Windows работать только с одним процессором. |
/PAE |
Указывает Ntldr загрузить Ntkrnlpa.exe, версию ядра(для х86-процессоров), использующую преимущества PAE. PAE
обеспечивает 64-разрядную адресацию драйверами устройств. Этот параметр предназначен для тестирования драйверов на
совместимость с системами с большим объемом памяти. |
/PCILOCK |
Запрещает Windows динамически назначать PCI-устройствам IRQ и другие ресурсы для ввода\вывода. При этом используются настройки
заданные в BIOS. |
/RDPATH |
Указывает путь к файлу System Disk Image(SDI), который может находиться в сети и который система должна использовать для
загрузки. Часто применяется в сочетании с флагом /RDIMAGEOFFSET=, сообщающим ntldr, где в этом файле начинается образ системы. |
/REDIRECT |
Введён в Windows Server 2003. Заставляет ОС включить поддержку сервисов аварийного управления(Emergency Managment Services, EMS),
которые выводят информацию о процессе загрузки и принимают команды системного управления через последовательный порт. Этот
порт и параметр baudrate, используемые в сочетании с EMS, указываются в строках redirect= и redirectbaudrate= в разделе [boot loader] файла Boot.ini |
/SAFEBOOT |
Задаёт параметры загрузки в безопасном режиме. Никогда не указывайте этот параметр вручную, т.к. Ntldr сам задает его при
использовании меню, открываемом нажатием клавиши F8.(При загрузке Windows безопасном режиме загружаются только драйверы и
сервисы, указанные в подразделах реестра Minimal или Network, которые находятся в HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot).
После двоеточия можно указать один из из 3-х дополнительных параметров: MINIMAL - соответствует безопасной загрузке без
сетевой поддержки, NETWORK-безопасной загрузке с сетевой поддержкой. DSREPAIR(Directory Services Repaire) предназначендля
такой загрузки ОС, при которой Active Directory находится в автономном состоянии(offline), а база данных этой службы не
открывается. Это позволяет администратору выполнить диагностику, исправлять или восстанавливать базу данных. Можно использовать
еще один дополнительный параметр ALTERNATESHELL, - тогда вместо оболочки по умолчанию(Windows Explorer) загружается то, что
указано в разделе реестра HKLM\SYSTEM\CurrentControlSet\SafeBoot\AlternateShell |
/SCSIORDINAL |
Указывает идентификатор SCSI-контроллера для Windows явным образом. |
/SDIBOOT |
Применяется в системах Windows XP Embedded, чтобы ОС загружалась с образа RAM-диска, хранящегося в указанном файле System Disk Image(SDI) |
/SOS |
Заставляет Windows перечислять на экране список помеченных к загрузке драйверов устройств, а затем показывать номер версии
системы(включая номер сборки), объём ОЗУ и число процессоров |
/TIMERS= |
В системах со стандартной многопроцессорной x86-версией HAL(Halmps.dll) задает разрешение системного таймера. Аргументом является
значение в сотнях наносекунд, но частота устанавливается в соответствии с ближайшим меньшим значением, поддерживаемым HAL.
|
/USERVA=(32x only) |
Поддерживается только в Windows XP\2003 Server. Как и параметр /3GB, предоставляет приложением большее адресное пространство.
Указывается в мегабайтах, значение должно укладываться в диапазон от 2048 до 3072. Этот параметр предъявляет к
приложениям те же требования, что и параметр /3GB; используется только в сочетании с /3GB |
/WIN95 |
Указывает Ntldr загрузить содержимое файла Bootsect.w40, в ктором хранится загрузочный сектор Windows 9.х. Применим только
если на компьютере установлены 3 ОС(Windows,Windows 9.х,MS-DOS) |
/WIN95DOS= |
Указывает Ntldr использовать загрузочный сектор MS-DOS, хранящийся в файле Bootsect.w40. Применим только если на
компьютере установлены 3 ОС(Windows,Windows 9.х,MS-DOS) |
/YEAR= |
Указывает Windows игнорировать значение года, сообщаемое системными часами компьютера, и использовать заданное значение.
Этот параметр влияет на все программное обеспечение, в том числе и на ядро Windows: П-р, /YEAR=2001/(этот параметр предназначался
на тестирование на совместимость с датами 2000 года) |
|
|
Если, у вас появились вопросы, или любые предложения по дополнению или исправлению данного руководства.
Их следует отправлять по адресу.
|
|
Сайт создан в 2010 г. ©
Копирование (полное или частичное) любых материалов сайта возможно только с разрешения автора и при указании ссылки на источник.
|
| |