Один из самых важнейших системных файлов операционной системы Windows XP с критическими настройками загрузки системы Windows XP и известный всем как файл boot.ini. Разберём его на запчасти.
Если ещё кто не понял, это один из самых первейших файлов, с которыми общается XP при загрузке. Хранится в виде простого текста в корневой директории системы. Его адрес незыблем: C:\boot.ini. А так как файл является системным, ему автоматически (как и другим собратьям) присваиваются специальные атрибуты типа Скрытый, Системный и Только для чтения. Так что, если желаете его отредактировать, придётся сменить некоторые из Свойств папок – без них Проводник Windows XP такие файлы скрывает:
- Как работает файл загрузки ОС?
- Меню загрузки Windows XP
- Какие бывают записи в загрузочном файле?
- Как отредактировать файл boot вручную?
- Программы и утилиты редактирования
- Ошибки редактирования
Как работает boot.ini ?
Boot.ini содержит информацию о местонахождении XP на вашем компьютере. Если операционных систем несколько, информация о них также в файле отображается (если в загрузке, конечно, принимают участие только версии до Windows XP включительно – загрузка версий от Windows Vista идёт совершенно другим порядком).
СПРАВКА
В версиях от Windows Vista и позднее файла boot.ini не существует. Информация по загрузке хранится в файле реестра с именем Boot Configuration Data (BCD) и для редактирования параметров загрузки применяется утилита bcdedit.com из командной строки. Во время процесса запуска системы за правильный выбор операционной системы отвечают функции другого файла – Ntldr, который и “заглядывает” в рассматриваемый сейчас boot.ini, который файлу Ntldr и сообщает, где систему или системы, собственно нужно искать. Файл boot.ini также призван рассказать, нужно ли показывать какое-то меню с выбором вариантов запуска и временем на их выбор. Кроме того, именно в этом файле и располагалась возможность загрузить операционную систему в Безопасном режиме или запустить консоль восстановления системы.
Меню загрузки Windows XP
Если в файле boot.ini сохраняется опция БОЛЕЕ ОДНОЙ, загрузка XP будет автоматически сопровождаться появлением характерного меню.
Структура и содержание файла boot.ini
Файл содержит две основные категории. Первый – boot loader. В нём содержаться две настройки. Время ожидания перед загрузкой подсвеченной системы по умолчанию “timeout={ ХХ сек.}” – вы вольны выставить от 30 до 0. А операционная система, загружаемая по умолчанию выводится в строке “default={адрес операционной системы}. И у большинства пользователей эта запись одна и та же:
"default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS"
или реже:
"scsi(0)disk(0)rdisk(0)partition(1)\WINDOWS"
Нижеследующие параметры означают:
- multi(Х) – указанные здесь параметры определяют тип адаптера именно жёсткого диска и используется контроллерами ATA, IDE, SCSI дисков для поиска загрузочного раздела с включенным BIOS. multi(Х) всегда стоит для жёстких дисков такого типа. Ему на замену идёт параметр scsi(X) в том случае, если SCSI-контроллер имеет место быть в системе с отключенной BIOS. Параметры всегда предшествуют параметру disk(Х). Число в скобках определяет порядок загрузки адаптера, но если в системе установлены жёсткие диски на устаревшем IDE контроллере, число в скобках было всегда 0. Так как, насколько я помню, эмулятору было всегда наплевать на разницу между шинами.
- rdisk(X) – физический жёсткий диск; Х – количество винчестеров – 0, 1, 2 и т.д. Отсчёт идёт от 0, напомню.
- disk(Х) – логический диск (он же том физического диска); Х – количество томов – 0, 1, 2 и т.д. Отсчёт идёт от 0!
- partition(Х) – это параметр завязан с параметром rdisk(X) – означает раздел этого физического жёсткого диска; Х – количество разделов- 1, 2, 3 и т.д. Отсчёт идёт от 1.
- \WINDOWS – характерная именно для Windows XP форма параметра для местонахождения системных файлов (ХР-ха хранит файлы в этой папке).
Точка входа используется файлом Ntldr для того, чтобы найти место, где система лежит. Но существуют и более сложные по написанию пути дефолтные строки файла boot.ini, которые, однако на домашних машинах почти не встретишь, да и со стандартами они так и не определились, так что подобные системы ушли в небытие. Но что интересует рядового пользователя, так это возможность изменить порядок загрузки в мультизагрузочной конфигурации компьютера. Обычно, проходящая рядовым порядком установка нескольких операционных систем, прописывает по умолчанию верные пути, с коими можно поиграть описываемыми ниже способами. Однако так происходит до момента, когда работоспособность одной из систем перестаёт пользователя устраивать, или после неудачной установки запись появилась, а системы … уже нет.
Но продолжим.
Вторая секция нашего файла – operating systems – включает в себя список операционных систем и загрузочных программ, а также их местоположение. Также может содержать и ключи, которые настраивают определённую в списке систему. Но фактически строчка из параметра boot loader дублируется. Если систем несколько, просто указываются их имена (описание) через знак “=“. Параметр /fastdetect заставляет ещё один критически важный файл NTDETECT пройти мимо, например, параллельно установленного в том же шлейфе устройства (например, привода чтения оптических дисков DVDROM), но также обладающего присвоенным ему порядковым номером. Такие номера есть и у клавиатуры, и у мышки, и у кардридера… Таким образом, пользователю предоставляется возможность указать в качестве загрузочного устройства не сам том, а DVDROM, флешку или раздел жёсткого диска, который содержит только установочные файлы, но самой системы не имеет. Однако такую операцию лучше проводить на отформатированном диске без нужных вам файлов – приготовьтесь к неизбежным ошибкам и переустановкам. Процесс чрезвычайно громоздок и требует знаний и навыков. И самое главное – ни один из инструментов редактирования boot.ini файла не позволит вам отобразить и исполнить операции с записями тех операционных систем, что загружаются с помощью других загрузчиков.
Какие бывают файлы boot.ini?
Вот самый типичный из примеров текста внутри искомого файла – всё просто, система одна:
[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="Microsoft Windows XP Professional" /fastdetect
Вот пример с включённой опцией консоли восстановления:
[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="Microsoft Windows XP Professional" /fastdetect C:\CMDCONS\BOOTSECT.DAT="Microsoft Windows Recovery Console" /cmdcons
А это пример двойной загрузки с двумя разными версиями Windows XP (Home и Professional) на двух разных физических дисках:
[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=”Microsoft Windows XP Professional RU” /noexecute=option /fastdetect multi(0)disk(0)rdisk(1)partition(1)WINDOWS=”Microsoft Windows XP Home” /noexecute=option /fastdetect
Хотя здесь возможны варианты редактирования обоих файлов для каждого из дисков.
Две Windows XP на двух разных дисках: boot.ini пусть будут разные
Нередко встречались ситуации, когда с установкой второго дополнительного жёсткого диска с предустановленной ОС. Например, как парой абзацев выше, с Домашней версией Windows XP Home Edition. В этой ситуации был смысл отредактировать файл boot.ini на обоих дисках. В неизменном виде он на них выглядел бы знакомо:
[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=”Microsoft Windows XP Professional RU”
Так вот, после установки второго HDD boot.ini на первом из них выглядеть мог бы, на мой взгляд, примерно так:
[boot loader] timeout=3 default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)WINDOWS=”Microsoft Windows XP Professional RU” multi(0)disk(0)rdisk(1)partition(1)WINDOWS=”Microsoft Windows XP Home RU”
На втором диске с Home-версией так:
[boot loader] timeout=0 default=multi(0)disk(0)rdisk(1)partition(1)WINDOWS [operating systems] multi(0)disk(0)rdisk(1)partition(1)WINDOWS=”Microsoft Windows XP Home RU”
ГРУБАЯ ОШИБКА
А вот тот же файл, но пользователь решил установить 2 операционные системы на один логический диск – это часто просто недопустимо (обратите внимание на параметры partition (X) – системные папки Windows имеют имена Windows и Windows.0):
[boot loader] timeout=3 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0 [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0="Microsoft Windows XP Professional RU" /execute /fastdetect multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition RU" /noexecute=optin /fastdetect
Пример, когда пользователь сменил время на раздумья до 5 секунд и добавил опцию Безопасного режима:
[boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Safe Mode" /safeboot:minimal /sos /bootlog
Как отредактировать boot.ini файл вручную?
Раз это текстовый файл, значит его можно и поправить. Сначала сменим атрибуты. Это делается прямо в настройках самого файла после того, как вы сделали его видимым в директории системного диска. Да… скопируйте содержимое файла в документ и расположите в известном месте, ибо одна лишь ошибка – и система не будет загружаться, либо меню изменится не в вашу пользу.
Какие есть варианты?
Конечно, немало. Сократим время на раздумья, например, до 10 секунд. Запустим утилиту конфигурации msconfig и скорректируем время в части окна Таймаут:
В этом окне мы с содержимым файла больше ничего не сможем сделать. Зато поработать с текстом файла можно либо найдя его через проводник:
… а можно через панель управления Windows XP (или через Мой компьютер):
В любом случае Блокнот отобразит его содержимое:
СПРАВКА
А теперь маленький секрет о том, что происходит, когда вы открываете это окно. Именно эту вкладку. В Windows семейства NT это очень прикольная штука – всякий раз по открытии именно этой вкладки Windows обращается НАПРЯМУЮ к MBR разделу жёсткого диска (минуя память) с одной лишь целью: узнать, а какой, собственно, диск сейчас является загрузочным? Так вот, если у вас на винчестере 2 различных тома с 2-мя операционными системами Windows XP, смените на мгновение в Консоли управления дисками назначение дисков, поменяв загрузочные тома местами. И проверьте ещё раз содержимое файла boot.ini – оно изменилось (если, конечно, само содержание файлов одинаковое, без дополнительных опций, вы разницы не увидите). И это один из моментов, которые могут здорово облегчить процесс установки нескольких копий Windows XP в особых условиях (например, с жёсткого диска) без программ типа EasyBCD.
Ладно… Смотрим код нашего файла ещё раз:
[boot loader] timeout=3 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0 [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0="Microsoft Windows XP Professional RU" /execute /fastdetect multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition RU" /noexecute=optin /fastdetect
В этом файле [boot loader] говорит файлу Ntldr , что ждём 3 секунды ( timeout=3) чтобы с винчестера – физического жёсткого диска – (rdisk(0) ) логического тома 0 раздела 1 ( disk(0) partition(1) ) загрузилась Windows XP Professional, системные файлы которой находятся в папке Windows.0. Вторая из систем (Home Edition) будет ждать выбора пользователя. Повторюсь, что мультизагрузочные настройки двух систем на одном томе – верх безалаберности пользователя.
Как ещё можно отредактировать boot.ini ?
Существует программа, которая позволяет относительно безопасно корректировать файл загрузки. Она уже прошита в систему.
Утилита bootcfg.exe.
Создана специально для того, чтобы работать с повреждённым файлом boot.ini или для редактирования путей входа в файл. Команда включает в себя несколько ключей. Вот как выглядит файл в утилите:
А вот и команды утилиты с аргументами для неё:
А как же EasyBCD ? Не в этот раз…
Эта программа может гораздо больше, чем просто отредактировать меню. Она предназначена для комплексной “переработки” меню загрузки с выбором, переименованием, сменой порядка загрузки и вариантами установки операционных систем различного типа. Один из способов установки Windows прямо с жёсткого диска описан в одноимённой статье.
Однако, господа, это не наш случай – в части самого названия программы аббревиатура BCD уже означает, что изначально программе нужна почва загрузчика не ниже Vista, который, как я уже упоминал, работает СОВЕРШЕННО по-другому. Так что не трудитесь искать более ранние версии программы для Windows XP (в которой программа, кстати, прекрасно работает). В них лишь больше ошибок, нежели в современных, но условие со времени появления программы одно – для корректной работы прямо из меню программы EasyBCD вам понадобится версия Windows не ниже Vista. Однако даже в среде Windows XP EasyBCD может оказаться чрезвычайно полезной.
Ошибки в работе с редактированием режима мультизагрузки.
Вероятно, эту проблему нужно выносить в отдельную тему. Не стоит пенять на неработоспособность программ и утилит, если что-то не получается. Дело в том, что огромное количество ошибок связано именно с незнанием пользователя основных принципов работы самой операционной системы. Пользователю перед началом работ по установке нескольких операционных систем необходимо уяснить несколько моментов. Кому-то они покажутся детскими, но даже поверхностный опрос пользователей показывает, что юзеры почти не знают толком:
- в чём разница между физическим и логическим дисками
- в чём разница между активным и логическим разделами жёсткого диска
- что такое системный том (диск)
- что такое и где находится загрузочный сектор диска
- что такое форматирование и для чего оно нужно
- как правильно читать файл загрузки систем (про boot.ini вы уже знаете всё)
- в чём отличие процесса загрузки Windows XP и Vista (и выше)
Рассмотрим самые типичные примеры винегрета, в которые может попасть сам пользователь.
ПРИМЕР ПЕРВЫЙ
- Представьте, что к имеющейся копии операционной системы (возьмём для упрощения ОС одного поколения обе Windows XP – с разными системами всё ЕЩЁ хуже), пользователь добавляет ещё одну. Возьмём за правило – пользователь не дурак и предусмотрительно разбил винчестер на 2 тома и установил 2-ю на отдельный раздел. Теперь у него 2 ОС Windows XP. И вот наш файл:
[boot loader] timeout=3 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0 [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0="Microsoft Windows XP Professional RU" /execute /fastdetect multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition RU" /noexecute=optin /fastdetect
А вот и меню:
- Однако, как часто бывает, одна из них приходит в негодность. Та, что установлена первой. И принято решение: удалить. Что можно сделать? Конечно, воспользоваться полученными знаниями и стереть информацию из меню, чтобы там больше не было записи. Удалим строчку о неработающей системе (допустим, версии XP Professional):
Как вы поняли, Windows меню изменится, но система будет продолжать загружаться. Кто понял, молодец. Кто нет, объясняю. Boot.ini говорит файлу Ntldr, что нужно загрузить Windows из папки Windows.0. Разделы, сам номер диска совпадают, а информации о папке нет – мы только что её удалили. Но сама папка жива и здравствует, а её настройки позволяют системе загружаться. Как итог, меню загрузки изменится (это тот самый случай, когда незнание пользователем основ работы ОС спасает от неправильной коррекции файла boot.ini и позволит сохранить данные, но не порядок в файлах):
Как нужно было сделать? В этом случае пример нового файла загрузки должен выглядеть так:
[boot loader] timeout=3 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition RU" /noexecute=optin /fastdetect
Как видно, мы удалили не только саму информацию о имеющейся папке Windows.0, но и сменили её название в параметре defaults, указав нужную Windows с “живой” системой (кстати, раз уж система осталась одна, timeout можно указать 0 – чего толку смотреть на выбор, если выбора-то и нет).
ПРИМЕР ВТОРОЙ
Вообще ничего не загружается. Если так, то вы повредили что-то из этого:
- BOOT.INI
- NTLDR
- NTDETECT.COM
Ну, кстати, я не раз принудительно удалял boot.ini, и система загружалась. Если у вас такой трюк не прокатывает, придётся воспользоваться DOS-овыми программами из пакета LiveDVD от Hiren’s для восстановления загрузчика.
P.S. На каждую ошибку статьи не напишешь. Пока писал, статья, как я заметил, разрослась до почти нечитаемой. Так что заканчиваю. Заканчивайте с XP и вы. Успехов всем.
да ещё много что не указано, загрузчик может больше), ну к примеру “перенаправление”, допустим мы хотим из этого загрузчика перейти в другой загрузчик , к примеру в “груб загрузчик”. Тогда закидываем файл или папку с файлами на диск “С” и пишем в boot.ini строчку ниже системы:
[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=”Microsoft Windows XP Professional” /fastdetect
C:\grldr=”Zagruska Grub”
и всё загрузчик передаёт управление другому загрузчику “grldr” расположенному в корне диска С.
А вот эту фразу поясните пожалуйста “если не появляется неактивированный в BIOS контроллер SCSI” Это про всем известный в свое время SIL3512 Base и Raid ? Bios платы шить обязательно что бы загрузиться с SCSI ?
Охх-х… Вы такой косячище нашли в статье. И никто за пять лет существования статьи даже не указал на него. Речь, конечно, идёт про “отключённый BIOS” вообще. Я сейчас исправлю абзац, перечитайте его, пожалуйста.
P.S.
Да, я понимаю, что отвечать на вопрос, заданный к бессмысленному набору слов, смысла-то особого нет, но попробую. Насколько вопрос я понял, речь о перепрошивке не идёт. Так, при появлении scsi(х) в корневом каталоге системного диска должен появиться ntbootdd.sys. Файл – копия драйвера используемого SCSI контроллера из директории Windows\system32\drivers. Scsi(х) используется при отключенной BIOS контроллера, а значит загрузчику просто будет нужен ещё один драйвер для доступа к дискам. И при отключенной BIOS начинается предварительная загрузка файла ntbootdd.sys. Доступ к дискам идёт именно через него. При этом диски на других контроллерах вообще видны не будут, так что лучше заранее побеспокоиться о совместимости самих SCSI контроллеров. Ибо загрузка с указанного файла возможна только на один-единственный контроллер.