Если вы вдруг утратили файл 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, в начале ее текстового этапа (и может быть повреждена, например, вирусом - в этом случае вам потребуется изучить документ 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, являлось "Winnt". В windows XP (видимо, чтобы простому пользователю, недолюбливающему всяческие монструозные и трудноуправляемые NT, лишний раз не напоминать родословную этой операционной системы) от этой традиции отказались, и системная папка носит имя windows.
Разумеется, если вы выбрали собственное название этой папки, то в файле boot.ini должно быть указано именно оно. То, что следует в кавычках после имени системной папки, - всего лишь текст, отображаемый в загрузочном меню, и его можно полностью изменять по усмотрению пользователя, главное - чтобы пользователь понимал, какая ОС соответствует каждой записи.
В конце каждой строки с ARC-путем допускается указывать необязательные ключи запуска windows. Строчные и заглавные буквы в этих параметрах не различаются. По умолчанию в windows XP / 2000 на современных машинах обычно используется один параметр - /fastdetect (впервые появился в windows 2000), запрещающий поиск мыши на отмирающих COM-портах (начиная с windows 2000 обнаружением мыши занимаются P-n-P-драйверы, в NT4 этим занимался ntdetect, поэтому для NT 4 этот параметр в мультизагрузочных системах - в которых работает более свежий, общий для нескольких систем ntdetect.com, - использовать не следует).
Этот параметр может также быть полезен, если к COM-портам подключены какие-либо иные устройства, дабы не смущать ими ОС. При желании можно специально указать порты, на которых поиск мыши осуществлять запрещено: /fastdetect=COM1,2,3.
Если же номера портов не указаны, то поиск отключается для всех портов. Полный же список параметров запуска ОС семейства NT таков (параметры, впервые появившиеся в windows 2000, выделены курсивом).
/basevideo. Использовать в графическом режиме драйвер стандартного VGA-видеоадаптера. Позволяет решить проблемы со сбойным видеодрайвером.
/baudrate. Скорость (в бодах) передачи данных в отладочном режиме. По умолчанию при работе с модемом в режиме отладки скорость 9600, при работе с нуль-модемным кабелем - 19 200.
Пример: /baudrate=115200. При использовании этого параметра автоматически активируется ключ /debug.
/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. Предписывает загружать программный модуль отладки ядра, который активизируется при ошибках в ядре ОС.
/debug. Предписывает загружать программный модуль отладки ядра, активизация которого может производиться по команде удаленного отладчика.
/debugport. Предписывает загружать программный модуль отладки ядра и определяет последовательный порт, используемый для отладки (по умолчанию COM1). Пример: /debugport=COM2. При использовании этого параметра автоматически активируется ключ /debug.
Если в системе присутствует контроллер FireWire, то в windows XP допускается устанавливать параметр /debugport=1394, в этом случае можно указать и еще один переключатель - /channel=x, где x - номер канала (от 1 до 62), использованный при настройке хоста.
/maxmem. Ограничивает объем используемой оперативной памяти (в мегабайтах). Пример: /maxmem=16. Полезен для выявления дефектного модуля памяти.
/nodebug. Запрещает использование режима отладки, отменяет действие ключей /debug, /debugport и /baudrate.
/break. Предписывает остановить инициализацию HAL в точке останова и ожидать подключения отладчика. При использовании без ключа /debug будет отображен синий экран BSOD с кодом останова.
/sos. Включает отображение названий загружаемых драйверов при загрузке ОС. Полезен для выявления сбойного драйвера.
Включает использование механизмов 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 (например - /safeboot:minimal(alternateshell), без пробела) вместо windows NT Explorer будет загружена альтернативная графическая оболочка, указанная в разделе реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\
SafeBoot\AlternateShell.
/year. Предписывает игнорировать год, выдаваемый встроенными часами ПК, и использовать год, указанный в значении данного параметра. Работает, начиная с windows NT 4.0 SP4.
/use8254. На системах с устаревшим BIOS сообщает ядру ОС, что на ПК установлен таймер на основе чипа 8254.
/onecpu. На мультипроцессорных системах запрещает системе использовать более одного процессора.
/numproc. На мультипроцессорных системах ограничивает число используемых процессоров. Например, /numproc=2 на 4-процессорном ПК запрещает системе работать с двумя из четырех процессоров.
/3gb. Начиная с NT 4.0 SP3 перераспределяет использование виртуального адресного пространства таким образом, чтобы приложениям выделялось 3 Гб, а системе - 1 Гб (по умолчанию всем выделяется по 2 Гб).
Применим к windows 2000 Advanced Server и Datacenter Server.
/win95dos. В системах с тройной загрузкой - DOS, windows 9x и windows NT задает загрузку загрузочного сектора DOS (файл bootsect.dos).
/win95. В системах с тройной загрузкой - DOS, windows 9x и windows NT задает загрузку загрузочного сектора windows 9x (файл bootsect.w40).
/perfmem и /perfpages. Некие отладочные параметры бета-версий windows 2000. Определяют резервируемую память и число страниц. Не актуальны.
/hal=<имя файла> - использование альтернативной версии hal вместо hal.dll.
/kernel=<имя файла> - использование альтернативной версии ядра ОС вместо ntoskrnl.exe. Последнее время модно использовать для смены загрузочной заставки-логотипа windows, "зашитой" в ntoskrnl.exe и заменяемой утилитами типа Restorator.
/noserialmice=[COMx | COMx,y,z...]. Отключает обнаружение мыши на COM-портах.
При использовании без указания номера порта обнаружение отключается для всех COM-портов. Применяется при наличии альтернативных устройств, подключенных к последовательным портам во время загрузки ОС.
Запрещает windows динамически назначать IO- и IRQ-ресурсы для PCI-оборудования и оставляет конфигурацию, присутствующую в CMOS Setup.
/scsiordinal. Используется для указания SCSI ID контроллера в случае, если добавление нового устройства SCSI в систему со встроенным контроллером SCSI может изменить SCSI ID контроллера.
/burnmemory. Ограничивает объем используемой памяти подобно параметру /maxmem: при указании /burnmemory=128 будут отброшены 128 мегабайт памяти из имеющегося в наличии объема RAM. Объем памяти указывается в мегабайтах.
/intaffinity. Заставляет мультипроцессорный HAL (halmps.dll) устанавливать прерывания таким образом, чтобы только процессор с самым большим номером в SMP получал прерывания.
/maxprocspercluster. Устанавливает ограничения процессоров в кластерной системе. Не актуально на персональных системах.
/timeres=x. В мультипроцессорных системах устанавливает разрешение системного таймера. По умолчанию разрешение таймера 7,8 мс. Параметр 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 и т. п.