Показать сообщение отдельно
Старый 05.02.2009, 18:25   #2 (permalink)
Matrix
IT-Specialist
 
Аватар для Matrix
 
Регистрация: 12.04.2007
Сообщений: 2,906
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1845
По умолчанию

Строение файла 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] служит для задания двух параметров загрузки операционной системы, в частности, параметр «timeout=5» определяет количество секунд, в течение которого пользователь имеет возможность выбрать либо загружаемую ОС, либо один из пунктов загрузочного меню (например, загрузить систему в режиме защиты от сбоев). При «timeout=0» загрузочное меню не отображается, а при «timeout=-1» это меню будет находиться на экране неограниченное время в ожидании выбора пользователя. Каждый пользователь волен выставить это время по своим вкусам — для меня удобной цифрой является 5 секунд. По умолчанию же задержка составляет 30 секунд, максимум — 999.
Параметр «default=» определяет путь к загружаемой по умолчанию операционной системе. Путь этот в случае с Windows NT задаётся в формате ARC (Advanced RISC Computing), о правилах которого чуть ниже. Если же в мультизагрузочной системе ОС по умолчанию является, например, Windows 98 (или MS-DOS, Linux), то нередко достаточно указать просто «default=C:\», где С: — диск, на котором находятся системные файлы 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)\ИМЯ_КАТАЛОГА_W INDOWS="НАЗВАНИЕ_ОС, ОТОБРАЖАЕМОЕ_В_ЗАГРУЗОЧНОМ_МЕНЮ" /ПАРАМЕТР

Здесь:
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...n-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, поэтому для NT4 этот параметр в мультизагрузочных системах — в которых работает более свежий, общий для нескольких систем NTDETECT.COM — использовать не следует). Этот параметр может также быть полезен, если к COM-портам подключены какие-либо иные устройства, дабы не смущать ими ОС. При желании можно специально указать порты, на которых поиск мыши осуществлять запрещено: «/fastdetect=COM1,2,3». Если же номера портов не указаны, то поиск отключается для всех портов.
Matrix вне форума  
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070