:News: :Hi-Fi: :Scripts: :Docs: :FAQ: :Glossary: :Forum: :Humor: :#config on RusNet: :About:
































FAQ - Windows

Ключи загрузчика Windows XP

Строение файла BOOT.INI в простейшем случае, с одной операционной системой на диске ПК Intel х86, выглядит следующим образом:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows XP Professional" /fastdetect

При использовании двух операционных систем, например, Windows Me и Windows XP, содержимое файла будет примерно таково:

[boot loader]
timeout=5
default=C:\
[operating systems]
C:\="Windows Millennium Edition"
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows XP Professional" /fastdetect

Как можно заметить, в данных примерах раздел [boot loader] служит для задания двух параметров загрузки операционной системы, в частности, параметр определяет количество секунд, в течение которого пользователь имеет возможность выбрать либо загружаемую ОС, либо один из пунктов загрузочного меню (например, загрузить систему в режиме защиты от сбоев). При загрузочное меню не отображается, а при это меню будет находиться на экране неограниченное время в ожидании выбора пользователя. Каждый пользователь волен выставить это время по своим вкусам - для меня удобной цифрой является 5 секунд. По умолчанию же задержка составляет 30 секунд, максимум - 999.
Параметр определяет путь к загружаемой по умолчанию операционной системе. Путь этот в случае с Windows NT задаётся в формате ARC (Advanced RISC Computing), о правилах которого чуть ниже. Если же в мультизагрузочной системе ОС по умолчанию является, например, Windows 98 (или MS-DOS, Linux), то нередко достаточно указать просто , где С: - диск, на котором находятся системные файлы Windows 9x (вернее - образ её загрузочного сектора BOOTSECT.DOS, а также IO.SYS, MSDOS.SYS и т.д). Такой операционной системе и в следующем разделе [operating systems] будет соответствовать строка типа

C:\="Windows Millennium Edition"

или

C:\bootsect.lnx="Linux"

то есть путь к файлу-образу её загрузочного сектора (его название может быть любым по выбору пользователя). Кстати, для создания такого файла-образа удобно использовать утилиту BootPart (http://www.winimage.com/bootpart.htm), предназначенную как раз для расширенной работы с загрузчиком NT.
В разделе [operating systems] находятся сведения об установленных операционных системах, на основании которых и формируется загрузочное меню. Так, в каждой строке этого раздела прописан путь ARC к загрузочному разделу Windows NT плюс имя папки Windows и текст, отображаемый в соответствующей этой операционной системе строке загрузочного меню, плюс некоторые параметры, используемые при выборе данной системы. Учтите, что ARC-путь (кроме имени папки и названия ОС) должен быть записан маленькими (строчными) буквами - по крайней мере, в Windows NT 4 заглавные буквы приводили к невозможности загрузить систему. Максимально возможное число строк в этом разделе - 10, следовательно, и операционных систем на своем ПК вы можете иметь одновременно аж 10 штук.
Если вы вдруг утратили файл BOOT.INI, то самое сложное при его ручном восстановлении - правильно воссоздать путь к загрузочному разделу в формате ARC. Путь этот может начинаться либо с метки multi(), либо с метки signature(). Метку multi() можно наблюдать в подавляющем большинстве случаев, применяется она для дисков IDE, ESDI, SCSI в тех случаях, когда ОС для своей загрузки использует механизмы системного BIOS (прерывание INT13). При таком раскладе запись пути к загрузочному диску и к директории загружаемой операционной системы в файле BOOT.INI будет выглядеть следующим образом:

multi(0)disk(0)rdisk(X)partition(Y)\ИМЯ_КАТАЛОГА_WINDOWS="НАЗВАНИЕ_ОС, ОТОБРАЖАЕМОЕ_В_ЗАГРУЗОЧНОМ_МЕНЮ" /ПАРАМЕТР

Здесь:

multi(0) указывает порядковый номер адаптера, с которого осуществляется загрузка, и всегда имеет значение <0> (нумерация начинается с нуля, начиная с контроллера, расположенного ближе к слоту 0 на материнской плате);

disk(0) - всегда равен нулю, так как прерывание INT13 не может использоваться для идентификации нескольких дисковых контроллеров (для большинства BIOS);

rdisk(X) - определяет порядковый номер жёсткого диска, с которого производится загрузка, нумерация начинается с 0, и обычно X - число от 0 до 3;

partition(Y) - порядковый номер раздела жёсткого диска, с которого загружается ОС, нумерация начинается с 1 (соответствует диску С: в привычном обозначении), в первую очередь нумеруются первичные разделы, затем идут логические диски. Не нумеруются расширенные разделы MS-DOS (тип 5) и разделы типа 0 - неиспользуемые.

Формат записи, начинающийся с метки signature() (ранее, в NT для этого служила метка scsi(), теперь применяется signature(), поддерживающая работу с механизмами Plug-n-Play Windows 2000/XP) встречается реже и используется при работе как со SCSI-дисками (если у контроллера SCSI отключен BIOS), так и с IDE-дисками в отсутствие поддержки INT13. В этом случае запись в BOOT.INI принимает такой вид:

signature(X)disk(Y)rdisk(Z)partition(W)\ИМЯ_КАТАЛОГА_WINDOWS="НАЗВАНИЕ_ОС, ОТОБРАЖАЕМОЕ_В_ЗАГРУЗОЧНОМ_МЕНЮ" /ПАРАМЕТР

Здесь:

signature(X) - указывает уникальную сигнатуру диска (шестнадцатеричное число - signature(8b467c12)), содержащуюся в его MBR. Сигнатура эта вписывается в главную загрузочную запись диска в процессе установки Windows, в начале её текстового этапа (и может быть повреждена, например, вирусом - в этом случае вам потребуется изучить документ http://support.microsoft.com/default.aspx?scid=kb;en-us;Q119467);

disk(Y) - идентификатор SCSI ID жёсткого диска;

rdisk(Z) - номер SCSI LUN (Logical Unit Number) жёсткого диска, практически всегда это 0; partition(W) - порядковый номер раздела жёсткого диска, с которого загружается ОС, нумерация начинается с 1, в первую очередь нумеруются первичные разделы, затем идут логические диски. Не нумеруются расширенные разделы MS-DOS (тип 5) и разделы типа 0 - неиспользуемые.

Обратите внимание, что если используется формат SIGNATURE(), то в корне системного диска должен находиться файл ntbootdd.sys - переименованная копия драйвера мини-порта SCSI, предназначенная для доступа к SCSI-адаптеру при загрузке.
По умолчанию вплоть до появления Windows XP именем каталога, в который установлена Windows, являлось . В Windows XP (видимо, чтобы простому пользователю, недолюбливающему всяческие монструозные и трудноуправляемые NT, лишний раз не напоминать родословную этой операционной системы) от этой традиции отказались, и системная папка носит имя Windows. Разумеется, если вы выбрали собственное название этой папки, то в файле BOOT.INI должно быть указано именно оно. То, что следует в кавычках после имени системной папки - всего лишь текст, отображаемый в загрузочном меню и его можно полностью изменять по усмотрению пользователя, главное - чтобы пользователь понимал, какая ОС соответствует каждой записи.
В конце каждой строки с ARC-путём допускается указывать необязательные ключи запуска Windows. Строчные и заглавные буквы в этих параметрах не различаются. По умолчанию в Windows XP/2000 на современных машинах обычно используется один параметр - /fastdetect (впервые появился в Windows 2000), запрещающий поиск мыши на отмирающих COM-портах (начиная с Windows 2000 обнаружением мыши занимаются P-n-P-драйвера, в NT4 этим занимался NTDETECT, поэтому для NT4 этот параметр в мультизагрузочных системах - в которых работает более свежий, общий для нескольких систем NTDETECT.COM - использовать не следует). Этот параметр может также быть полезен, если к COM-портам подключены какие-либо иные устройства, дабы не смущать ими ОС. При желании можно специально указать порты, на которых поиск мыши осуществлять запрещено: . Если же номера портов не указаны, то поиск отключается для всех портов. Полный же список параметров запуска ОС семейства NT таков (параметры, впервые появившиеся в Windows 2000, выделены красным цветом):

/BASEVIDEO - использовать в графическом режиме драйвер стандартного VGA-видеоадаптера. Позволяет решить проблемы со сбойным видеодрайвером. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q126690.
/BAUDRATE=xxxxx - скорость (в бодах) передачи данных в отладочном режиме. По умолчанию при работе с модемом в режиме отладки скорость 9600, при работе с нуль-модемным кабелем - 19200. Пример: . При использовании этого параметра автоматически активируется ключ /DEBUG. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q148954 и http://support.microsoft.com/default.aspx?scid=kb;en-us;Q151981.

/BOOTLOG - включает протоколирование хода загрузки драйверов в файл %SystemRoot%\NTBTLOG.TXT (формат текста - UNICODE). Полезен при выявлении сбойного драйвера.
Пример протокола:

Microsoft (R) Windows NT (R) Version 5.0
Loaded driver \WINNT\System32\ntoskrnl.exe
Loaded driver \WINNT\System32\hal.dll
Loaded driver \WINNT\System32\BOOTVID.dll
Loaded driver pci.sys
Loaded driver isapnp.sys
Loaded driver intelide.sys
...

/CRASHDEBUG - предписывает загружать программный модуль отладки ядра, который активизируется при ошибках в ядре ОС. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q151981.

/DEBUG - предписывает загружать программный модуль отладки ядра, активизация которого может производиться по команде удалённого отладчика. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q121543.

/DEBUGPORT=COMx - предписывает загружать программный модуль отладки ядра и определяет последовательный порт, используемый для отладки (по умолчанию COM1). Пример: . При использовании этого параметра автоматически активируется ключ /DEBUG. Если в системе присутствует контроллер FireWire, то в Windows XP допускается устанавливать параметр , в этом случае можно указать и ещё один переключатель - , где - номер канала (от 1 до 62), использованный при настройке хоста. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q151981.

/MAXMEM= ограничивает объём используемой оперативной памяти (в мегабайтах). Пример: . Полезен для выявления дефектного модуля памяти. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q108393.

/NODEBUG - запрещает использование режима отладки, отменяет действие ключей /DEBUG, /DEBUGPORT и /BAUDRATE

/BREAK - предписывает остановить инициализацию HAL в точке останова и ожидать подключения отладчика. При использовании без ключа /DEBUG будет отображён синий экран BSOD с кодом останова.

/SOS - включает отображение названий загружаемых драйверов при загрузке ОС. Полезен для выявления сбойного драйвера. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q99743.

/PAE - включает использование механизмов PAE (Physical Address Extension), даже если установлено менее 4 Гб оперативной памяти. При этом загружается ядро ntkrnlpa.exe, позволяющее системам x86 использовать до 64 Гб оперативной памяти (стандартный лимит x86 - 4Гб). При загрузке в режиме защиты от сбоев игнорируется. Используется обычно в тестовых целях.

/NOPAE - запрещает использование PAE на системах с памятью более 4Гб, поддерживающих PAE.

/NOLOWMEM - на системах с поддержкой PAE и памятью более 4Гб запрещает использование первых 4Гб памяти. Используется в целях тестирования и требует наличия переключателя /PAE.

/NOGUIBOOT - запрещает использование VGA-драйвера на этапе загрузки системы - при этом не будет отображаться графическая заставка, и при сбоях не будут выводиться синие экраны BSOD, за показ которых также отвечает VGA-драйвер.

/SAFEBOOT: - принудительная загрузка в режиме защиты от сбоев. Имеет три переключателя, задаваемых после двоеточия:

/SAFEBOOT:MINIMAL - загрузка без поддержки сети
/SAFEBOOT:NETWORK - загрузка с поддержкой сети
/SAFEBOOT:DSREPAIR - загрузка Windows 2000 Server в режиме восстановления службы каталога (Active Directory Services Repair) из резервной копии.

При указании дополнительной опции - (ALTERNATESHELL) (например - , без пробела) вместо Explorer будет загружена альтернативная графическая оболочка, указанная в разделе реестра HKLM\System\CurrentControlSet\SafeBoot\AlternateShell

Подробнее - http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239780.

/YEAR= - предписывает игнорировать год, выдаваемый встроенными часами ПК, и использовать год, указанный в значении данного параметра. Работает, начиная с WindowsNT SP4.

/USE8254 - на системах с устаревшим BIOS сообщает ядру ОС, что на ПК установлен таймер на основе чипа 8254. Подробнее - http://support.microsoft.com/support/kb/articles/q169/9/01.asp.

/ONECPU - на мультипроцессорных системах запрещает системе использовать более одного процессора. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q157992.

/NUMPROC= на мультипроцессорных системах ограничивает числе используемых процессоров. Например: /NUMPROC=2 на 4-х процессорном ПК запрещает системе работать с двумя из 4 процессоров.

/3GB - начиная с NT 4.0 SP3 перераспределяет использование виртуального адресного пространства таким образом, чтобы приложениям выделялось 3Гб, а системе - 1Гб (по умолчанию всем выделяется по 2Гб). Применим к Windows 2000 Advanced Server и Datacenter Server. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q171793.

/WIN95DOS - в системах с тройной загрузкой - DOS, Win9x и Windows NT задаёт загрузку загрузочного сектора DOS (файл BOOTSECT.DOS). Подробнее - http://support.microsoft.com/support/kb/articles/q157/9/92.asp.

/WIN95 - в системах с тройной загрузкой - DOS, Win9x и Windows NT задаёт загрузку загрузочного сектора Win9x (файл BOOTSECT.W40). Подробнее - http://support.microsoft.com/support/kb/articles/q157/9/92.asp.

/PERFMEM= и /PERFPAGES= - некие отладочные параметры бета-версий Windows 2000, определяют резервируемую память и число страниц. Не актуальны.

/HAL="имя файла" - использование альтернативной версии HAL вместо HAL.DLL.

/KERNEL="имя файла" - использование альтернативной версии ядра ОС вместо NTOSKRNL.EXE. Последнее время модно использовать для смены загрузочной заставки-логотипа Windows, <зашитой> в NTOSKRNL.EXE и заменяемой утилитами типа Restorator.

/NOSERIALMICE=[COMx | COMx,y,z...] - отключает обнаружение мыши на COM-портах. При использовании без указания номера порта, обнаружение отключается для всех COM-портов. Применяется при наличии альтернативных устройств, подключённых к последовательным портам во время загрузки ОС. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q131976.

/PCILOCK - запрещает Windows динамически назначать IO/IRQ ресурсы для PCI оборудования и оставляет конфигурацию, присутствующую в CMOS Setup. Подробнее - http://support.microsoft.com/default.aspx?scid=kb;en-us;Q148501.

/SCSIORDINAL: - используется для указания SCSI ID контроллера в случае, если добавление нового устройства SCSI в систему со встроенным контроллером SCSI может изменить SCSI ID контроллера. Подробнее в статье http://support.microsoft.com/support/kb/articles/q103/6/25.asp.

/BURNMEMORY= ограничивает объём используемой памяти подобно параметру /MAXMEM: при указании будут отброшены 128 мегабайт памяти из имеющегося в наличии объёма RAM. Объём памяти указывается в мегабайтах.

/INTAFFINITY - заставляет мультипроцессорный HAL (HALMPS.DLL) устанавливать прерывания таким образом, чтобы только процессор с самым большим номером в SMP получал прерывания.

/MAXPROCSPERCLUSTER= - устанавливает ограничения процессоров в кластерной системе. Не актуально на персональных системах.

/TIMERES=X - в мультипроцессорных системах устанавливает разрешение системного таймера. По умолчанию разрешение таймера 7.8ms. Параметр X измеряется в сотнях миллисекунд и поддерживаются следующие значения:

X=сотен миллисекунд - миллисекунд

9766 - 0.98

19532 - 2.0

39063 - 3.9

78125 - 7.8


Все эти параметры, если необходимо задать сразу несколько переключателей, прописываются последовательно друг за другом через пробел и слеш:

/safeboot:minimal(alternateshell) /sos /bootlog /noguiboot

Надо ещё заметить, что файл BOOT.INI и загрузчик Windows NT/2000/XP поддерживают самые различные вариации мультизагрузочных систем - при некотором желании можно добиться одновременного присутствия на одном ПК без привлечения посторонних менеджеров загрузки таких ОС как Windows 9x/Me, DOS, OS/2, Linux, UNIX и т.п.
Design, programming & idea by
Andy © 2002-2004, 2009-2021